mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
Merge pull request #209 from addtheice/RunQueryToDatabaseQuery_zone_tribute
Run query to database query zone tribute
This commit is contained in:
commit
b36cc3ab08
@ -378,42 +378,39 @@ void Client::SendGuildTributes() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
bool ZoneDatabase::LoadTributes() {
|
bool ZoneDatabase::LoadTributes() {
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
|
|
||||||
TributeData t;
|
TributeData tributeData;
|
||||||
memset(&t.tiers, 0, sizeof(t.tiers));
|
memset(&tributeData.tiers, 0, sizeof(tributeData.tiers));
|
||||||
t.tier_count = 0;
|
tributeData.tier_count = 0;
|
||||||
|
|
||||||
tribute_list.clear();
|
tribute_list.clear();
|
||||||
|
|
||||||
const char *query = "SELECT id,name,descr,unknown,isguild FROM tributes";
|
const std::string query = "SELECT id, name, descr, unknown, isguild FROM tributes";
|
||||||
if (RunQuery(query, strlen(query), errbuf, &result)) {
|
auto results = QueryDatabase(query);
|
||||||
int r;
|
if (!results.Success()) {
|
||||||
while ((row = mysql_fetch_row(result))) {
|
LogFile->write(EQEMuLog::Error, "Error in LoadTributes first query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
r = 0;
|
|
||||||
uint32 id = atoul(row[r++]);
|
|
||||||
t.name = row[r++];
|
|
||||||
t.description = row[r++];
|
|
||||||
t.unknown = strtoul(row[r++], nullptr, 10);
|
|
||||||
t.is_guild = atol(row[r++])==0?false:true;
|
|
||||||
|
|
||||||
tribute_list[id] = t;
|
|
||||||
}
|
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in LoadTributes first query '%s': %s", query, errbuf);
|
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
|
uint32 id = atoul(row[0]);
|
||||||
|
tributeData.name = row[1];
|
||||||
|
tributeData.description = row[2];
|
||||||
|
tributeData.unknown = strtoul(row[3], nullptr, 10);
|
||||||
|
tributeData.is_guild = atol(row[4]) == 0? false: true;
|
||||||
|
|
||||||
const char *query2 = "SELECT tribute_id,level,cost,item_id FROM tribute_levels ORDER BY tribute_id,level";
|
tribute_list[id] = tributeData;
|
||||||
if (RunQuery(query2, strlen(query2), errbuf, &result)) {
|
}
|
||||||
int r;
|
|
||||||
while ((row = mysql_fetch_row(result))) {
|
const std::string query2 = "SELECT tribute_id, level, cost, item_id FROM tribute_levels ORDER BY tribute_id, level";
|
||||||
r = 0;
|
results = QueryDatabase(query2);
|
||||||
uint32 id = atoul(row[r++]);
|
if (!results.Success()) {
|
||||||
|
LogFile->write(EQEMuLog::Error, "Error in LoadTributes level query '%s': %s", query.c_str(), results.ErrorMessage().c_str());
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
|
uint32 id = atoul(row[0]);
|
||||||
|
|
||||||
if(tribute_list.count(id) != 1) {
|
if(tribute_list.count(id) != 1) {
|
||||||
LogFile->write(EQEMuLog::Error, "Error in LoadTributes: unknown tribute %lu in tribute_levels", (unsigned long)id);
|
LogFile->write(EQEMuLog::Error, "Error in LoadTributes: unknown tribute %lu in tribute_levels", (unsigned long)id);
|
||||||
@ -429,16 +426,11 @@ bool ZoneDatabase::LoadTributes() {
|
|||||||
|
|
||||||
TributeLevel_Struct &s = cur.tiers[cur.tier_count];
|
TributeLevel_Struct &s = cur.tiers[cur.tier_count];
|
||||||
|
|
||||||
s.level = atoul(row[r++]);
|
s.level = atoul(row[1]);
|
||||||
s.cost = atoul(row[r++]);
|
s.cost = atoul(row[2]);
|
||||||
s.tribute_item_id = atoul(row[r++]);
|
s.tribute_item_id = atoul(row[3]);
|
||||||
cur.tier_count++;
|
cur.tier_count++;
|
||||||
}
|
}
|
||||||
mysql_free_result(result);
|
|
||||||
} else {
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in LoadTributes level query '%s': %s", query, errbuf);
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user