mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-11 17:12:25 +00:00
LoadSingleTraderItem converted to QueryDatabase
This commit is contained in:
parent
0f47b73a64
commit
bc884f5daf
@ -601,35 +601,38 @@ TraderCharges_Struct* ZoneDatabase::LoadTraderItemWithCharges(uint32 char_id){
|
|||||||
|
|
||||||
ItemInst* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int SerialNumber) {
|
ItemInst* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int SerialNumber) {
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
std::string query = StringFormat("SELECT * FROM trader WHERE char_id = %i AND serialnumber = %i "
|
||||||
char* query = 0;
|
"ORDER BY slot_id LIMIT 80", CharID, SerialNumber);
|
||||||
MYSQL_RES *result;
|
auto results = QueryDatabase(query);
|
||||||
MYSQL_ROW row;
|
if (!results.Success())
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
if (RunQuery(query,MakeAnyLenString(&query, "select * from trader where char_id=%i and serialnumber=%i order by slot_id limit 80",
|
if (results.RowCount() == 0) {
|
||||||
CharID, SerialNumber),errbuf,&result)){
|
|
||||||
safe_delete_array(query);
|
|
||||||
|
|
||||||
if (mysql_num_rows(result) != 1) {
|
|
||||||
_log(TRADING__CLIENT, "Bad result from query\n"); fflush(stdout);
|
_log(TRADING__CLIENT, "Bad result from query\n"); fflush(stdout);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
row = mysql_fetch_row(result);
|
|
||||||
|
auto row = results.begin();
|
||||||
|
|
||||||
int ItemID = atoi(row[1]);
|
int ItemID = atoi(row[1]);
|
||||||
int Charges = atoi(row[3]);
|
int Charges = atoi(row[3]);
|
||||||
int Cost = atoi(row[4]);
|
int Cost = atoi(row[4]);
|
||||||
|
|
||||||
const Item_Struct *item=database.GetItem(ItemID);
|
const Item_Struct *item = database.GetItem(ItemID);
|
||||||
|
|
||||||
if(!item) {
|
if(!item) {
|
||||||
_log(TRADING__CLIENT, "Unable to create item\n"); fflush(stdout);
|
_log(TRADING__CLIENT, "Unable to create item\n");
|
||||||
|
fflush(stdout);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (item && (item->NoDrop!=0)) {
|
if (item->NoDrop == 0)
|
||||||
|
return nullptr;
|
||||||
|
|
||||||
ItemInst* inst = database.CreateItem(item);
|
ItemInst* inst = database.CreateItem(item);
|
||||||
if(!inst) {
|
if(!inst) {
|
||||||
_log(TRADING__CLIENT, "Unable to create item instance\n"); fflush(stdout);
|
_log(TRADING__CLIENT, "Unable to create item instance\n");
|
||||||
|
fflush(stdout);
|
||||||
return nullptr;
|
return nullptr;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -637,16 +640,11 @@ ItemInst* ZoneDatabase::LoadSingleTraderItem(uint32 CharID, int SerialNumber) {
|
|||||||
inst->SetSerialNumber(SerialNumber);
|
inst->SetSerialNumber(SerialNumber);
|
||||||
inst->SetMerchantSlot(SerialNumber);
|
inst->SetMerchantSlot(SerialNumber);
|
||||||
inst->SetPrice(Cost);
|
inst->SetPrice(Cost);
|
||||||
|
|
||||||
if(inst->IsStackable())
|
if(inst->IsStackable())
|
||||||
inst->SetMerchantCount(Charges);
|
inst->SetMerchantCount(Charges);
|
||||||
|
|
||||||
return inst;
|
return inst;
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
return nullptr;
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void ZoneDatabase::SaveTraderItem(uint32 CharID, uint32 ItemID, uint32 SerialNumber, int32 Charges, uint32 ItemCost, uint8 Slot){
|
void ZoneDatabase::SaveTraderItem(uint32 CharID, uint32 ItemID, uint32 SerialNumber, int32 Charges, uint32 ItemCost, uint8 Slot){
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user