mirror of
https://github.com/TrinityCore/TrinityCore.git
synced 2026-01-21 09:44:45 +01:00
Core/Taxi:
* added Valiance Keep, Warsong Hold to default discovered taxi nodes and enable Dalaran's taxi node when the character has level 68 or higher by default. * send taxi menu to the player when he attempts to request a gossip from a flight master who has a empty gossip and quest menu
This commit is contained in:
@@ -37,28 +37,57 @@ void PlayerTaxi::InitTaxiNodesForLevel(uint32 race, uint32 chrClass, uint8 level
|
||||
// race specific initial known nodes: capital and taxi hub masks
|
||||
switch (race)
|
||||
{
|
||||
case RACE_HUMAN: SetTaximaskNode(2); break; // Human
|
||||
case RACE_ORC: SetTaximaskNode(23); break; // Orc
|
||||
case RACE_DWARF: SetTaximaskNode(6); break; // Dwarf
|
||||
case RACE_NIGHTELF: SetTaximaskNode(26);
|
||||
SetTaximaskNode(27); break; // Night Elf
|
||||
case RACE_UNDEAD_PLAYER: SetTaximaskNode(11); break;// Undead
|
||||
case RACE_TAUREN: SetTaximaskNode(22); break; // Tauren
|
||||
case RACE_GNOME: SetTaximaskNode(6); break; // Gnome
|
||||
case RACE_TROLL: SetTaximaskNode(23); break; // Troll
|
||||
case RACE_BLOODELF: SetTaximaskNode(82); break; // Blood Elf
|
||||
case RACE_DRAENEI: SetTaximaskNode(94); break; // Draenei
|
||||
case RACE_HUMAN:
|
||||
SetTaximaskNode(2);
|
||||
break;
|
||||
case RACE_ORC:
|
||||
SetTaximaskNode(23);
|
||||
break;
|
||||
case RACE_DWARF:
|
||||
SetTaximaskNode(6);
|
||||
break;
|
||||
case RACE_NIGHTELF:
|
||||
SetTaximaskNode(26);
|
||||
SetTaximaskNode(27);
|
||||
break;
|
||||
case RACE_UNDEAD_PLAYER:
|
||||
SetTaximaskNode(11);
|
||||
break;
|
||||
case RACE_TAUREN:
|
||||
SetTaximaskNode(22);
|
||||
break;
|
||||
case RACE_GNOME:
|
||||
SetTaximaskNode(6);
|
||||
break;
|
||||
case RACE_TROLL:
|
||||
SetTaximaskNode(23);
|
||||
break;
|
||||
case RACE_BLOODELF:
|
||||
SetTaximaskNode(82);
|
||||
break;
|
||||
case RACE_DRAENEI:
|
||||
SetTaximaskNode(94);
|
||||
break;
|
||||
}
|
||||
|
||||
// new continent starting masks (It will be accessible only at new map)
|
||||
switch (Player::TeamForRace(race))
|
||||
{
|
||||
case ALLIANCE: SetTaximaskNode(100); break;
|
||||
case HORDE: SetTaximaskNode(99); break;
|
||||
case ALLIANCE:
|
||||
SetTaximaskNode(100); // Honor Hold
|
||||
SetTaximaskNode(245); // Valiance Keep
|
||||
break;
|
||||
case HORDE:
|
||||
SetTaximaskNode(99); // Thrallmar
|
||||
SetTaximaskNode(257); // Warsong Hold
|
||||
break;
|
||||
}
|
||||
// level dependent taxi hubs
|
||||
if (level >= 68)
|
||||
SetTaximaskNode(213); //Shattered Sun Staging Area
|
||||
SetTaximaskNode(213); // Shattered Sun Staging Area
|
||||
|
||||
if (level >= 78)
|
||||
SetTaximaskNode(310); // Dalaran
|
||||
}
|
||||
|
||||
void PlayerTaxi::LoadTaxiMask(std::string const &data)
|
||||
|
||||
@@ -358,11 +358,23 @@ void WorldSession::HandleGossipHelloOpcode(WorldPacket& recvData)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
_player->PlayerTalkClass->ClearMenus();
|
||||
if (!unit->AI()->GossipHello(_player))
|
||||
{
|
||||
// _player->TalkedToCreature(unit->GetEntry(), unit->GetGUID());
|
||||
_player->PrepareGossipMenu(unit, unit->GetCreatureTemplate()->GossipMenuId, true);
|
||||
|
||||
// If npc is a flightmaster who is a quest giver do not send the gossip if there is no quest
|
||||
if (unit->IsTaxi() && (unit->IsQuestGiver() || unit->IsGossip()))
|
||||
{
|
||||
if (_player->PlayerTalkClass->GetQuestMenu().Empty() && _player->PlayerTalkClass->GetGossipMenu().Empty())
|
||||
{
|
||||
SendTaxiMenu(unit);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
_player->SendPreparedGossip(unit);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user