From abbac041bffa80c9804b5912a56e30c7703e111e Mon Sep 17 00:00:00 2001 From: jackpoz Date: Mon, 28 Dec 2020 12:38:34 +0100 Subject: Scripts/ICC: Fix teleporter not removing players from Gunship A more generic solution might be better, maybe depending on spell flags Ref #25652 (cherry picked from commit 0ad1854d1c6a3b6ff93e71272c919f1f5f11d5ed) --- .../Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'src') diff --git a/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp b/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp index 1e4fd7a595e..7e1259fdcc4 100644 --- a/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp +++ b/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp @@ -26,6 +26,7 @@ #include "Spell.h" #include "SpellInfo.h" #include "SpellMgr.h" +#include "Transport.h" static std::vector const TeleportSpells = { @@ -69,6 +70,11 @@ class icecrown_citadel_teleport : public GameObjectScript return true; } + // If the player is on the ship, Unit::NearTeleport() will try to keep the player on the ship, causing issues. + // For that we simply always remove the player from the ship. + if (Transport* transport = player->GetTransport()) + transport->RemovePassenger(player); + player->CastSpell(player, spell->Id, true); return true; } -- cgit v1.2.3