diff options
Diffstat (limited to 'src')
-rwxr-xr-x | src/server/game/Entities/GameObject/GameObject.cpp | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/src/server/game/Entities/GameObject/GameObject.cpp b/src/server/game/Entities/GameObject/GameObject.cpp index 83ece2eda31..8716733f46f 100755 --- a/src/server/game/Entities/GameObject/GameObject.cpp +++ b/src/server/game/Entities/GameObject/GameObject.cpp @@ -1791,10 +1791,13 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player* case GO_DESTRUCTIBLE_DAMAGED: { EventInform(m_goInfo->building.damagedEvent); - sScriptMgr->OnGameObjectDamaged(this, eventInvoker); + if (eventInvoker) + { + sScriptMgr->OnGameObjectDamaged(this, eventInvoker); if (Battleground* bg = eventInvoker->GetBattleground()) bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.damagedEvent); + } RemoveFlag(GAMEOBJECT_FLAGS, GO_FLAG_DESTROYED); SetFlag(GAMEOBJECT_FLAGS, GO_FLAG_DAMAGED); @@ -1818,10 +1821,10 @@ void GameObject::SetDestructibleState(GameObjectDestructibleState state, Player* } case GO_DESTRUCTIBLE_DESTROYED: { - sScriptMgr->OnGameObjectDestroyed(this, eventInvoker); EventInform(m_goInfo->building.destroyedEvent); if (eventInvoker) { + sScriptMgr->OnGameObjectDestroyed(this, eventInvoker); if (Battleground* bg = eventInvoker->GetBattleground()) { bg->EventPlayerDamagedGO(eventInvoker, this, m_goInfo->building.destroyedEvent); |