aboutsummaryrefslogtreecommitdiff
path: root/src/game/TaxiHandler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/game/TaxiHandler.cpp')
-rw-r--r--src/game/TaxiHandler.cpp15
1 files changed, 11 insertions, 4 deletions
diff --git a/src/game/TaxiHandler.cpp b/src/game/TaxiHandler.cpp
index 5ba65c00660..fe1255e51a1 100644
--- a/src/game/TaxiHandler.cpp
+++ b/src/game/TaxiHandler.cpp
@@ -249,12 +249,19 @@ void WorldSession::HandleTaxiNextDestinationOpcode(WorldPacket& /*recv_data*/)
objmgr.GetTaxiPath( sourcenode, destinationnode, path, cost);
if(path && MountId)
+ {
SendDoFlight( MountId, path, 1 ); // skip start fly node
- else
- GetPlayer()->m_taxi.ClearTaxiDestinations(); // clear problematic path and next
+ return;
+ }
}
- else
- GetPlayer()->m_taxi.ClearTaxiDestinations(); // not destinations, clear source node
+
+ GetPlayer()->m_taxi.ClearTaxiDestinations(); // not destinations, clear source node
+ GetPlayer()->Unmount();
+ GetPlayer()->RemoveFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_DISABLE_MOVE | UNIT_FLAG_TAXI_FLIGHT);
+ GetPlayer()->SetFallInformation(0, GetPlayer()->GetPositionZ());
+ GetPlayer()->getHostilRefManager().setOnlineOfflineState(true);
+ if(GetPlayer()->pvpInfo.inHostileArea)
+ GetPlayer()->CastSpell(GetPlayer(), 2479, true);
}
void WorldSession::HandleActivateTaxiOpcode( WorldPacket & recv_data )