mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-17 18:41:29 +00:00
Fix for ZoneDatabase::SaveCharacterCorpse where a corpse was empty and two individual corpses would be created
This commit is contained in:
parent
a12011ca1e
commit
0f196cc995
@ -3413,7 +3413,8 @@ void ZoneDatabase::MarkCorpseAsRezzed(uint32 db_id) {
|
|||||||
|
|
||||||
uint32 ZoneDatabase::SaveCharacterCorpse(uint32 charid, const char* charname, uint32 zoneid, uint16 instanceid, PlayerCorpse_Struct* dbpc, const glm::vec4& position) {
|
uint32 ZoneDatabase::SaveCharacterCorpse(uint32 charid, const char* charname, uint32 zoneid, uint16 instanceid, PlayerCorpse_Struct* dbpc, const glm::vec4& position) {
|
||||||
/* Dump Basic Corpse Data */
|
/* Dump Basic Corpse Data */
|
||||||
std::string query = StringFormat("INSERT INTO `character_corpses` "
|
std::string query = StringFormat(
|
||||||
|
"INSERT INTO `character_corpses` "
|
||||||
"SET `charname` = '%s', `zone_id` = %u, `instance_id` = %u, `charid` = %d,"
|
"SET `charname` = '%s', `zone_id` = %u, `instance_id` = %u, `charid` = %d,"
|
||||||
"`x` = %1.1f, `y` = %1.1f, `z` = %1.1f, `heading` = %1.1f,"
|
"`x` = %1.1f, `y` = %1.1f, `z` = %1.1f, `heading` = %1.1f,"
|
||||||
"`time_of_death` = NOW(), `is_buried` = 0, `is_locked` = %d,"
|
"`time_of_death` = NOW(), `is_buried` = 0, `is_locked` = %d,"
|
||||||
@ -3440,11 +3441,12 @@ uint32 ZoneDatabase::SaveCharacterCorpse(uint32 charid, const char* charname, ui
|
|||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
uint32 last_insert_id = results.LastInsertedID();
|
uint32 last_insert_id = results.LastInsertedID();
|
||||||
|
|
||||||
|
std::string corpse_items_query;
|
||||||
/* Dump Items from Inventory */
|
/* Dump Items from Inventory */
|
||||||
uint8 first_entry = 0;
|
uint8 first_entry = 0;
|
||||||
for (unsigned int i = 0; i < dbpc->itemcount; i++) {
|
for (unsigned int i = 0; i < dbpc->itemcount; i++) {
|
||||||
if (first_entry != 1){
|
if (first_entry != 1){
|
||||||
query = StringFormat("REPLACE INTO `character_corpse_items` \n"
|
corpse_items_query = StringFormat("REPLACE INTO `character_corpse_items` \n"
|
||||||
" (corpse_id, equip_slot, item_id, charges, aug_1, aug_2, aug_3, aug_4, aug_5, aug_6, attuned) \n"
|
" (corpse_id, equip_slot, item_id, charges, aug_1, aug_2, aug_3, aug_4, aug_5, aug_6, attuned) \n"
|
||||||
" VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u) \n",
|
" VALUES (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u) \n",
|
||||||
last_insert_id,
|
last_insert_id,
|
||||||
@ -3462,7 +3464,7 @@ uint32 ZoneDatabase::SaveCharacterCorpse(uint32 charid, const char* charname, ui
|
|||||||
first_entry = 1;
|
first_entry = 1;
|
||||||
}
|
}
|
||||||
else{
|
else{
|
||||||
query = query + StringFormat(", (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u) \n",
|
corpse_items_query = corpse_items_query + StringFormat(", (%u, %u, %u, %u, %u, %u, %u, %u, %u, %u, %u) \n",
|
||||||
last_insert_id,
|
last_insert_id,
|
||||||
dbpc->items[i].equip_slot,
|
dbpc->items[i].equip_slot,
|
||||||
dbpc->items[i].item_id,
|
dbpc->items[i].item_id,
|
||||||
@ -3477,7 +3479,7 @@ uint32 ZoneDatabase::SaveCharacterCorpse(uint32 charid, const char* charname, ui
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
auto sc_results = QueryDatabase(query);
|
QueryDatabase(corpse_items_query);
|
||||||
return last_insert_id;
|
return last_insert_id;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user