diff options
author | Discover- <amort11@hotmail.com> | 2012-03-04 02:45:21 +0100 |
---|---|---|
committer | Discover- <amort11@hotmail.com> | 2012-03-04 02:45:21 +0100 |
commit | c48a1ad17db9b623795d24bbe83d77247b6ef756 (patch) | |
tree | e547e8fb172095e03d8078e9360d0a9355247fb3 | |
parent | c4fd6b89dba06ad8e42065f8aebeb8101d4ccaab (diff) |
Scripts/Misc: Script entrance areatriggers for Area 52.
-rw-r--r-- | sql/updates/world/2012_03_04_00_world_creature_template_addon.sql | 13 | ||||
-rw-r--r-- | src/server/scripts/World/areatrigger_scripts.cpp | 43 |
2 files changed, 56 insertions, 0 deletions
diff --git a/sql/updates/world/2012_03_04_00_world_creature_template_addon.sql b/sql/updates/world/2012_03_04_00_world_creature_template_addon.sql new file mode 100644 index 00000000000..358dc651735 --- /dev/null +++ b/sql/updates/world/2012_03_04_00_world_creature_template_addon.sql @@ -0,0 +1,13 @@ +-- Spotlight aura for spotlight NPC +DELETE FROM `creature_template_addon` WHERE `entry`=19913; +INSERT INTO `creature_template_addon` (`entry`,`mount`,`bytes1`,`bytes2`,`emote`,`auras`) VALUES +(19913,0,0,0,0,'39312'); + +-- Scriptnames for areatriggers +SET @AT_AREA_52_SOUTHSET := 4472; +SET @AT_AREA_52_NORTHSET := 4466; +SET @AT_AREA_52_WESTSET := 4471; +SET @AT_AREA_52_EASTSET := 4422; +DELETE FROM `areatrigger_scripts` WHERE `entry` IN (@AT_AREA_52_SOUTH,@AT_AREA_52_NORTH,@AT_AREA_52_WEST,@AT_AREA_52_EAST) +INSERT INTO `areatrigger_scripts` (`entry`,`ScriptName`) VALUES +(@AT_AREA_52_SOUTH,"at_area_52_entrance"),(@AT_AREA_52_NORTH,"at_area_52_entrance"),(@AT_AREA_52_WEST,"at_area_52_entrance"),(@AT_AREA_52_EAST,"at_area_52_entrance"); diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp index 8f86f760775..77f3a64a13f 100644 --- a/src/server/scripts/World/areatrigger_scripts.cpp +++ b/src/server/scripts/World/areatrigger_scripts.cpp @@ -32,6 +32,7 @@ at_sholazar_waygate q12548 at_nats_landing q11209 at_bring_your_orphan_to q910 q910 q1800 q1479 q1687 q1558 q10951 q10952 at_brewfest +at_area_52_entrance EndContentData */ #include "ScriptPCH.h" @@ -420,6 +421,47 @@ class AreaTrigger_at_brewfest : public AreaTriggerScript std::map<uint32, time_t> _triggerTimes; }; +/*###### +## at_area_52_entrance +######*/ + +enum Area52Entrance +{ + NPC_SPOTLIGHT = 19913, + SUMMON_COOLDOWN = 5, + + AT_AREA_52_SOUTH = 4472, + AT_AREA_52_NORTH = 4466, + AT_AREA_52_WEST = 4471, + AT_AREA_52_EAST = 4422, +}; + +class AreaTrigger_at_area_52_entrance : public AreaTriggerScript +{ + public: + AreaTrigger_at_area_52_entrance() : AreaTriggerScript("at_area_52_entrance") + { + _triggerTimes[AT_AREA_52_SOUTH] = _triggerTimes[AT_AREA_52_NORTH] = _triggerTimes[AT_AREA_52_WEST] = _triggerTimes[AT_AREA_52_EAST] = 0; + } + + bool OnTrigger(Player* player, AreaTriggerEntry const* trigger) + { + if (!player->isAlive()) + return false; + + if (sWorld->GetGameTime() - _triggerTimes[trigger->id] < SUMMON_COOLDOWN) + return false; + + player->SummonCreature(NPC_SPOTLIGHT, trigger->x, trigger->y, trigger->z, 0.0f, TEMPSUMMON_TIMED_DESPAWN, 5000); + + _triggerTimes[trigger->id] = sWorld->GetGameTime(); + return false; + } + + private: + std::map<uint32, time_t> _triggerTimes; +}; + void AddSC_areatrigger_scripts() { new AreaTrigger_at_coilfang_waterfall(); @@ -431,4 +473,5 @@ void AddSC_areatrigger_scripts() new AreaTrigger_at_nats_landing(); new AreaTrigger_at_bring_your_orphan_to(); new AreaTrigger_at_brewfest(); + new AreaTrigger_at_area_52_entrance(); } |