diff options
-rw-r--r-- | sql/updates/world/master/2021_11_05_00_world.sql | 10 | ||||
-rw-r--r-- | src/server/scripts/World/areatrigger_scripts.cpp | 24 |
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); } |