aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDiscover- <amort11@hotmail.com>2012-03-04 02:45:21 +0100
committerDiscover- <amort11@hotmail.com>2012-03-04 02:45:21 +0100
commitc48a1ad17db9b623795d24bbe83d77247b6ef756 (patch)
treee547e8fb172095e03d8078e9360d0a9355247fb3
parentc4fd6b89dba06ad8e42065f8aebeb8101d4ccaab (diff)
Scripts/Misc: Script entrance areatriggers for Area 52.
-rw-r--r--sql/updates/world/2012_03_04_00_world_creature_template_addon.sql13
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp43
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();
}