mirror of
https://github.com/EQEmu/Server.git
synced 2026-04-09 19:22:27 +00:00
LoadBlockedSpells converted to QueryDatabase
This commit is contained in:
parent
5839921e08
commit
699c8cc1eb
@ -1805,42 +1805,36 @@ bool ZoneDatabase::LoadBlockedSpells(int32 blockedSpellsCount, ZoneSpellsBlocked
|
|||||||
{
|
{
|
||||||
LogFile->write(EQEMuLog::Status, "Loading Blocked Spells from database...");
|
LogFile->write(EQEMuLog::Status, "Loading Blocked Spells from database...");
|
||||||
|
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
std::string query = StringFormat("SELECT id, spellid, type, x, y, z, x_diff, y_diff, z_diff, message "
|
||||||
char *query = 0;
|
"FROM blocked_spells WHERE zoneid = %d ORDER BY id ASC", zoneid);
|
||||||
MYSQL_RES *result;
|
auto results = QueryDatabase(query);
|
||||||
MYSQL_ROW row;
|
if (!results.Success()) {
|
||||||
|
std::cerr << "Error in LoadBlockedSpells query '" << query << "' " << results.ErrorMessage() << std::endl;
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
MakeAnyLenString(&query, "SELECT id, spellid, type, x, y, z, x_diff, y_diff, z_diff, message "
|
if (results.RowCount() == 0)
|
||||||
"FROM blocked_spells WHERE zoneid=%d ORDER BY id asc", zoneid);
|
return true;
|
||||||
if (RunQuery(query, strlen(query), errbuf, &result)) {
|
|
||||||
safe_delete_array(query);
|
int32 index = 0;
|
||||||
int32 r;
|
for(auto row = results.begin(); row != results.end(); ++row, ++index) {
|
||||||
for(r = 0; (row = mysql_fetch_row(result)); r++) {
|
if(index >= blockedSpellsCount) {
|
||||||
if(r >= blockedSpellsCount) {
|
|
||||||
std::cerr << "Error, Blocked Spells Count of " << blockedSpellsCount << " exceeded." << std::endl;
|
std::cerr << "Error, Blocked Spells Count of " << blockedSpellsCount << " exceeded." << std::endl;
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
memset(&into[r], 0, sizeof(ZoneSpellsBlocked));
|
|
||||||
if(row){
|
memset(&into[index], 0, sizeof(ZoneSpellsBlocked));
|
||||||
into[r].spellid = atoi(row[1]);
|
into[index].spellid = atoi(row[1]);
|
||||||
into[r].type = atoi(row[2]);
|
into[index].type = atoi(row[2]);
|
||||||
into[r].x = atof(row[3]);
|
into[index].x = atof(row[3]);
|
||||||
into[r].y = atof(row[4]);
|
into[index].y = atof(row[4]);
|
||||||
into[r].z = atof(row[5]);
|
into[index].z = atof(row[5]);
|
||||||
into[r].xdiff = atof(row[6]);
|
into[index].xdiff = atof(row[6]);
|
||||||
into[r].ydiff = atof(row[7]);
|
into[index].ydiff = atof(row[7]);
|
||||||
into[r].zdiff = atof(row[8]);
|
into[index].zdiff = atof(row[8]);
|
||||||
strn0cpy(into[r].message, row[9], 255);
|
strn0cpy(into[index].message, row[9], 255);
|
||||||
}
|
|
||||||
}
|
|
||||||
mysql_free_result(result);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
std::cerr << "Error in LoadBlockedSpells query '" << query << "' " << errbuf << std::endl;
|
|
||||||
safe_delete_array(query);
|
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user