diff options
| author | Shauren <shauren.trinity@gmail.com> | 2011-09-30 18:24:12 +0200 |
|---|---|---|
| committer | Shauren <shauren.trinity@gmail.com> | 2011-09-30 18:24:12 +0200 |
| commit | da54fb92d51ce650275cd31ae888fe9cbc02e5d1 (patch) | |
| tree | 1aea1014ca88249fc0727ff7c77bd5a728e2842a /src/server/game/Server | |
| parent | 18aad847e1d47295c0967bf6a85e9a89283ef958 (diff) | |
Core/Movement: Fixed knockback visibility for other players (no more "teleport") and knockback strength from creature spells (this does not fix knocking creatures back)
Diffstat (limited to 'src/server/game/Server')
| -rwxr-xr-x | src/server/game/Server/Protocol/Handlers/MovementHandler.cpp | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp index 8023f98c93d..62ee55b903b 100755 --- a/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp +++ b/src/server/game/Server/Protocol/Handlers/MovementHandler.cpp @@ -523,13 +523,29 @@ void WorldSession::HandleMoveKnockBackAck(WorldPacket & recv_data) { sLog->outDebug(LOG_FILTER_NETWORKIO, "CMSG_MOVE_KNOCK_BACK_ACK"); - uint64 guid; // guid - unused + uint64 guid; recv_data.readPackGUID(guid); + if (_player->m_mover->GetGUID() != guid) + return; + recv_data.read_skip<uint32>(); // unk MovementInfo movementInfo; ReadMovementInfo(recv_data, &movementInfo); + _player->m_movementInfo = movementInfo; + + WorldPacket data(MSG_MOVE_KNOCK_BACK, 66); + data.appendPackGUID(guid); + _player->BuildMovementPacket(&data); + + // knockback specific info + data << movementInfo.j_sinAngle; + data << movementInfo.j_cosAngle; + data << movementInfo.j_xyspeed; + data << movementInfo.j_zspeed; + + _player->SendMessageToSet(&data, false); } void WorldSession::HandleMoveHoverAck(WorldPacket& recv_data) |
