diff options
Diffstat (limited to 'src/server/game/Scripting/ScriptMgr.h')
-rw-r--r-- | src/server/game/Scripting/ScriptMgr.h | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/src/server/game/Scripting/ScriptMgr.h b/src/server/game/Scripting/ScriptMgr.h index 6c0b660fb0b..76a5f663f82 100644 --- a/src/server/game/Scripting/ScriptMgr.h +++ b/src/server/game/Scripting/ScriptMgr.h @@ -28,6 +28,7 @@ #include "Weather.h" class AccountMgr; +class AreaTrigger; class AuctionHouseObject; class Aura; class AuraScript; @@ -836,6 +837,38 @@ class TC_GAME_API GroupScript : public ScriptObject virtual void OnDisband(Group* /*group*/) { } }; +class TC_GAME_API AreaTriggerEntityScript : public ScriptObject +{ + protected: + + AreaTriggerEntityScript(const char* name); + + public: + // Called when the AreaTrigger has just been initialized, just before added to map + virtual void OnInitialize(AreaTrigger* /*areaTrigger*/) { } + + // Called when the AreaTrigger has just been created + virtual void OnCreate(AreaTrigger* /*areaTrigger*/) { } + + // Called on each AreaTrigger update + virtual void OnUpdate(AreaTrigger* /*areaTrigger*/, uint32 /*diff*/) { } + + // Called when the AreaTrigger reach splineIndex + virtual void OnSplineIndexReached(AreaTrigger* /*areaTrigger*/, int /*splineIndex*/) { } + + // Called when the AreaTrigger reach its destination + virtual void OnDestinationReached(AreaTrigger* /*areaTrigger*/) { } + + // Called when an unit enter the AreaTrigger + virtual void OnUnitEnter(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { } + + // Called when an unit exit the AreaTrigger, or when the AreaTrigger is removed + virtual void OnUnitExit(AreaTrigger* /*areaTrigger*/, Unit* /*unit*/) { } + + // Called when the AreaTrigger is removed + virtual void OnRemove(AreaTrigger* /*areaTrigger*/) { } +}; + class TC_GAME_API SceneScript : public ScriptObject { protected: @@ -1133,6 +1166,17 @@ class TC_GAME_API ScriptMgr void ModifyMeleeDamage(Unit* target, Unit* attacker, uint32& damage); void ModifySpellDamageTaken(Unit* target, Unit* attacker, int32& damage); + public: /* AreaTriggerEntityScript */ + + void OnAreaTriggerEntityInitialize(AreaTrigger* areaTrigger); + void OnAreaTriggerEntityCreate(AreaTrigger* areaTrigger); + void OnAreaTriggerEntityUpdate(AreaTrigger* areaTrigger, uint32 diff); + void OnAreaTriggerEntitySplineIndexReached(AreaTrigger* areaTrigger, int splineIndex); + void OnAreaTriggerEntityDestinationReached(AreaTrigger* areaTrigger); + void OnAreaTriggerEntityUnitEnter(AreaTrigger* areaTrigger, Unit* unit); + void OnAreaTriggerEntityUnitExit(AreaTrigger* areaTrigger, Unit* unit); + void OnAreaTriggerEntityRemove(AreaTrigger* areaTrigger); + public: /* SceneScript */ void OnSceneStart(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate); void OnSceneTrigger(Player* player, uint32 sceneInstanceID, SceneTemplate const* sceneTemplate, std::string const& triggerName); |