mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-15 12:31:31 +00:00
TryReward converted to QueryDatabase
This commit is contained in:
parent
a48138dfd6
commit
7f92e96ae7
@ -5336,88 +5336,54 @@ bool Client::TryReward(uint32 claim_id)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if(free_slot == 0xFFFFFFFF)
|
if(free_slot == 0xFFFFFFFF)
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
std::string query = StringFormat("SELECT amount FROM account_rewards "
|
||||||
char* query = 0;
|
"WHERE account_id=%i AND reward_id=%i",
|
||||||
MYSQL_RES *result;
|
AccountID(), claim_id);
|
||||||
MYSQL_ROW row;
|
auto results = database.QueryDatabase(query);
|
||||||
uint32 amt = 0;
|
if (!results.Success()) {
|
||||||
|
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query.c_str(), results.ErrorMessage().c_str());
|
||||||
if(database.RunQuery(query,MakeAnyLenString(&query,"SELECT amount FROM"
|
|
||||||
" account_rewards WHERE account_id=%i AND reward_id=%i", AccountID(), claim_id),
|
|
||||||
errbuf,&result))
|
|
||||||
{
|
|
||||||
row = mysql_fetch_row(result);
|
|
||||||
if(row)
|
|
||||||
{
|
|
||||||
amt = atoi(row[0]);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
mysql_free_result(result);
|
|
||||||
safe_delete_array(query);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
mysql_free_result(result);
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query, errbuf);
|
|
||||||
safe_delete_array(query);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (results.RowCount() == 0)
|
||||||
|
return false;
|
||||||
|
|
||||||
|
uint32 amt = 0;
|
||||||
|
auto row = results.begin();
|
||||||
|
|
||||||
|
amt = atoi(row[0]);
|
||||||
|
|
||||||
if(amt == 0)
|
if(amt == 0)
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
std::list<InternalVeteranReward>::iterator iter = zone->VeteranRewards.begin();
|
auto iter = zone->VeteranRewards.begin();
|
||||||
while(iter != zone->VeteranRewards.end())
|
for (; iter != zone->VeteranRewards.end(); ++iter)
|
||||||
{
|
|
||||||
if((*iter).claim_id == claim_id)
|
if((*iter).claim_id == claim_id)
|
||||||
{
|
|
||||||
break;
|
break;
|
||||||
}
|
|
||||||
++iter;
|
|
||||||
}
|
|
||||||
|
|
||||||
if(iter == zone->VeteranRewards.end())
|
if(iter == zone->VeteranRewards.end())
|
||||||
{
|
|
||||||
return false;
|
return false;
|
||||||
}
|
|
||||||
|
|
||||||
if(amt == 1)
|
if(amt == 1)
|
||||||
{
|
{
|
||||||
if(!database.RunQuery(query,MakeAnyLenString(&query,"DELETE FROM"
|
query = StringFormat("DELETE FROM account_rewards "
|
||||||
" account_rewards WHERE account_id=%i AND reward_id=%i", AccountID(), claim_id),
|
"WHERE account_id=%i AND reward_id=%i",
|
||||||
errbuf))
|
AccountID(), claim_id);
|
||||||
{
|
results = database.QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query, errbuf);
|
if(!results.ErrorMessage().c_str())
|
||||||
safe_delete_array(query);
|
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query.c_str(), results.ErrorMessage().c_str());
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
if(!database.RunQuery(query,MakeAnyLenString(&query,"UPDATE account_rewards SET amount=(amount-1)"
|
query = StringFormat("UPDATE account_rewards SET amount=(amount-1) "
|
||||||
" WHERE account_id=%i AND reward_id=%i", AccountID(), claim_id),
|
"WHERE account_id=%i AND reward_id=%i", AccountID(), claim_id);
|
||||||
errbuf))
|
results = database.QueryDatabase(query);
|
||||||
{
|
if(!results.Success())
|
||||||
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query, errbuf);
|
LogFile->write(EQEMuLog::Error, "Error in Client::TryReward(): %s (%s)", query.c_str(), results.ErrorMessage().c_str());
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
InternalVeteranReward ivr = (*iter);
|
InternalVeteranReward ivr = (*iter);
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user