diff options
Diffstat (limited to 'src/server/game/Instances/InstanceScript.cpp')
-rw-r--r-- | src/server/game/Instances/InstanceScript.cpp | 27 |
1 files changed, 18 insertions, 9 deletions
diff --git a/src/server/game/Instances/InstanceScript.cpp b/src/server/game/Instances/InstanceScript.cpp index 918a9561634..64fda3b3c81 100644 --- a/src/server/game/Instances/InstanceScript.cpp +++ b/src/server/game/Instances/InstanceScript.cpp @@ -21,6 +21,7 @@ #include "CreatureAI.h" #include "CreatureAIImpl.h" #include "DatabaseEnv.h" +#include "GameEventSender.h" #include "GameObject.h" #include "Group.h" #include "InstancePackets.h" @@ -129,6 +130,23 @@ ObjectGuid InstanceScript::GetGuidData(uint32 type) const return GetObjectGuid(type); } +void InstanceScript::TriggerGameEvent(uint32 gameEventId, WorldObject* source /*= nullptr*/, WorldObject* target /*= nullptr*/) +{ + if (source) + { + ZoneScript::TriggerGameEvent(gameEventId, source, target); + return; + } + + ProcessEvent(target, gameEventId, source); + instance->DoOnPlayers([gameEventId](Player* player) + { + GameEvents::TriggerForPlayer(gameEventId, player); + }); + + GameEvents::TriggerForMap(gameEventId, instance); +} + Creature* InstanceScript::GetCreature(uint32 type) { return instance->GetCreature(GetObjectGuid(type)); @@ -622,15 +640,6 @@ void InstanceScript::DoUpdateCriteria(CriteriaType type, uint32 miscValue1 /*= 0 }); } -// Start timed achievement for all players in instance -void InstanceScript::DoStartCriteriaTimer(CriteriaStartEvent startEvent, uint32 entry) -{ - instance->DoOnPlayers([startEvent, entry](Player* player) - { - player->StartCriteriaTimer(startEvent, entry); - }); -} - void InstanceScript::DoRemoveAurasDueToSpellOnPlayers(uint32 spell, bool includePets /*= false*/, bool includeControlled /*= false*/) { instance->DoOnPlayers([this, spell, includePets, includeControlled](Player* player) |