diff --git a/src/game/Handlers/TaxiHandler.cpp b/src/game/Handlers/TaxiHandler.cpp index cd1fb2477d4..818ae902ecd 100644 --- a/src/game/Handlers/TaxiHandler.cpp +++ b/src/game/Handlers/TaxiHandler.cpp @@ -96,7 +96,7 @@ void WorldSession::SendTaxiMenu(Creature* unit) data << uint32(1); data << unit->GetObjectGuid(); data << uint32(curloc); - GetPlayer()->m_taxi.AppendTaximaskTo(data, GetPlayer()->IsTaxiCheater()); + GetPlayer()->m_taxi.AppendTaximaskTo(data, GetPlayer()->IsTaxiCheater(), GetPlayer()->GetRace()); SendPacket(&data); } diff --git a/src/game/Objects/PlayerTaxi.cpp b/src/game/Objects/PlayerTaxi.cpp index 7b5f7d902c2..b9564c55f7f 100644 --- a/src/game/Objects/PlayerTaxi.cpp +++ b/src/game/Objects/PlayerTaxi.cpp @@ -50,12 +50,32 @@ void PlayerTaxi::LoadTaxiMask(char const* data) } } -void PlayerTaxi::AppendTaximaskTo(ByteBuffer& data, bool all) +void PlayerTaxi::AppendTaximaskTo(ByteBuffer& data, bool all, uint32 raceId) { if (all) { - for (uint32 i : sTaxiNodesMask) - data << uint32(i); // all existing nodes + if ((1 << (raceId - 1)) & RACEMASK_ALLIANCE) // alliance nodes + { + data << uint32(3456411898); + data << uint32(2148078929); + data << uint32(49991); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + } + else if ((1 << (raceId - 1)) & RACEMASK_HORDE) // horde nodes + { + data << uint32(830166528); + data << uint32(315656872); + data << uint32(56504); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + data << uint32(0); + } } else { diff --git a/src/game/Objects/PlayerTaxi.h b/src/game/Objects/PlayerTaxi.h index 062423103a8..93654736634 100644 --- a/src/game/Objects/PlayerTaxi.h +++ b/src/game/Objects/PlayerTaxi.h @@ -53,7 +53,7 @@ class PlayerTaxi else return false; } - void AppendTaximaskTo(ByteBuffer& data, bool all); + void AppendTaximaskTo(ByteBuffer& data, bool all, uint32 raceId); // Destinations bool LoadTaxiDestinationsFromString(std::string const& values, Team team);