mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-29 07:37:45 +00:00
correctly show edit estate name/greeting windows
This commit is contained in:
parent
fee7ed381e
commit
4e4097c1c8
3 changed files with 52 additions and 14 deletions
|
@ -304,6 +304,7 @@ namespace Core::Network::Packets
|
||||||
LinkshellEventHandler1 = 0x1151, // updated 4.1 ??
|
LinkshellEventHandler1 = 0x1151, // updated 4.1 ??
|
||||||
|
|
||||||
LandRenameHandler = 0x0171, // updated 4.4
|
LandRenameHandler = 0x0171, // updated 4.4
|
||||||
|
LandChangeEstateMessageHandler = 0x0172, // updated 4.4
|
||||||
|
|
||||||
SetSharedEstateSettings = 0x0177, // updated 4.4
|
SetSharedEstateSettings = 0x0177, // updated 4.4
|
||||||
|
|
||||||
|
|
|
@ -1730,10 +1730,7 @@ struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo >
|
||||||
|
|
||||||
struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting >
|
struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting >
|
||||||
{
|
{
|
||||||
uint8_t plotId;
|
Common::LandIdent landIdent;
|
||||||
uint8_t pad[3]; // unsure
|
|
||||||
uint16_t territoryTypeId;
|
|
||||||
uint16_t unk;
|
|
||||||
char message[200];
|
char message[200];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -365,28 +365,30 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR
|
||||||
}
|
}
|
||||||
case ClientTriggerType::RequestEstateRename:
|
case ClientTriggerType::RequestEstateRename:
|
||||||
{
|
{
|
||||||
// removed temporarly, there is no such thing as a LandName
|
uint16_t territoryTypeId = param11 & 0xFFFF;
|
||||||
auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() );
|
uint16_t worldId = param11 >> 16;
|
||||||
|
|
||||||
uint8_t ward = ( param12 & 0xFF00 ) >> 8;
|
uint8_t ward = ( param12 & 0xFF00 ) >> 8;
|
||||||
uint8_t plot = ( param12 & 0xFF );
|
uint8_t plot = ( param12 & 0xFF );
|
||||||
|
|
||||||
auto zone = player.getCurrentZone();
|
auto pHousingMgr = g_fw.get< HousingMgr >();
|
||||||
|
if( !pHousingMgr )
|
||||||
|
break;
|
||||||
|
|
||||||
auto hZone = std::dynamic_pointer_cast< HousingZone >( zone );
|
auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward );
|
||||||
|
auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId );
|
||||||
|
|
||||||
|
if( !hZone )
|
||||||
|
break;
|
||||||
|
|
||||||
auto land = hZone->getLand( plot );
|
auto land = hZone->getLand( plot );
|
||||||
|
|
||||||
if( !land )
|
|
||||||
{
|
|
||||||
auto pHousingMgr = g_fw.get< HousingMgr >();
|
|
||||||
land = pHousingMgr->getLandByOwnerId( player.getId() );
|
|
||||||
}
|
|
||||||
|
|
||||||
auto house = land->getHouse();
|
auto house = land->getHouse();
|
||||||
if( !house )
|
if( !house )
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
auto landRenamePacket = makeZonePacket< Server::FFXIVIpcLandRename >( player.getId() );
|
||||||
|
|
||||||
landRenamePacket->data().landIdent.landId = land->getLandId();
|
landRenamePacket->data().landIdent.landId = land->getLandId();
|
||||||
landRenamePacket->data().landIdent.wardNum = land->getWardNum();
|
landRenamePacket->data().landIdent.wardNum = land->getWardNum();
|
||||||
landRenamePacket->data().landIdent.worldId = 67;
|
landRenamePacket->data().landIdent.worldId = 67;
|
||||||
|
@ -397,6 +399,44 @@ void Core::Network::GameConnection::clientTriggerHandler( const Packets::FFXIVAR
|
||||||
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case ClientTriggerType::RequestEstateEditGreeting:
|
||||||
|
{
|
||||||
|
uint16_t territoryTypeId = param11 & 0xFFFF;
|
||||||
|
uint16_t worldId = param11 >> 16;
|
||||||
|
|
||||||
|
uint8_t ward = ( param12 & 0xFF00 ) >> 8;
|
||||||
|
uint8_t plot = ( param12 & 0xFF );
|
||||||
|
|
||||||
|
auto pHousingMgr = g_fw.get< HousingMgr >();
|
||||||
|
if( !pHousingMgr )
|
||||||
|
break;
|
||||||
|
|
||||||
|
auto landSetId = pHousingMgr->toLandSetId( territoryTypeId, ward );
|
||||||
|
auto hZone = pHousingMgr->getHousingZoneByLandSetId( landSetId );
|
||||||
|
|
||||||
|
if( !hZone )
|
||||||
|
break;
|
||||||
|
|
||||||
|
auto land = hZone->getLand( plot );
|
||||||
|
if( !land )
|
||||||
|
break;
|
||||||
|
|
||||||
|
auto house = land->getHouse();
|
||||||
|
if( !house )
|
||||||
|
break;
|
||||||
|
|
||||||
|
auto estateGreetingPacket = makeZonePacket< Server::FFXIVIpcHousingEstateGreeting >( player.getId() );
|
||||||
|
|
||||||
|
estateGreetingPacket->data().landIdent.landId = land->getLandId();
|
||||||
|
estateGreetingPacket->data().landIdent.wardNum = land->getWardNum();
|
||||||
|
estateGreetingPacket->data().landIdent.worldId = 67;
|
||||||
|
estateGreetingPacket->data().landIdent.territoryTypeId = land->getTerritoryTypeId();
|
||||||
|
memcpy( &estateGreetingPacket->data().message, house->getHouseGreeting().c_str(), sizeof( estateGreetingPacket->data().message ) );
|
||||||
|
|
||||||
|
player.queuePacket( estateGreetingPacket );
|
||||||
|
|
||||||
|
break;
|
||||||
|
}
|
||||||
case ClientTriggerType::RequestHousingItemUI:
|
case ClientTriggerType::RequestHousingItemUI:
|
||||||
{
|
{
|
||||||
uint8_t ward = ( param12 & 0xFF00 ) >> 8;
|
uint8_t ward = ( param12 & 0xFF00 ) >> 8;
|
||||||
|
|
Loading…
Add table
Reference in a new issue