mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-13 14:41:28 +00:00
Merge pull request #190 from addtheice/RunQueryToDatabaseQuery_Adventure
Run query to database query adventure
This commit is contained in:
commit
5f9676d1a5
@ -374,49 +374,35 @@ void Adventure::MoveCorpsesToGraveyard()
|
|||||||
|
|
||||||
std::list<uint32> dbid_list;
|
std::list<uint32> dbid_list;
|
||||||
std::list<uint32> charid_list;
|
std::list<uint32> charid_list;
|
||||||
char errbuf[MYSQL_ERRMSG_SIZE];
|
|
||||||
char* query = 0;
|
|
||||||
MYSQL_RES *result;
|
|
||||||
MYSQL_ROW row;
|
|
||||||
|
|
||||||
if(database.RunQuery(query,MakeAnyLenString(&query,"SELECT id, charid FROM player_corpses WHERE instanceid=%d", GetInstanceID()), errbuf, &result))
|
std::string query = StringFormat("SELECT id, charid FROM player_corpses WHERE instanceid=%d", GetInstanceID());
|
||||||
{
|
auto results = database.QueryDatabase(query);
|
||||||
while((row = mysql_fetch_row(result)))
|
if(!results.Success())
|
||||||
{
|
LogFile->write(EQEMuLog::Error, "Error in AdventureManager:::MoveCorpsesToGraveyard: %s (%s)", query.c_str(), results.ErrorMessage().c_str());
|
||||||
dbid_list.push_back(atoi(row[0]));
|
|
||||||
charid_list.push_back(atoi(row[1]));
|
|
||||||
}
|
|
||||||
mysql_free_result(result);
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
LogFile->write(EQEMuLog::Error, "Error in AdventureManager:::MoveCorpsesToGraveyard: %s (%s)", query, errbuf);
|
|
||||||
safe_delete_array(query);
|
|
||||||
}
|
|
||||||
|
|
||||||
std::list<uint32>::iterator iter = dbid_list.begin();
|
for(auto row = results.begin(); row != results.end(); ++row) {
|
||||||
while(iter != dbid_list.end())
|
dbid_list.push_back(atoi(row[0]));
|
||||||
|
charid_list.push_back(atoi(row[1]));
|
||||||
|
}
|
||||||
|
|
||||||
|
for (auto iter = dbid_list.begin(); iter != dbid_list.end(); ++iter)
|
||||||
{
|
{
|
||||||
float x = GetTemplate()->graveyard_x + MakeRandomFloat(-GetTemplate()->graveyard_radius, GetTemplate()->graveyard_radius);
|
float x = GetTemplate()->graveyard_x + MakeRandomFloat(-GetTemplate()->graveyard_radius, GetTemplate()->graveyard_radius);
|
||||||
float y = GetTemplate()->graveyard_y + MakeRandomFloat(-GetTemplate()->graveyard_radius, GetTemplate()->graveyard_radius);
|
float y = GetTemplate()->graveyard_y + MakeRandomFloat(-GetTemplate()->graveyard_radius, GetTemplate()->graveyard_radius);
|
||||||
float z = GetTemplate()->graveyard_z;
|
float z = GetTemplate()->graveyard_z;
|
||||||
if(database.RunQuery(query,MakeAnyLenString(&query, "UPDATE player_corpses SET zoneid=%d, instanceid=0, x=%f, y=%f, z=%f WHERE instanceid=%d",
|
|
||||||
GetTemplate()->graveyard_zone_id, x, y, z, GetInstanceID()), errbuf))
|
query = StringFormat("UPDATE player_corpses "
|
||||||
{
|
"SET zoneid = %d, instanceid = 0, "
|
||||||
safe_delete_array(query);
|
"x = %f, y = %f, z = %f WHERE instanceid = %d",
|
||||||
}
|
GetTemplate()->graveyard_zone_id,
|
||||||
else
|
x, y, z, GetInstanceID());
|
||||||
{
|
auto results = database.QueryDatabase(query);
|
||||||
LogFile->write(EQEMuLog::Error, "Error in AdventureManager:::MoveCorpsesToGraveyard: %s (%s)", query, errbuf);
|
if(!results.Success())
|
||||||
safe_delete_array(query);
|
LogFile->write(EQEMuLog::Error, "Error in AdventureManager:::MoveCorpsesToGraveyard: %s (%s)", query.c_str(), results.ErrorMessage().c_str());
|
||||||
}
|
|
||||||
++iter;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
iter = dbid_list.begin();
|
auto c_iter = charid_list.begin();
|
||||||
std::list<uint32>::iterator c_iter = charid_list.begin();
|
for (auto iter = dbid_list.begin(); iter != dbid_list.end(); ++iter, ++c_iter)
|
||||||
while(iter != dbid_list.end())
|
|
||||||
{
|
{
|
||||||
ServerPacket* pack = new ServerPacket(ServerOP_DepopAllPlayersCorpses, sizeof(ServerDepopAllPlayersCorpses_Struct));
|
ServerPacket* pack = new ServerPacket(ServerOP_DepopAllPlayersCorpses, sizeof(ServerDepopAllPlayersCorpses_Struct));
|
||||||
ServerDepopAllPlayersCorpses_Struct *dpc = (ServerDepopAllPlayersCorpses_Struct*)pack->pBuffer;
|
ServerDepopAllPlayersCorpses_Struct *dpc = (ServerDepopAllPlayersCorpses_Struct*)pack->pBuffer;
|
||||||
@ -433,8 +419,6 @@ void Adventure::MoveCorpsesToGraveyard()
|
|||||||
|
|
||||||
zoneserver_list.SendPacket(spc->zone_id, 0, pack);
|
zoneserver_list.SendPacket(spc->zone_id, 0, pack);
|
||||||
delete pack;
|
delete pack;
|
||||||
++iter;
|
|
||||||
++c_iter;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user