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 11b17e08..37f7bcfe 100644 Binary files a/src/servers/sapphire_zone/Event/EventHelper.cpp and b/src/servers/sapphire_zone/Event/EventHelper.cpp differ 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 );