diff options
-rw-r--r-- | src/server/game/Entities/Player/Player.cpp | 5 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.cpp | 8 | ||||
-rw-r--r-- | src/server/game/Server/Packets/MiscPackets.h | 12 | ||||
-rw-r--r-- | src/server/game/Server/Protocol/Opcodes.cpp | 2 |
4 files changed, 22 insertions, 5 deletions
diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index e8b6498e281..e03a832ecdf 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -19838,10 +19838,7 @@ void Player::SendAutoRepeatCancel(Unit* target) void Player::SendExplorationExperience(uint32 Area, uint32 Experience) { - WorldPacket data(SMSG_EXPLORATION_EXPERIENCE, 8); - data << uint32(Area); - data << uint32(Experience); - GetSession()->SendPacket(&data); + GetSession()->SendPacket(WorldPackets::Misc::ExplorationExperience(Experience, Area).Write()); } void Player::SendDungeonDifficulty() diff --git a/src/server/game/Server/Packets/MiscPackets.cpp b/src/server/game/Server/Packets/MiscPackets.cpp index a6a21d749ad..e273de90b7f 100644 --- a/src/server/game/Server/Packets/MiscPackets.cpp +++ b/src/server/game/Server/Packets/MiscPackets.cpp @@ -330,3 +330,11 @@ WorldPacket const* WorldPackets::Misc::StopMirrorTimer::Write() return &_worldPacket; } + +WorldPacket const* WorldPackets::Misc::ExplorationExperience::Write() +{ + _worldPacket << int32(AreaID); + _worldPacket << int32(Experience); + + return &_worldPacket; +} diff --git a/src/server/game/Server/Packets/MiscPackets.h b/src/server/game/Server/Packets/MiscPackets.h index 54ad88e1a3e..93fe4ebfde4 100644 --- a/src/server/game/Server/Packets/MiscPackets.h +++ b/src/server/game/Server/Packets/MiscPackets.h @@ -467,6 +467,18 @@ namespace WorldPackets int32 Timer = 0; }; + + class ExplorationExperience final : public ServerPacket + { + public: + ExplorationExperience() : ServerPacket(SMSG_EXPLORATION_EXPERIENCE, 8) { } + ExplorationExperience(int32 experience, int32 areaID) : ServerPacket(SMSG_EXPLORATION_EXPERIENCE, 8), Experience(experience), AreaID(areaID) { } + + WorldPacket const* Write() override; + + int32 Experience = 0; + int32 AreaID = 0; + }; } } diff --git a/src/server/game/Server/Protocol/Opcodes.cpp b/src/server/game/Server/Protocol/Opcodes.cpp index 27358bf9cea..b361ca1e985 100644 --- a/src/server/game/Server/Protocol/Opcodes.cpp +++ b/src/server/game/Server/Protocol/Opcodes.cpp @@ -1207,7 +1207,7 @@ void OpcodeTable::Initialize() DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_LIST, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_EQUIPMENT_SET_SAVED, STATUS_NEVER, CONNECTION_TYPE_INSTANCE); DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPECTED_SPAM_RECORDS, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); - DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); + DEFINE_SERVER_OPCODE_HANDLER(SMSG_EXPLORATION_EXPERIENCE, STATUS_NEVER, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FACTION_BONUS_INFO, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FAILED_PLAYER_CONDITION, STATUS_UNHANDLED, CONNECTION_TYPE_REALM); DEFINE_SERVER_OPCODE_HANDLER(SMSG_FEATURE_SYSTEM_STATUS, STATUS_NEVER, CONNECTION_TYPE_REALM); |