Fix vendor: correct CMSG_BUY_ITEM field order (slot before itemId), handle buy failures, show token costs; remove level-up test button (animation triggers on real level-up)

This commit is contained in:
Kelsi 2026-02-17 17:44:48 -08:00
parent b441452dcb
commit 60ebb4dc3f
3 changed files with 35 additions and 19 deletions

View file

@ -1219,7 +1219,24 @@ void GameHandler::handlePacket(network::Packet& packet) {
}
break;
}
case Opcode::SMSG_BUY_FAILED:
case Opcode::SMSG_BUY_FAILED: {
// vendorGuid(8) + itemId(4) + errorCode(1)
if (packet.getSize() - packet.getReadPos() >= 13) {
/*uint64_t vendorGuid =*/ packet.readUInt64();
/*uint32_t itemId =*/ packet.readUInt32();
uint8_t errCode = packet.readUInt8();
const char* msg = "Purchase failed.";
switch (errCode) {
case 2: msg = "You don't have enough money."; break;
case 4: msg = "Seller is too far away."; break;
case 5: msg = "That item is sold out."; break;
case 6: msg = "You can't carry any more items."; break;
default: break;
}
addSystemChatMessage(msg);
}
break;
}
case Opcode::MSG_RAID_TARGET_UPDATE:
break;
case Opcode::SMSG_GAMEOBJECT_QUERY_RESPONSE: