1
Fork 0
mirror of https://github.com/SapphireServer/Sapphire.git synced 2025-05-02 16:57:47 +00:00

Merge pull request #435 from NotAdam/housing

Misc fixes/improvements & new packet
This commit is contained in:
Mordred 2018-11-22 08:10:20 +01:00 committed by GitHub
commit 8456be8e7e
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 16 additions and 5 deletions

View file

@ -295,7 +295,7 @@ enum ActorControlType : uint16_t
RequestWardLandInfo = 0x453,
RequestLandRelinquish = 0x454,
RequestEstateRename = 0x45A,
RequestEstateGreeting = 0x45C,
RequestEstateGreeting = 0x45C, // sends FFXIVIpcHousingEstateGreeting in return
RequestHousingItemUI = 0x463,
RequestSharedEstateSettings = 0x46F,

View file

@ -191,6 +191,8 @@ namespace Core::Network::Packets
LandInfoSign = 0x0225, // updated 4.4
LandRename = 0x0226, // updated 4.4
HousingEstateGreeting = 0x0227, // updated 4.4
LandPermissionSlot = 0x0228, // updated 4.4
LandPermission = 0x0229, // updated 4.4

View file

@ -1738,6 +1738,15 @@ struct FFXIVIpcHousingWardInfo : FFXIVIpcBasePacket< HousingWardInfo >
} houseInfoEntry[60];
};
struct FFXIVIpcHousingEstateGreeting : FFXIVIpcBasePacket< HousingEstateGreeting >
{
uint8_t plotId;
uint8_t pad[3]; // unsure
uint16_t territoryTypeId;
uint16_t unk;
char message[200];
};
/**
* Structural representation of the packet sent by the server
* to show the current shared estate settings

View file

@ -25,7 +25,7 @@ void Sapphire::World::Manager::PlayerMgr::movePlayerToLandDestination( Core::Ent
if( terriPos )
{
// check if its a housing zone, zoning is different here
if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) && param != 0 )
if( terriMgr->isHousingTerritory( terriPos->getTargetZoneId() ) )
{
auto housingMgr = g_fw.get< Core::HousingMgr >();
auto landSetId = housingMgr->toLandSetId( terriPos->getTargetZoneId(), param );

View file

@ -168,7 +168,7 @@ void Core::Scripting::ScriptMgr::onPlayerFirstEnterWorld( Entity::Player& player
bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorId, uint32_t eventId )
{
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 );
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId );
if( script )
{
script->onTalk( eventId, player, actorId );
@ -176,7 +176,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI
}
else
{
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId );
auto script = m_nativeScriptMgr->getScript< Sapphire::ScriptAPI::EventScript >( eventId & 0xFFFF0000 );
if( !script )
return false;
@ -184,7 +184,7 @@ bool Core::Scripting::ScriptMgr::onTalk( Entity::Player& player, uint64_t actorI
return true;
}
return true;
return false;
}
bool Core::Scripting::ScriptMgr::onEnterTerritory( Entity::Player& player, uint32_t eventId,