diff --git a/src/common/Network/PacketDef/Zone/ServerZoneDef.h b/src/common/Network/PacketDef/Zone/ServerZoneDef.h index 0d92d010..8b65040d 100644 --- a/src/common/Network/PacketDef/Zone/ServerZoneDef.h +++ b/src/common/Network/PacketDef/Zone/ServerZoneDef.h @@ -1000,8 +1000,8 @@ struct FFXIVIpcPlayerClassInfo : uint16_t classId; uint8_t unknown; uint8_t isSpecialist; - uint16_t level; // Locks actions, equipment, prob more - uint16_t level1; // Locks roles, prob more + uint16_t level; // Locks actions, equipment, prob more. Player's current level (synced). + uint16_t level1; // Locks roles, prob more. Player's actual unsynced level. uint32_t roleActions[10]; }; diff --git a/src/servers/sapphire_zone/Actor/Player.cpp b/src/servers/sapphire_zone/Actor/Player.cpp index 6efdf86a..c6a894e3 100644 --- a/src/servers/sapphire_zone/Actor/Player.cpp +++ b/src/servers/sapphire_zone/Actor/Player.cpp @@ -746,6 +746,7 @@ void Core::Entity::Player::setClassJob( Common::ClassJob classJob ) auto classInfoPacket = makeZonePacket< FFXIVIpcPlayerClassInfo >( getId() ); classInfoPacket->data().classId = static_cast< uint8_t >( getClass() ); + classInfoPacket->data().level1 = getLevel(); classInfoPacket->data().level = getLevel(); queuePacket( classInfoPacket ); @@ -1733,4 +1734,3 @@ bool Core::Entity::Player::isOnEnterEventDone() const { return m_onEnterEventDone; } -