diff options
author | Shauren <shauren.trinity@gmail.com> | 2015-08-15 14:24:42 +0200 |
---|---|---|
committer | ForesterDev <gmmunchkinbox@gmail.com> | 2020-03-12 17:10:13 +0100 |
commit | 425f588525cb0b5f384e0bc3b566cdd476579dbb (patch) | |
tree | 422eca92db13b75927b8b0ed5072822b35d461a2 /src/server/game/Handlers/MiscHandler.cpp | |
parent | af6d207addfef177fb5ac3e7fa61ec93ced83d16 (diff) |
Core/PacketIO: Updated and enabled CMSG_WORLD_TELEPORT (GM opcode)
(cherry picked from commit 7632e1182584236ab2e8069ac6e3739fd7de47b0)
Diffstat (limited to 'src/server/game/Handlers/MiscHandler.cpp')
-rw-r--r-- | src/server/game/Handlers/MiscHandler.cpp | 33 |
1 files changed, 10 insertions, 23 deletions
diff --git a/src/server/game/Handlers/MiscHandler.cpp b/src/server/game/Handlers/MiscHandler.cpp index 38e0ea8a19f..552db8c6ffc 100644 --- a/src/server/game/Handlers/MiscHandler.cpp +++ b/src/server/game/Handlers/MiscHandler.cpp @@ -38,6 +38,7 @@ #include "Language.h" #include "Log.h" #include "MapManager.h" +#include "MiscPackets.h" #include "Object.h" #include "ObjectAccessor.h" #include "ObjectMgr.h" @@ -1042,36 +1043,22 @@ void WorldSession::HandleInspectHonorStatsOpcode(WorldPacket& recvData) SendPacket(&data); } -void WorldSession::HandleWorldTeleportOpcode(WorldPacket& recvData) +void WorldSession::HandleWorldTeleportOpcode(WorldPackets::Misc::WorldTeleport& worldTeleport) { - uint32 time; - uint32 mapid; - float PositionX; - float PositionY; - float PositionZ; - float Orientation; - - recvData >> time; // time in m.sec. - recvData >> mapid; - recvData >> PositionX; - recvData >> PositionY; - recvData >> PositionZ; - recvData >> Orientation; // o (3.141593 = 180 degrees) - - TC_LOG_DEBUG("network", "WORLD: Received CMSG_WORLD_TELEPORT"); - - if (GetPlayer()->IsInFlight()) + if (_player->IsInFlight()) { - TC_LOG_DEBUG("network", "Player '%s' (GUID: %u) in flight, ignore worldport command.", - GetPlayer()->GetName().c_str(), GetPlayer()->GetGUID().GetCounter()); + TC_LOG_DEBUG("network", "Player '%s' (%s) in flight, ignore worldport command.", + _player->GetName().c_str(), _player->GetGUID().ToString().c_str()); return; } - TC_LOG_DEBUG("network", "CMSG_WORLD_TELEPORT: Player = %s, Time = %u, map = %u, x = %f, y = %f, z = %f, o = %f", - GetPlayer()->GetName().c_str(), time, mapid, PositionX, PositionY, PositionZ, Orientation); + WorldLocation loc(worldTeleport.MapID, worldTeleport.Pos); + loc.SetOrientation(worldTeleport.Facing); + TC_LOG_DEBUG("network", "CMSG_WORLD_TELEPORT: Player = %s, time = %u, map = %u, pos = %s", + _player->GetName().c_str(), worldTeleport.Time, worldTeleport.MapID, loc.ToString().c_str()); if (HasPermission(rbac::RBAC_PERM_OPCODE_WORLD_TELEPORT)) - GetPlayer()->TeleportTo(mapid, PositionX, PositionY, PositionZ, Orientation); + _player->TeleportTo(loc); else SendNotification(LANG_YOU_NOT_HAVE_PERMISSION); } |