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:
Ovahlord
2018-11-07 00:21:32 +01:00
parent 34ac2d71f7
commit 223aa43cea
2 changed files with 55 additions and 14 deletions

View File

@@ -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)

View File

@@ -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);
}
}