Fix so an untargettable mob is not opened for trade when client pressed the 'u'

key.  Discovered this on untargettable mobs at doors.
This commit is contained in:
Noudess 2020-08-18 11:15:33 -04:00
parent 09e0b09649
commit 9ab61d4ed4

View File

@ -14246,12 +14246,19 @@ void Client::Handle_OP_TradeRequest(const EQApplicationPacket *app)
// Client requesting a trade session from an npc/client
// Trade session not started until OP_TradeRequestAck is sent
CommonBreakInvisible();
// Pass trade request on to recipient
TradeRequest_Struct* msg = (TradeRequest_Struct*)app->pBuffer;
Mob* tradee = entity_list.GetMob(msg->to_mob_id);
// If the tradee is an untargettable mob - ignore
// Helps in cases where servers use invisible_man, body type 11 for quests
// and the client opens a trade by mistake.
if (tradee && (tradee->GetBodyType() == 11)) {
return;
}
CommonBreakInvisible();
// Pass trade request on to recipient
if (tradee && tradee->IsClient()) {
tradee->CastToClient()->QueuePacket(app);
}