diff options
| author | Dehravor <dehravor@gmail.com> | 2014-01-23 15:29:02 +0100 |
|---|---|---|
| committer | Dehravor <dehravor@gmail.com> | 2014-01-23 15:29:02 +0100 |
| commit | e8e23ef03dccd3f990cad775e000b408b8398547 (patch) | |
| tree | 816a25d2e0d07cf8543559c79c5588cf3fcd3975 /src | |
| parent | 40b9ea3eb2f09743183aff1624764f808048a0a5 (diff) | |
Core/Taxi: Fix exploit related to unexplored nodes
Diffstat (limited to 'src')
| -rw-r--r-- | src/server/game/Handlers/TaxiHandler.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/server/game/Handlers/TaxiHandler.cpp b/src/server/game/Handlers/TaxiHandler.cpp index 4487ae7b15f..34899fc23df 100644 --- a/src/server/game/Handlers/TaxiHandler.cpp +++ b/src/server/game/Handlers/TaxiHandler.cpp @@ -184,6 +184,14 @@ void WorldSession::HandleActivateTaxiExpressOpcode (WorldPacket& recvData) { uint32 node; recvData >> node; + + if (!GetPlayer()->m_taxi.IsTaximaskNodeKnown(node) && !GetPlayer()->isTaxiCheater()) + { + SendActivateTaxiReply(ERR_TAXINOTVISITED); + recvData.rfinish(); + return; + } + nodes.push_back(node); } @@ -290,6 +298,15 @@ void WorldSession::HandleActivateTaxiOpcode(WorldPacket& recvData) return; } + if (!GetPlayer()->isTaxiCheater()) + { + if (!GetPlayer()->m_taxi.IsTaximaskNodeKnown(nodes[0]) || !GetPlayer()->m_taxi.IsTaximaskNodeKnown(nodes[1])) + { + SendActivateTaxiReply(ERR_TAXINOTVISITED); + return; + } + } + GetPlayer()->ActivateTaxiPathTo(nodes, npc); } |
