mirror of
https://github.com/EQEmu/Server.git
synced 2026-06-11 07:38:36 +00:00
[Bug Fix] Fix for charges not being sold correctly (#1357)
* fix for charges not being sold correctly https://github.com/EQEmu/Server/issues/1350 this fixes this issue * Update client_packet.cpp * Update zone.cpp this completes the fix for all charge items being sold to merchants * code opmizations could probably be fixed up better but this is a little cleaner * Update snake_casing Co-authored-by: Chris Miles <akkadius1@gmail.com>
This commit is contained in:
@@ -12990,9 +12990,9 @@ void Client::Handle_OP_ShopPlayerBuy(const EQApplicationPacket *app)
|
||||
|
||||
int16 freeslotid = INVALID_INDEX;
|
||||
int16 charges = 0;
|
||||
if (item->Stackable || item->MaxCharges > 1)
|
||||
if (item->Stackable || tmpmer_used)
|
||||
charges = mp->quantity;
|
||||
else
|
||||
else if ( item->MaxCharges > 1)
|
||||
charges = item->MaxCharges;
|
||||
|
||||
EQ::ItemInstance* inst = database.CreateItem(item, charges);
|
||||
@@ -13238,12 +13238,9 @@ void Client::Handle_OP_ShopPlayerSell(const EQApplicationPacket *app)
|
||||
LogMerchant(this, vendor, mp->quantity, price, item, false);
|
||||
|
||||
int charges = mp->quantity;
|
||||
//Hack workaround so usable items with 0 charges aren't simply deleted
|
||||
if (charges == 0 && item->ItemType != 11 && item->ItemType != 17 && item->ItemType != 19 && item->ItemType != 21)
|
||||
charges = 1;
|
||||
|
||||
int freeslot = 0;
|
||||
if (charges > 0 && (freeslot = zone->SaveTempItem(vendor->CastToNPC()->MerchantType, vendor->GetNPCTypeID(), itemid, charges, true)) > 0) {
|
||||
if ((freeslot = zone->SaveTempItem(vendor->CastToNPC()->MerchantType, vendor->GetNPCTypeID(), itemid, charges, true)) > 0) {
|
||||
EQ::ItemInstance* inst2 = inst->Clone();
|
||||
|
||||
while (true) {
|
||||
|
||||
Reference in New Issue
Block a user