From 953affede17bd8e7b5f5f74d881f2995ebc3fc6a Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Wed, 19 Sep 2018 23:53:34 +1000 Subject: [PATCH 1/2] Fix InitZone bitmask and add my findings --- src/common/Network/PacketDef/Zone/ServerZoneDef.h | 4 ++-- src/servers/sapphire_zone/Actor/Player.cpp | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index d6bccdbd..11993119 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -709,8 +709,8 @@ struct FFXIVIpcInitZone : FFXIVIpcBasePacket< InitZone > uint32_t unknown3; uint32_t unknown4; uint8_t weatherId; - uint8_t bitmask; - uint16_t unknown5; + uint16_t bitmask; + uint8_t unknown5; uint16_t festivalId; uint16_t additionalFestivalId; uint32_t unknown8; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 144fd847..2297d889 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1561,7 +1561,7 @@ void Core::Entity::Player::sendZonePackets() auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryId(); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); - initZonePacket->data().bitmask = 0x1; + initZonePacket->data().bitmask = 0x1; //Setting this to 16 makes it so you can fly in the area (more research needed!) initZonePacket->data().unknown5 = 0x2A; initZonePacket->data().festivalId = getCurrentZone()->getCurrentFestival().first; initZonePacket->data().additionalFestivalId = getCurrentZone()->getCurrentFestival().second; From b96ee1aeba11262f604efdfff11d7fa44c4e7262 Mon Sep 17 00:00:00 2001 From: Biscuit Boy Date: Thu, 20 Sep 2018 00:00:01 +1000 Subject: [PATCH 2/2] Should probs mention it's decimal not hex --- src/servers/sapphire_zone/Actor/Player.cpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 2297d889..6efdf86a 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -1561,7 +1561,7 @@ void Core::Entity::Player::sendZonePackets() auto initZonePacket = makeZonePacket< FFXIVIpcInitZone >( getId() ); initZonePacket->data().zoneId = getCurrentZone()->getTerritoryId(); initZonePacket->data().weatherId = static_cast< uint8_t >( getCurrentZone()->getCurrentWeather() ); - initZonePacket->data().bitmask = 0x1; //Setting this to 16 makes it so you can fly in the area (more research needed!) + initZonePacket->data().bitmask = 0x1; //Setting this to 16 (deciaml) makes it so you can fly in the area (more research needed!) initZonePacket->data().unknown5 = 0x2A; initZonePacket->data().festivalId = getCurrentZone()->getCurrentFestival().first; initZonePacket->data().additionalFestivalId = getCurrentZone()->getCurrentFestival().second;