From af500b14f6cdc1d138bdc6ffe7e0c09e364c74fd Mon Sep 17 00:00:00 2001 From: Mitch Freeman <65987027+neckkola@users.noreply.github.com> Date: Fri, 6 Jun 2025 20:55:00 -0300 Subject: [PATCH] Update trader db calls for character_id --- zone/client_packet.cpp | 2 +- zone/trading.cpp | 8 +++++++- zone/zonedb.cpp | 32 ++++++++++++++++---------------- zone/zonedb.h | 2 +- 4 files changed, 25 insertions(+), 19 deletions(-) diff --git a/zone/client_packet.cpp b/zone/client_packet.cpp index b51b0ee38..34e1ea6d1 100644 --- a/zone/client_packet.cpp +++ b/zone/client_packet.cpp @@ -835,7 +835,7 @@ void Client::CompleteConnect() if (is_first_login) { e.first_login = time(nullptr); - TraderRepository::DeleteWhere(database, fmt::format("`char_id` = '{}'", CharacterID())); + TraderRepository::DeleteWhere(database, fmt::format("`character_id` = '{}'", CharacterID())); BuyerRepository::DeleteBuyer(database, CharacterID()); LogTradingDetail( "Removed trader abd buyer entries for Character ID {} on first logon to ensure table consistency.", diff --git a/zone/trading.cpp b/zone/trading.cpp index c88c0710b..18705fe46 100644 --- a/zone/trading.cpp +++ b/zone/trading.cpp @@ -1783,7 +1783,13 @@ static void UpdateTraderCustomerPriceChanged( LogTrading("Sending price updates to customer [{}]", customer->GetName()); - auto it = std::find_if(trader_items.begin(), trader_items.end(), [&](TraderRepository::Trader x){ return x.item_id == item->ID;}); + auto it = std::find_if( + trader_items.begin(), + trader_items.end(), + [&](TraderRepository::Trader x) { + return x.item_id == item->ID; + } + ); std::unique_ptr inst( database.CreateItem( it->item_id, diff --git a/zone/zonedb.cpp b/zone/zonedb.cpp index 20b62386c..8d8e5ee17 100644 --- a/zone/zonedb.cpp +++ b/zone/zonedb.cpp @@ -309,19 +309,19 @@ void ZoneDatabase::DeleteWorldContainer(uint32 parent_id, uint32 zone_id) ); } -std::unique_ptr ZoneDatabase::LoadSingleTraderItem(uint32 char_id, const std::string &serial_number) +std::unique_ptr ZoneDatabase::LoadSingleTraderItem(uint32 character_id, const std::string &unique_item_id) { auto results = TraderRepository::GetWhere( database, fmt::format( - "`char_id` = '{}' AND `item_sn` = '{}' ORDER BY slot_id", - char_id, - serial_number + "`character_id` = '{}' AND `item_unique_id` = '{}' ORDER BY slot_id", + character_id, + unique_item_id ) ); if (results.empty()) { - LogTrading("Could not find item serial number {} for character id {}", serial_number, char_id); + LogTrading("Could not find item serial number {} for character id {}", unique_item_id, character_id); return nullptr; } @@ -357,7 +357,7 @@ std::unique_ptr ZoneDatabase::LoadSingleTraderItem(uint32 char } inst->SetCharges(charges); - inst->SetUniqueID(serial_number); + inst->SetUniqueID(unique_item_id); //FIX inst->SetMerchantSlot(serial_number); inst->SetPrice(cost); @@ -368,9 +368,9 @@ std::unique_ptr ZoneDatabase::LoadSingleTraderItem(uint32 char return std::move(inst); } -void ZoneDatabase::UpdateTraderItemPrice(int char_id, uint32 item_id, uint32 charges, uint32 new_price) { +void ZoneDatabase::UpdateTraderItemPrice(int character_id, uint32 item_id, uint32 charges, uint32 new_price) { - LogTrading("ZoneDatabase::UpdateTraderPrice([{}], [{}], [{}], [{}])", char_id, item_id, charges, new_price); + LogTrading("ZoneDatabase::UpdateTraderPrice([{}], [{}], [{}], [{}])", character_id, item_id, charges, new_price); const EQ::ItemData *item = database.GetItem(item_id); if(!item) { @@ -378,20 +378,20 @@ void ZoneDatabase::UpdateTraderItemPrice(int char_id, uint32 item_id, uint32 cha } if (new_price == 0) { - LogTrading("Removing Trader items from the DB for char_id [{}], item_id [{}]", char_id, item_id); + LogTrading("Removing Trader items from the DB for char_id [{}], item_id [{}]", character_id, item_id); auto results = TraderRepository::DeleteWhere( database, fmt::format( - "`char_id` = '{}' AND `item_id` = {}", - char_id, + "`character_id` = '{}' AND `item_id` = {}", + character_id, item_id ) ); if (!results) { LogDebug("[CLIENT] Failed to remove trader item(s): [{}] for char_id: [{}]", item_id, - char_id + character_id ); } @@ -399,23 +399,23 @@ void ZoneDatabase::UpdateTraderItemPrice(int char_id, uint32 item_id, uint32 cha } if (!item->Stackable) { - auto results = TraderRepository::UpdateItem(database, char_id, new_price, item_id, charges); + auto results = TraderRepository::UpdateItem(database, character_id, new_price, item_id, charges); if (!results) { LogTrading( "Failed to update price for trader item [{}] for char_id: [{}]", item_id, - char_id + character_id ); } return; } - auto results = TraderRepository::UpdateItem(database, char_id, new_price, item_id, 0); + auto results = TraderRepository::UpdateItem(database, character_id, new_price, item_id, 0); if (!results) { LogTrading( "Failed to update price for trader item [{}] for char_id: [{}]", item_id, - char_id + character_id ); } } diff --git a/zone/zonedb.h b/zone/zonedb.h index 6e54108e8..03072efdd 100644 --- a/zone/zonedb.h +++ b/zone/zonedb.h @@ -390,7 +390,7 @@ public: /* Traders */ void SaveTraderItem(uint32 char_id,uint32 itemid,uint32 uniqueid, int32 charges,uint32 itemcost,uint8 slot); void UpdateTraderItemCharges(int char_id, uint32 ItemInstID, int32 charges); - void UpdateTraderItemPrice(int char_id, uint32 item_id, uint32 charges, uint32 new_price); + void UpdateTraderItemPrice(int character_id, uint32 item_id, uint32 charges, uint32 new_price); void DeleteTraderItem(uint32 char_id); void DeleteTraderItem(uint32 char_id,uint16 slot_id);