aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorModoX <moardox@gmail.com>2021-11-05 22:51:30 +0100
committerGitHub <noreply@github.com>2021-11-05 22:51:30 +0100
commitfaa182cb3bd4e37e1b4fc4a56e07710c558d70f3 (patch)
tree38b51ba0da68fabc356fcc880092c832e32a5a5f
parent5eb74cf5ed6433f660ba9387049a2f3e74126988 (diff)
Scripts/Mechagnomes: Added areatrigger teleporter from Mechagon City to Stormwind (#27237)
-rw-r--r--sql/updates/world/master/2021_11_05_00_world.sql10
-rw-r--r--src/server/scripts/World/areatrigger_scripts.cpp24
2 files changed, 34 insertions, 0 deletions
diff --git a/sql/updates/world/master/2021_11_05_00_world.sql b/sql/updates/world/master/2021_11_05_00_world.sql
new file mode 100644
index 00000000000..78b29601007
--- /dev/null
+++ b/sql/updates/world/master/2021_11_05_00_world.sql
@@ -0,0 +1,10 @@
+--
+SET @ATID := 6;
+SET @ATGUID := 6;
+DELETE FROM `areatrigger_template` WHERE `IsServerSide`=1 AND `Id`=@ATID+0;
+INSERT INTO `areatrigger_template` (`Id`, `IsServerSide`, `Type`, `Flags`, `Data0`, `Data1`, `Data2`, `Data3`, `Data4`, `Data5`, `ScriptName`, `VerifiedBuild`) VALUES
+(@ATID+0, 1, 4, 0, 0.5, 0.5, 3, 3, 0, 0, 'areatrigger_stormwind_teleport_unit', 0);
+
+DELETE FROM `areatrigger` WHERE `SpawnId`=@ATGUID+0;
+INSERT INTO `areatrigger` (`SpawnId`, `AreaTriggerId`, `IsServerSide`, `MapId`, `PosX`, `PosY`, `PosZ`, `Orientation`, `PhaseUseFlags`, `PhaseId`, `PhaseGroup`, `Shape`, `ShapeData0`, `ShapeData1`, `ShapeData2`, `ShapeData3`, `ShapeData4`, `ShapeData5`, `Comment`) VALUES
+(@ATGUID+0, @ATID+0, 1, 2268, 729.515625, 609.68231201171875, -238.236251831054687, 2.836383819580078125, 0, 0, 0, 4, 0.5, 0.5, 3, 3, 0, 0, 'Mechagon City - Teleporter to Stormwind');
diff --git a/src/server/scripts/World/areatrigger_scripts.cpp b/src/server/scripts/World/areatrigger_scripts.cpp
index ed78160b499..dcde8ef2c7c 100644
--- a/src/server/scripts/World/areatrigger_scripts.cpp
+++ b/src/server/scripts/World/areatrigger_scripts.cpp
@@ -35,6 +35,7 @@ at_area_52_entrance
EndContentData */
#include "ScriptMgr.h"
+#include "AreaTriggerAI.h"
#include "DB2Structure.h"
#include "GameObject.h"
#include "GameTime.h"
@@ -427,6 +428,28 @@ private:
ObjectGuid stormforgedEradictorGUID;
};
+struct areatrigger_stormwind_teleport_unit : AreaTriggerAI
+{
+ enum MiscIds
+ {
+ SPELL_DUST_IN_THE_STORMWIND = 312593,
+
+ NPC_KILL_CREDIT_TELEPORT_STORMWIND = 160561
+ };
+
+ areatrigger_stormwind_teleport_unit(AreaTrigger* areatrigger) : AreaTriggerAI(areatrigger) { }
+
+ void OnUnitEnter(Unit* unit) override
+ {
+ Player* player = unit->ToPlayer();
+ if (!player)
+ return;
+
+ player->CastSpell(unit, SPELL_DUST_IN_THE_STORMWIND);
+ player->KilledMonsterCredit(NPC_KILL_CREDIT_TELEPORT_STORMWIND);
+ }
+};
+
void AddSC_areatrigger_scripts()
{
new AreaTrigger_at_coilfang_waterfall();
@@ -438,4 +461,5 @@ void AddSC_areatrigger_scripts()
new AreaTrigger_at_brewfest();
new AreaTrigger_at_area_52_entrance();
new AreaTrigger_at_frostgrips_hollow();
+ RegisterAreaTriggerAI(areatrigger_stormwind_teleport_unit);
}