[Fix] Fix for mult-instanced bazaar zones (#4541)

* Enable bazaar for multiple instances.

* Enable buyer for multiple instances.

* Update to buyer/barter for multiple instances and attuned items.
This commit is contained in:
Mitch Freeman
2024-11-14 21:44:03 -04:00
committed by GitHub
parent d3da2e5501
commit 9967384ab8
4 changed files with 26 additions and 3 deletions
+15 -3
View File
@@ -1755,7 +1755,11 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
return;
}
zoneserver_list.SendPacket(Zones::BAZAAR, pack);
auto trader = client_list.FindCLEByCharacterID(in->trader_buy_struct.trader_id);
if (trader) {
zoneserver_list.SendPacket(trader->zone(), trader->instance(), pack);
}
break;
}
case ServerOP_BuyerMessaging: {
@@ -1775,12 +1779,20 @@ void ZoneServer::HandleMessage(uint16 opcode, const EQ::Net::Packet &p) {
break;
}
case Barter_SellItem: {
zoneserver_list.SendPacket(Zones::BAZAAR, pack);
auto buyer = client_list.FindCharacter(in->buyer_name);
if (buyer) {
zoneserver_list.SendPacket(buyer->zone(), buyer->instance(), pack);
}
break;
}
case Barter_FailedTransaction:
case Barter_BuyerTransactionComplete: {
zoneserver_list.SendPacket(in->zone_id, pack);
auto seller = client_list.FindCharacter(in->seller_name);
if (seller) {
zoneserver_list.SendPacket(seller->zone(), seller->instance(), pack);
}
break;
}
default: