diff --git a/sql/update.sql b/sql/update.sql index ce4c3fd9..21bc893c 100644 --- a/sql/update.sql +++ b/sql/update.sql @@ -19,12 +19,6 @@ MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURR ALTER TABLE charainfosearch MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; -ALTER TABLE charaitemcrystal -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - -ALTER TABLE charaitemcurrency -MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; - ALTER TABLE charaitemgearset MODIFY COLUMN UPDATE_DATE DATETIME NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP; diff --git a/src/servers/sapphire_zone/Event/EventHelper.cpp b/src/servers/sapphire_zone/Event/EventHelper.cpp index 8243599c..37f7bcfe 100644 --- a/src/servers/sapphire_zone/Event/EventHelper.cpp +++ b/src/servers/sapphire_zone/Event/EventHelper.cpp @@ -74,14 +74,19 @@ std::string Core::Event::getEventName( uint32_t eventId ) return "WarpTaxi"; return unknown + "ChocoboWarp"; //who know } + case Event::EventHandler::EventHandlerType::Shop: { auto shopInfo = pExdData->get< Core::Data::GilShop >( eventId ); - if( shopInfo ) + return "GilShop" + std::to_string( eventId ); + /*if( shopInfo ) + { + if( shopInfo->name.empty() || shopInfo->name == " " ) + return "GilShop" + std::to_string( eventId ); return shopInfo->name; - - return unknown + "GilShop"; + }*/ + //return unknown + "GilShop"; } default: { diff --git a/src/servers/sapphire_zone/Network/GameConnection.h b/src/servers/sapphire_zone/Network/GameConnection.h index 529bba6b..c6ab31ae 100644 --- a/src/servers/sapphire_zone/Network/GameConnection.h +++ b/src/servers/sapphire_zone/Network/GameConnection.h @@ -152,8 +152,7 @@ namespace Core::Network DECLARE_HANDLER( cfRegisterRoulette ); DECLARE_HANDLER( cfDutyAccepted ); - - + DECLARE_HANDLER( actionHandler ); DECLARE_HANDLER( gm1Handler ); diff --git a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp index 985d8ea1..d6d77bb2 100644 --- a/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp +++ b/src/servers/sapphire_zone/Network/Handlers/EventHandlers.cpp @@ -265,16 +265,15 @@ void Core::Network::GameConnection::eventHandlerShop( const Packets::FFXIVARR_PA auto eventType = static_cast< uint16_t >( eventId >> 16 ); - std::string eventName = "onShop"; + std::string eventName = "onOpen"; std::string objName = Event::getEventName( eventId ); player.sendDebug( "EventId: " + std::to_string( eventId ) + " (0x" + Util::intToHexString( static_cast< uint64_t >( eventId & 0xFFFFFFF ), 8 ) + ")" ); - player.sendDebug( "Calling: " + objName + "." + eventName ); - player.eventStart( 0, eventId, Event::EventHandler::UI, 0, 0 ); + player.eventStart( 0, eventId, Event::EventHandler::UI, 0, packet.data().param ); } diff --git a/src/servers/sapphire_zone/Zone/HousingMgr.cpp b/src/servers/sapphire_zone/Zone/HousingMgr.cpp index e882eca1..c9d50ca0 100644 --- a/src/servers/sapphire_zone/Zone/HousingMgr.cpp +++ b/src/servers/sapphire_zone/Zone/HousingMgr.cpp @@ -240,8 +240,13 @@ void Core::HousingMgr::sendWardLandInfo( Entity::Player& player, uint8_t wardId, auto& entry = wardInfoPacket->data().houseInfoEntry[ i ]; + // retail always sends the house price in this packet, even after the house has been sold + // so I guess we do the same entry.housePrice = land->getCurrentPrice(); + if( land->getState() == Common::HouseState::forSale ) + continue; + switch( land->getLandType() ) { case LandType::FreeCompany: diff --git a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp index 2cbd4789..d8cb748e 100644 --- a/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp +++ b/src/servers/sapphire_zone/Zone/TerritoryMgr.cpp @@ -410,14 +410,18 @@ bool Core::TerritoryMgr::movePlayer( ZonePtr pZone, Core::Entity::PlayerPtr pPla if( isHousingTerritory( pZone->getTerritoryTypeId() ) ) { auto pHousing = std::dynamic_pointer_cast< HousingZone >( pZone ); - if( pHousing ) + if( pHousing ) pPlayer->setTerritoryId( pHousing->getLandSetId() ); - } + } + else if( isInstanceContentTerritory( pZone->getTerritoryTypeId() ) ) + { + pPlayer->setTerritoryId( pZone->getGuId() ); + } else { pPlayer->setTerritoryId( 0 ); } - + // mark character as zoning in progress pPlayer->setLoadingComplete( false );