InsertQuestGlobal converted to QueryDatabase

This commit is contained in:
Arthur Ice 2014-08-18 21:16:11 -07:00
parent c6091c4f27
commit 4e71330508

View File

@ -3970,33 +3970,22 @@ void Mob::DelGlobal(const char *varname) {
// Inserts global variable into quest_globals table // Inserts global variable into quest_globals table
void Mob::InsertQuestGlobal(int charid, int npcid, int zoneid, const char *varname, const char *varvalue, int duration) { void Mob::InsertQuestGlobal(int charid, int npcid, int zoneid, const char *varname, const char *varvalue, int duration) {
char *query = 0;
char errbuf[MYSQL_ERRMSG_SIZE];
// Make duration string either "unix_timestamp(now()) + xxx" or "NULL" // Make duration string either "unix_timestamp(now()) + xxx" or "NULL"
std::stringstream duration_ss; std::stringstream duration_ss;
if (duration == INT_MAX) if (duration == INT_MAX)
{
duration_ss << "NULL"; duration_ss << "NULL";
}
else else
{
duration_ss << "unix_timestamp(now()) + " << duration; duration_ss << "unix_timestamp(now()) + " << duration;
}
//NOTE: this should be escaping the contents of arglist //NOTE: this should be escaping the contents of arglist
//npcwise a malicious script can arbitrarily alter the DB //npcwise a malicious script can arbitrarily alter the DB
uint32 last_id = 0; uint32 last_id = 0;
if (!database.RunQuery(query, MakeAnyLenString(&query, std::string query = StringFormat("REPLACE INTO quest_globals "
"REPLACE INTO quest_globals (charid, npcid, zoneid, name, value, expdate)" "(charid, npcid, zoneid, name, value, expdate)"
"VALUES (%i, %i, %i, '%s', '%s', %s)", "VALUES (%i, %i, %i, '%s', '%s', %s)",
charid, npcid, zoneid, varname, varvalue, duration_ss.str().c_str() charid, npcid, zoneid, varname, varvalue, duration_ss.str().c_str());
), errbuf)) database.QueryDatabase(query);
{
//_log(QUESTS, "SelGlobal error inserting %s : %s", varname, errbuf);
}
safe_delete_array(query);
if(zone) if(zone)
{ {
@ -4022,14 +4011,12 @@ void Mob::InsertQuestGlobal(int charid, int npcid, int zoneid, const char *varna
qgu->npc_id = npcid; qgu->npc_id = npcid;
qgu->char_id = charid; qgu->char_id = charid;
qgu->zone_id = zoneid; qgu->zone_id = zoneid;
if(duration == INT_MAX) if(duration == INT_MAX)
{
qgu->expdate = 0xFFFFFFFF; qgu->expdate = 0xFFFFFFFF;
}
else else
{
qgu->expdate = Timer::GetTimeSeconds() + duration; qgu->expdate = Timer::GetTimeSeconds() + duration;
}
strcpy((char*)qgu->name, varname); strcpy((char*)qgu->name, varname);
strcpy((char*)qgu->value, varvalue); strcpy((char*)qgu->value, varvalue);
qgu->id = last_id; qgu->id = last_id;