aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjackpoz <giacomopoz@gmail.com>2020-12-28 12:38:34 +0100
committerjackpoz <giacomopoz@gmail.com>2020-12-28 12:38:34 +0100
commit0ad1854d1c6a3b6ff93e71272c919f1f5f11d5ed (patch)
tree8e4377c93bf536391a24138f5528e4eef9b35a62
parentaabd2b49e2710e00c39c4b4f22fef08aa029d4db (diff)
Scripts/ICC: Fix teleporter not removing players from Gunship
A more generic solution might be better, maybe depending on spell flags Ref #25652
-rw-r--r--src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp6
1 files changed, 6 insertions, 0 deletions
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 cf01e8c9c45..ebc500029a7 100644
--- a/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp
+++ b/src/server/scripts/Northrend/IcecrownCitadel/go_icecrown_citadel_teleport.cpp
@@ -25,6 +25,7 @@
#include "Spell.h"
#include "SpellInfo.h"
#include "SpellMgr.h"
+#include "Transport.h"
static std::vector<uint32> 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, teleportSpell, true);
return true;
}