diff options
author | Jeremy <Golrag@users.noreply.github.com> | 2023-08-24 22:25:15 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2023-08-24 22:25:15 +0200 |
commit | 30f57de184fb96dfb6c548201e7717fa293682e1 (patch) | |
tree | 33b6a633035d88050b3f762f87cea96c1f50acbf /src/server/scripts/World | |
parent | a9d459962b221fd2033efa02f059b602c5a546f6 (diff) |
Scripts/AreaTrigger: Added CanCaptureFlag and CaptureFlag hooks (#29237)
* also added related areatrigger script
Diffstat (limited to 'src/server/scripts/World')
-rw-r--r-- | src/server/scripts/World/areatrigger_scripts.cpp | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp index 8bf43d076ac..a46c5cc0f3f 100644 --- a/src/server/scripts/World/areatrigger_scripts.cpp +++ b/src/server/scripts/World/areatrigger_scripts.cpp @@ -16,6 +16,7 @@ */ #include "ScriptMgr.h" +#include "AreaTrigger.h" #include "AreaTriggerAI.h" #include "DB2Structure.h" #include "GameObject.h" @@ -26,6 +27,7 @@ #include "Player.h" #include "TemporarySummon.h" #include "World.h" +#include "ZoneScript.h" /*###### ## at_coilfang_waterfall @@ -441,6 +443,22 @@ public: } }; +struct areatrigger_action_capture_flag : AreaTriggerAI +{ + areatrigger_action_capture_flag(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) { } + + void OnUnitEnter(Unit* unit) override + { + if (!unit->IsPlayer()) + return; + + Player* player = unit->ToPlayer(); + if (ZoneScript* zoneScript = at->GetZoneScript()) + if (zoneScript->CanCaptureFlag(at, player)) + zoneScript->OnCaptureFlag(at, player); + } +}; + void AddSC_areatrigger_scripts() { new AreaTrigger_at_coilfang_waterfall(); @@ -454,4 +472,5 @@ void AddSC_areatrigger_scripts() RegisterAreaTriggerAI(areatrigger_stormwind_teleport_unit); RegisterAreaTriggerAI(areatrigger_battleground_buffs); new AreaTrigger_at_battleground_buffs(); + RegisterAreaTriggerAI(areatrigger_action_capture_flag); } |