diff --git a/src/server/game/Entities/Player/Player.cpp b/src/server/game/Entities/Player/Player.cpp index 97f865c21..9b2cb38c3 100644 --- a/src/server/game/Entities/Player/Player.cpp +++ b/src/server/game/Entities/Player/Player.cpp @@ -10691,7 +10691,8 @@ void Player::SendTaxiNodeStatusMultiple() DoForAllVisibleWorldObjects([this](WorldObject* worldObject) { Creature* creature = worldObject->ToCreature(); - if (!creature || creature->IsHostileTo(this)) + // reaction must be checked both ways: the Dark Portal flight masters are neutral toward opposite-faction players, while players are hostile toward them + if (!creature || creature->GetReactionTo(this) <= REP_UNFRIENDLY || IsHostileTo(creature)) return; if (!creature->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER)) diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index 1a493c7d3..a0dcd7edb 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -36,7 +36,8 @@ void WorldSession::SendTaxiStatus(ObjectGuid guid) { Player* const player = GetPlayer(); Creature* unit = ObjectAccessor::GetCreature(*player, guid); - if (!unit || unit->IsHostileTo(player) || !unit->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER)) + // reaction must be checked both ways: the Dark Portal flight masters are neutral toward opposite-faction players, while players are hostile toward them + if (!unit || unit->GetReactionTo(player) <= REP_UNFRIENDLY || player->IsHostileTo(unit) || !unit->HasNpcFlag(UNIT_NPC_FLAG_FLIGHTMASTER)) { LOG_DEBUG("network", "WorldSession::SendTaxiStatus - Unit ({}) not found.", guid.ToString()); return;