diff --git a/Source/Scripts/World/AreaTrigger.cs b/Source/Scripts/World/AreaTrigger.cs index 3b26e8ccb..c982398dc 100644 --- a/Source/Scripts/World/AreaTrigger.cs +++ b/Source/Scripts/World/AreaTrigger.cs @@ -20,6 +20,7 @@ using Game.DataStorage; using Game.Entities; using Game.Scripting; using System.Collections.Generic; +using Game.AI; namespace Scripts.World.Areatriggers { @@ -47,6 +48,9 @@ namespace Scripts.World.Areatriggers //Area 52 public const uint A52Neuralyzer = 34400; + + //Stormwind teleport + public const uint DustInTheStormwind = 312593; } struct QuestIds @@ -95,6 +99,9 @@ namespace Scripts.World.Areatriggers //Frostgrips Hollow public const uint StormforgedMonitor = 29862; public const uint StormforgedEradictor = 29861; + + //Stormwind Teleport + public const uint KillCreditTeleportStormwind = 160561; } struct GameObjectIds @@ -406,4 +413,20 @@ namespace Scripts.World.Areatriggers return true; } } + + [Script] + class areatrigger_stormwind_teleport_unit : AreaTriggerAI + { + public areatrigger_stormwind_teleport_unit(AreaTrigger areatrigger) : base(areatrigger) { } + + public override void OnUnitEnter(Unit unit) + { + Player player = unit.ToPlayer(); + if (player == null) + return; + + player.CastSpell(unit, SpellIds.DustInTheStormwind); + player.KilledMonsterCredit(CreatureIds.KillCreditTeleportStormwind); + } + } } \ No newline at end of file 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 000000000..78b296010 --- /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');