From 6578d0c7e1e18e10867a40afefa037b491b0f766 Mon Sep 17 00:00:00 2001 From: Dekadencee <> Date: Tue, 3 Feb 2015 14:40:11 +0000 Subject: [PATCH] Player/Emotes: Fix infinite dance and read map animation Thx to @Kinzcool and @SeTM for the info based on https://github.com/TrinityCore/TrinityCore/commit/57ceeae828f94557e865f5a903a2914e1ce3dfea --- src/game/WorldHandlers/ChatHandler.cpp | 3 +++ src/game/WorldHandlers/MovementHandler.cpp | 4 ++++ 2 files changed, 7 insertions(+) diff --git a/src/game/WorldHandlers/ChatHandler.cpp b/src/game/WorldHandlers/ChatHandler.cpp index c8113ff81..4abed65fa 100644 --- a/src/game/WorldHandlers/ChatHandler.cpp +++ b/src/game/WorldHandlers/ChatHandler.cpp @@ -725,6 +725,9 @@ void WorldSession::HandleTextEmoteOpcode(WorldPacket& recv_data) case EMOTE_STATE_KNEEL: case EMOTE_ONESHOT_NONE: break; + case EMOTE_STATE_DANCE: + case EMOTE_STATE_READ: + GetPlayer()->SetUInt32Value(UNIT_NPC_EMOTESTATE, emote_id); default: { // in feign death state allowed only text emotes. diff --git a/src/game/WorldHandlers/MovementHandler.cpp b/src/game/WorldHandlers/MovementHandler.cpp index e07e29bb8..1d5bf778d 100644 --- a/src/game/WorldHandlers/MovementHandler.cpp +++ b/src/game/WorldHandlers/MovementHandler.cpp @@ -344,6 +344,10 @@ void WorldSession::HandleMovementOpcodes(WorldPacket& recv_data) if (plMover) plMover->UpdateFallInformationIfNeed(movementInfo, opcode); + // stop some emotes at player move + if (mover && (mover->GetUInt32Value(UNIT_NPC_EMOTESTATE) != 0)) + mover->SetUInt32Value(UNIT_NPC_EMOTESTATE, EMOTE_ONESHOT_NONE); + WorldPacket data(SMSG_PLAYER_MOVE, recv_data.size()); data << movementInfo; mover->SendMessageToSetExcept(&data, _player);