diff --git a/src/game/AI/EventAI/CreatureEventAI.cpp b/src/game/AI/EventAI/CreatureEventAI.cpp index c7688f610a7..3d653cb1aab 100644 --- a/src/game/AI/EventAI/CreatureEventAI.cpp +++ b/src/game/AI/EventAI/CreatureEventAI.cpp @@ -370,9 +370,12 @@ bool CreatureEventAI::CheckEvent(CreatureEventAIHolder& holder, Unit* actionInvo if (!actionInvoker) return false; - if (Player* player = actionInvoker->GetBeneficiaryPlayer()) - if (!sObjectMgr.IsConditionSatisfied(event.death.conditionId, player, player->GetMap(), m_creature, CONDITION_FROM_EVENTAI)) - return false; + Unit const* controller = actionInvoker->GetControllingPlayer(); + if (!controller) // only allow going forward if we can evaluate condition + controller = actionInvoker; + + if (!sObjectMgr.IsConditionSatisfied(event.death.conditionId, controller, controller->GetMap(), m_creature, CONDITION_FROM_EVENTAI)) + return false; } break; case EVENT_T_EVADE: