From f377a6a2f41d07fc321969dc54e74a5c07796b03 Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 12:27:35 +1100 Subject: [PATCH 1/3] Fix stupid mistake stopping ward 1 from working when zoning --- src/servers/sapphire_zone/Manager/PlayerMgr.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp index e124a477..95ae01a3 100644 --- a/src/servers/sapphire_zone/Manager/PlayerMgr.cpp +++ b/src/servers/sapphire_zone/Manager/PlayerMgr.cpp @@ -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 ); From 115ba7d80f20383ba80bde48cc19a628428c9c6f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 13:12:21 +1100 Subject: [PATCH 2/3] change script selection behaviour so a specific script will be chosen before a generic one --- src/servers/sapphire_zone/Script/ScriptMgr.cpp | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/servers/sapphire_zone/Script/ScriptMgr.cpp b/src/servers/sapphire_zone/Script/ScriptMgr.cpp index b0af2c18..67d7fe40 100644 --- a/src/servers/sapphire_zone/Script/ScriptMgr.cpp +++ b/src/servers/sapphire_zone/Script/ScriptMgr.cpp @@ -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, From 692e6acaf8fbe8df8996755048fcca132961ff8f Mon Sep 17 00:00:00 2001 From: NotAdam Date: Thu, 22 Nov 2018 15:34:17 +1100 Subject: [PATCH 3/3] FFXIVIpcHousingEstateGreeting added --- src/common/Network/CommonActorControl.h | 2 +- src/common/Network/PacketDef/Ipcs.h | 2 ++ src/common/Network/PacketDef/Zone/ServerZoneDef.h | 9 +++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/common/Network/CommonActorControl.h b/src/common/Network/CommonActorControl.h index e4d6158b..e028e136 100644 --- a/src/common/Network/CommonActorControl.h +++ b/src/common/Network/CommonActorControl.h @@ -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, diff --git a/src/common/Network/PacketDef/Ipcs.h b/src/common/Network/PacketDef/Ipcs.h index 28fe961e..a7c3533f 100644 --- a/src/common/Network/PacketDef/Ipcs.h +++ b/src/common/Network/PacketDef/Ipcs.h @@ -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 diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 4423d29b..22c07e60 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -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