From 9f6fc5f12399092933a0ba67a04f73c0c7df78c8 Mon Sep 17 00:00:00 2001 From: Aokromes Date: Sat, 21 Jan 2017 14:55:03 +0100 Subject: [PATCH] Core/Pets: Disable pet interface for charmed units while mounted --- src/server/game/Entities/Unit/Unit.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/server/game/Entities/Unit/Unit.cpp b/src/server/game/Entities/Unit/Unit.cpp index 8bf1d334c7..1fdc555431 100644 --- a/src/server/game/Entities/Unit/Unit.cpp +++ b/src/server/game/Entities/Unit/Unit.cpp @@ -10191,6 +10191,11 @@ void Unit::Mount(uint32 mount, uint32 VehicleId, uint32 creatureEntry) player->UnsummonPetTemporaryIfAny(); } + // if we have charmed npc, stun him also (everywhere) + if (Unit* charm = player->GetCharm()) + if (charm->GetTypeId() == TYPEID_UNIT) + charm->SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); + player->SendMovementSetCollisionHeight(player->GetCollisionHeight(true)); } @@ -10238,6 +10243,11 @@ void Unit::Dismount() } else player->ResummonPetTemporaryUnSummonedIfAny(); + + // if we have charmed npc, remove stun also + if (Unit* charm = player->GetCharm()) + if (charm->GetTypeId() == TYPEID_UNIT && charm->HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED) && !charm->HasUnitState(UNIT_STATE_STUNNED)) + charm->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); } }