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