[Bug] Item Purchase Offset when multiple buyers are buying at the same time. (#4628)

* [Bug] Item Purchase Offset when multiple buyers are buying at the same time.

- Much of the code lifted from TAKP/P2002 and adapted
- Needs Testing
- This should help prevent situations where multiple people are purchasing items from a merchant and both attempt to purchase the same temp merchant or limited item, it should result in the later person recieving a notice that the item no longer exists and refreshes the merchant table.
- Updated strings

* fix formatting

* Push

* Update client.cpp

* Update database_update_manifest.cpp

* Update database_update_manifest.cpp

* Update database_update_manifest.cpp

* Update client.cpp

---------

Co-authored-by: Kinglykrab <kinglykrab@gmail.com>
Co-authored-by: Akkadius <akkadius1@gmail.com>
This commit is contained in:
Fryguy
2025-02-05 21:56:57 -05:00
committed by GitHub
parent 752ac78c56
commit 7021602bf4
9 changed files with 128 additions and 51 deletions
+14 -1
View File
@@ -13543,9 +13543,22 @@ std::string Client::GetBandolierItemName(uint8 bandolier_slot, uint8 slot_id)
if (
!EQ::ValueWithin(bandolier_slot, 0, 3) ||
!EQ::ValueWithin(slot_id, 0, 3)
) {
) {
return std::string();
}
return GetPP().bandoliers[bandolier_slot].Items[slot_id].Name;
}
void Client::SendMerchantEnd()
{
SetMerchantSessionEntityID(0);
if (ClientVersion() == EQ::versions::ClientVersion::RoF2 && RuleB(Parcel, EnableParcelMerchants)) {
DoParcelCancel();
SetEngagedWithParcelMerchant(false);
}
EQApplicationPacket empty(OP_ShopEndConfirm);
QueuePacket(&empty);
}