aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorDehravor <dehravor@gmail.com>2014-01-23 15:29:02 +0100
committerDehravor <dehravor@gmail.com>2014-01-23 15:29:02 +0100
commite8e23ef03dccd3f990cad775e000b408b8398547 (patch)
tree816a25d2e0d07cf8543559c79c5588cf3fcd3975 /src
parent40b9ea3eb2f09743183aff1624764f808048a0a5 (diff)
Core/Taxi: Fix exploit related to unexplored nodes
Diffstat (limited to 'src')
-rw-r--r--src/server/game/Handlers/TaxiHandler.cpp17
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);
}