mirror of
https://github.com/SapphireServer/Sapphire.git
synced 2025-04-27 06:47:45 +00:00
WiP Land purchase does now directly update and building somewhat works. Still needs work.
This commit is contained in:
parent
94929caf96
commit
0cfde3d9e8
7 changed files with 28 additions and 16 deletions
|
@ -1593,7 +1593,7 @@ namespace Sapphire::Common
|
|||
uint8_t status;
|
||||
uint8_t flags;
|
||||
uint8_t __padding1;
|
||||
uint8_t unknown1[4];
|
||||
uint32_t fcId;
|
||||
uint32_t fcCrestId;
|
||||
uint32_t fcCrestId1;
|
||||
uint8_t patternIds[8];
|
||||
|
|
|
@ -160,6 +160,7 @@ namespace Sapphire::Network::Packets
|
|||
TreasureCheckCommand = 0x1B4,
|
||||
SelectLootAction = 0x1B5,
|
||||
OpenTreasureWithKey = 0x1B6,
|
||||
BuildPresetHandler = 0x1B7,
|
||||
|
||||
StartTalkEvent = 0x01C2,
|
||||
StartEmoteEvent = 0x01C3,
|
||||
|
|
|
@ -546,6 +546,13 @@ struct FFXIVIpcHousingHouseName : FFXIVIpcBasePacket< HousingHouseName >
|
|||
char houseName[20];
|
||||
};
|
||||
|
||||
struct FFXIVIpcBuildPresetHandler : FFXIVIpcBasePacket< BuildPresetHandler >
|
||||
{
|
||||
/* 0000 */ uint32_t itemId;
|
||||
/* 0004 */ uint8_t plotNum;
|
||||
/* 0005 */ char stateString[27];
|
||||
};
|
||||
|
||||
struct FFXIVIpcHousingGreeting : FFXIVIpcBasePacket< HousingGreeting >
|
||||
{
|
||||
Common::LandIdent landId;
|
||||
|
|
|
@ -1977,10 +1977,10 @@ struct FFXIVIpcEorzeaTimeOffset : FFXIVIpcBasePacket< TimeOffset >
|
|||
|
||||
struct FFXIVIpcHouse : FFXIVIpcBasePacket< House >
|
||||
{
|
||||
uint8_t Block;
|
||||
uint8_t __padding1;
|
||||
uint8_t __padding2;
|
||||
uint8_t __padding3;
|
||||
uint16_t Block;
|
||||
uint16_t __padding1;
|
||||
uint16_t __padding2;
|
||||
uint16_t __padding3;
|
||||
Common::House House;
|
||||
};
|
||||
|
||||
|
@ -2045,19 +2045,19 @@ struct FFXIVIpcEorzeaTimeOffset : FFXIVIpcBasePacket< TimeOffset >
|
|||
|
||||
struct FFXIVIpcCharaHousingLandData : FFXIVIpcBasePacket< CharaHousingLandData >
|
||||
{
|
||||
uint8_t IsFcOwner;
|
||||
uint8_t Index;
|
||||
uint8_t __padding1;
|
||||
uint8_t __padding2;
|
||||
Common::LandIdent LandId;
|
||||
uint8_t Flags;
|
||||
uint32_t unknown;
|
||||
Common::CharaLandData LandData;
|
||||
};
|
||||
|
||||
struct FFXIVIpcCharaHousing : FFXIVIpcBasePacket< CharaHousing >
|
||||
{
|
||||
Common::CharaLandData FcLands;
|
||||
uint64_t padding;
|
||||
Common::CharaLandData CharaLands;
|
||||
uint64_t padding1;
|
||||
Common::CharaLandData apartment;
|
||||
uint64_t padding2;
|
||||
Common::CharaLandData sharedHouse[2];
|
||||
};
|
||||
|
||||
|
|
|
@ -1791,8 +1791,9 @@ void Player::sendLandFlagsSlot( Common::LandFlagsSlot slot )
|
|||
return;
|
||||
}
|
||||
|
||||
landFlags->data().Flags = static_cast< uint32_t >( type );
|
||||
landFlags->data().LandId = m_charaLandData[ slot ].landId;
|
||||
landFlags->data().Index = static_cast< uint32_t >( type );
|
||||
landFlags->data().LandData.landId = m_charaLandData[ slot ].landId;
|
||||
landFlags->data().LandData.landFlags = m_charaLandData[ slot ].landFlags;
|
||||
|
||||
queuePacket( landFlags );
|
||||
}
|
||||
|
|
|
@ -89,7 +89,7 @@ Sapphire::Network::GameConnection::GameConnection( Sapphire::Network::HivePtr pH
|
|||
|
||||
setZoneHandler( ClientItemOperation, "ItemOperation", &GameConnection::itemOperation );
|
||||
|
||||
//setZoneHandler( BuildPresetHandler, "BuildPresetHandler", &GameConnection::buildPresetHandler );
|
||||
setZoneHandler( BuildPresetHandler, "BuildPresetHandler", &GameConnection::buildPresetHandler );
|
||||
setZoneHandler( ClientZoneIpcType::HousingHouseName, "HousingHouseName", &GameConnection::landRenameHandler );
|
||||
setZoneHandler( ClientZoneIpcType::HousingGreeting, "HousingUpdateHouseGreeting", &GameConnection::housingUpdateGreetingHandler );
|
||||
setZoneHandler( HousingPlaceYardItem, "HousingPlaceYardItem", &GameConnection::reqPlaceHousingItem );
|
||||
|
|
|
@ -73,10 +73,13 @@ void Sapphire::Network::GameConnection::landRenameHandler( const Packets::FFXIVA
|
|||
void Sapphire::Network::GameConnection::buildPresetHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket,
|
||||
Entity::Player& player )
|
||||
{
|
||||
//const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket );
|
||||
const auto packet = ZoneChannelPacket< Client::FFXIVIpcBuildPresetHandler >( inPacket );
|
||||
|
||||
//auto& housingMgr = Common::Service< HousingMgr >::ref();
|
||||
//housingMgr.buildPresetEstate( player, packet.data().plotNum, packet.data().itemId );
|
||||
auto& housingMgr = Common::Service< HousingMgr >::ref();
|
||||
auto& teriMgr = Common::Service< TerritoryMgr >::ref();
|
||||
auto pTeri = teriMgr.getTerritoryByGuId( player.getTerritoryId() );
|
||||
auto hZone = std::dynamic_pointer_cast< HousingZone >( pTeri );
|
||||
housingMgr.buildPresetEstate( player, *hZone, packet.data().plotNum, packet.data().itemId );
|
||||
}
|
||||
|
||||
void Sapphire::Network::GameConnection::housingUpdateGreetingHandler( const Packets::FFXIVARR_PACKET_RAW& inPacket,
|
||||
|
|
Loading…
Add table
Reference in a new issue