mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-14 07:21:48 +00:00
...
This commit is contained in:
parent
f328853251
commit
7fa1256c5d
@ -63,7 +63,16 @@ void Corpse::SendLootReqErrorPacket(Client* client, uint8 response) {
|
|||||||
safe_delete(outapp);
|
safe_delete(outapp);
|
||||||
}
|
}
|
||||||
|
|
||||||
Corpse* Corpse::LoadFromDBData(uint32 in_dbid, uint32 in_charid, char* in_charname, float in_x, float in_y, float in_z, float in_heading, char* time_of_death, bool rezzed, bool was_at_graveyard) {
|
Corpse* Corpse::LoadFromDBData(uint32 in_dbid, uint32 in_charid, std::string in_charname, float in_x, float in_y, float in_z, float in_heading, std::string time_of_death, bool rezzed, bool was_at_graveyard)
|
||||||
|
{
|
||||||
|
|
||||||
|
std::cout << "LoadFromDBData: 0 " << in_dbid << std::endl;
|
||||||
|
std::cout << "LoadFromDBData: 1 " << in_charid << std::endl;
|
||||||
|
std::cout << "LoadFromDBData: 2 " << in_charname << std::endl;
|
||||||
|
std::cout << "LoadFromDBData: 3 " << in_x << std::endl;
|
||||||
|
std::cout << "LoadFromDBData: 4 " << in_y << std::endl;
|
||||||
|
std::cout << "LoadFromDBData: 5 " << in_z << std::endl;
|
||||||
|
|
||||||
PlayerCorpse_Struct pcs;
|
PlayerCorpse_Struct pcs;
|
||||||
database.LoadCharacterCorpseData(in_dbid, &pcs);
|
database.LoadCharacterCorpseData(in_dbid, &pcs);
|
||||||
|
|
||||||
@ -81,7 +90,7 @@ Corpse* Corpse::LoadFromDBData(uint32 in_dbid, uint32 in_charid, char* in_charna
|
|||||||
Corpse* pc = new Corpse(
|
Corpse* pc = new Corpse(
|
||||||
in_dbid, // uint32 in_dbid
|
in_dbid, // uint32 in_dbid
|
||||||
in_charid, // uint32 in_charid
|
in_charid, // uint32 in_charid
|
||||||
in_charname, // char* in_charname
|
in_charname.c_str(), // char* in_charname
|
||||||
&itemlist, // ItemList* in_itemlist
|
&itemlist, // ItemList* in_itemlist
|
||||||
pcs.copper, // uint32 in_copper
|
pcs.copper, // uint32 in_copper
|
||||||
pcs.silver, // uint32 in_silver
|
pcs.silver, // uint32 in_silver
|
||||||
@ -412,7 +421,7 @@ std::list<uint32> Corpse::MoveItemToCorpse(Client *client, ItemInst *item, int16
|
|||||||
|
|
||||||
// To be called from LoadFromDBData
|
// To be called from LoadFromDBData
|
||||||
// Mongrel: added see_invis and see_invis_undead
|
// Mongrel: added see_invis and see_invis_undead
|
||||||
Corpse::Corpse(uint32 in_dbid, uint32 in_charid, char* in_charname, ItemList* in_itemlist, uint32 in_copper, uint32 in_silver, uint32 in_gold, uint32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, uint8 in_gender, uint16 in_race, uint8 in_class, uint8 in_deity, uint8 in_level, uint8 in_texture, uint8 in_helmtexture,uint32 in_rezexp, bool wasAtGraveyard)
|
Corpse::Corpse(uint32 in_dbid, uint32 in_charid, const char* in_charname, ItemList* in_itemlist, uint32 in_copper, uint32 in_silver, uint32 in_gold, uint32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, uint8 in_gender, uint16 in_race, uint8 in_class, uint8 in_deity, uint8 in_level, uint8 in_texture, uint8 in_helmtexture,uint32 in_rezexp, bool wasAtGraveyard)
|
||||||
: Mob("Unnamed_Corpse","",0,0,in_gender, in_race, in_class, BT_Humanoid, in_deity, in_level,0, in_size, 0, in_heading, in_x, in_y, in_z,0,in_texture,in_helmtexture,
|
: Mob("Unnamed_Corpse","",0,0,in_gender, in_race, in_class, BT_Humanoid, in_deity, in_level,0, in_size, 0, in_heading, in_x, in_y, in_z,0,in_texture,in_helmtexture,
|
||||||
0,0,0,0,0,0,0,0,0,
|
0,0,0,0,0,0,0,0,0,
|
||||||
0,0,0,0,0,0,0,0,0,0,0,0xff,
|
0,0,0,0,0,0,0,0,0,0,0,0xff,
|
||||||
|
|||||||
@ -35,9 +35,9 @@ public:
|
|||||||
|
|
||||||
Corpse(NPC* in_npc, ItemList* in_itemlist, uint32 in_npctypeid, const NPCType** in_npctypedata, uint32 in_decaytime = 600000);
|
Corpse(NPC* in_npc, ItemList* in_itemlist, uint32 in_npctypeid, const NPCType** in_npctypedata, uint32 in_decaytime = 600000);
|
||||||
Corpse(Client* client, int32 in_rezexp);
|
Corpse(Client* client, int32 in_rezexp);
|
||||||
Corpse(uint32 in_corpseid, uint32 in_charid, char* in_charname, ItemList* in_itemlist, uint32 in_copper, uint32 in_silver, uint32 in_gold, uint32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, uint8 in_gender, uint16 in_race, uint8 in_class, uint8 in_deity, uint8 in_level, uint8 in_texture, uint8 in_helmtexture,uint32 in_rezexp, bool wasAtGraveyard = false);
|
Corpse(uint32 in_corpseid, uint32 in_charid, const char* in_charname, ItemList* in_itemlist, uint32 in_copper, uint32 in_silver, uint32 in_gold, uint32 in_plat, float in_x, float in_y, float in_z, float in_heading, float in_size, uint8 in_gender, uint16 in_race, uint8 in_class, uint8 in_deity, uint8 in_level, uint8 in_texture, uint8 in_helmtexture, uint32 in_rezexp, bool wasAtGraveyard = false);
|
||||||
~Corpse();
|
~Corpse();
|
||||||
static Corpse* LoadFromDBData(uint32 in_dbid, uint32 in_charid, char* in_charname, float in_x, float in_y, float in_z, float in_heading, char* time_of_death, bool rezzed, bool was_at_graveyard);
|
static Corpse* LoadFromDBData(uint32 in_dbid, uint32 in_charid, std::string in_charname, float in_x, float in_y, float in_z, float in_heading, std::string time_of_death, bool rezzed, bool was_at_graveyard);
|
||||||
|
|
||||||
//abstract virtual function implementations requird by base abstract class
|
//abstract virtual function implementations requird by base abstract class
|
||||||
virtual bool Death(Mob* killerMob, int32 damage, uint16 spell_id, SkillUseTypes attack_skill) { return true; }
|
virtual bool Death(Mob* killerMob, int32 damage, uint16 spell_id, SkillUseTypes attack_skill) { return true; }
|
||||||
|
|||||||
@ -3750,20 +3750,6 @@ uint32 ZoneDatabase::GetCharacterCorpseItemAt(uint32 corpse_id, uint16 slotid) {
|
|||||||
bool ZoneDatabase::LoadCharacterCorpseData(uint32 corpse_id, PlayerCorpse_Struct* pcs){
|
bool ZoneDatabase::LoadCharacterCorpseData(uint32 corpse_id, PlayerCorpse_Struct* pcs){
|
||||||
std::string query = StringFormat(
|
std::string query = StringFormat(
|
||||||
"SELECT \n"
|
"SELECT \n"
|
||||||
"id, \n"
|
|
||||||
"charid, \n"
|
|
||||||
"charname, \n"
|
|
||||||
"zone_id, \n"
|
|
||||||
"instance_id, \n"
|
|
||||||
"x, \n"
|
|
||||||
"y, \n"
|
|
||||||
"z, \n"
|
|
||||||
"heading, \n"
|
|
||||||
"`data`, \n"
|
|
||||||
"time_of_death, \n"
|
|
||||||
"is_rezzed, \n"
|
|
||||||
"is_buried, \n"
|
|
||||||
"was_at_graveyard, \n"
|
|
||||||
"is_locked, \n"
|
"is_locked, \n"
|
||||||
"exp, \n"
|
"exp, \n"
|
||||||
"size, \n"
|
"size, \n"
|
||||||
@ -3862,9 +3848,10 @@ bool ZoneDatabase::LoadCharacterCorpseData(uint32 corpse_id, PlayerCorpse_Struct
|
|||||||
pcs->itemcount = results.RowCount();
|
pcs->itemcount = results.RowCount();
|
||||||
uint16 r = 0;
|
uint16 r = 0;
|
||||||
// Allocate memory for items.
|
// Allocate memory for items.
|
||||||
pcs->items = reinterpret_cast<player_lootitem::ServerLootItem_Struct*>(new char[pcs->itemcount * sizeof(player_lootitem::ServerLootItem_Struct)]);
|
// pcs->items = reinterpret_cast<player_lootitem::ServerLootItem_Struct*>(new char[pcs->itemcount * sizeof(player_lootitem::ServerLootItem_Struct)]);
|
||||||
|
|
||||||
for (auto row = results.begin(); row != results.end(); ++row) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
|
memset(&pcs->items[i], 0, sizeof (player_lootitem::ServerLootItem_Struct));
|
||||||
pcs->items[i].equip_slot = atoi(row[r]); r++; // equip_slot,
|
pcs->items[i].equip_slot = atoi(row[r]); r++; // equip_slot,
|
||||||
pcs->items[i].item_id = atoi(row[r]); r++; // item_id,
|
pcs->items[i].item_id = atoi(row[r]); r++; // item_id,
|
||||||
pcs->items[i].charges = atoi(row[r]); r++; // charges,
|
pcs->items[i].charges = atoi(row[r]); r++; // charges,
|
||||||
@ -4001,11 +3988,22 @@ bool ZoneDatabase::LoadCharacterCorpses(uint32 zone_id, uint16 instance_id) {
|
|||||||
|
|
||||||
auto results = QueryDatabase(query);
|
auto results = QueryDatabase(query);
|
||||||
for (auto row = results.begin(); row != results.end(); ++row) {
|
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||||
|
std::cout << row[0] << std::endl;
|
||||||
|
std::cout << row[1] << std::endl;
|
||||||
|
std::cout << row[2] << std::endl;
|
||||||
|
std::cout << row[3] << std::endl;
|
||||||
|
std::cout << row[4] << std::endl;
|
||||||
|
std::cout << row[5] << std::endl;
|
||||||
|
std::cout << row[6] << std::endl;
|
||||||
|
std::cout << row[7] << std::endl;
|
||||||
|
std::cout << row[8] << std::endl;
|
||||||
|
std::cout << row[9] << std::endl;
|
||||||
|
|
||||||
entity_list.AddCorpse(
|
entity_list.AddCorpse(
|
||||||
Corpse::LoadFromDBData(
|
Corpse::LoadFromDBData(
|
||||||
atoi(row[0]), // id uint32 in_dbid
|
atoi(row[0]), // id uint32 in_dbid
|
||||||
atoi(row[1]), // charid uint32 in_charid
|
atoi(row[1]), // charid uint32 in_charid
|
||||||
row[2], // PlayerCorpse_tSruct* pcs
|
row[2], // char_name
|
||||||
atof(row[3]), // x float in_x
|
atof(row[3]), // x float in_x
|
||||||
atof(row[4]), // y float in_y
|
atof(row[4]), // y float in_y
|
||||||
atof(row[5]), // z float in_z
|
atof(row[5]), // z float in_z
|
||||||
|
|||||||
@ -172,7 +172,7 @@ struct PlayerCorpse_Struct {
|
|||||||
uint32 drakkin_heritage;
|
uint32 drakkin_heritage;
|
||||||
uint32 drakkin_tattoo;
|
uint32 drakkin_tattoo;
|
||||||
uint32 drakkin_details;
|
uint32 drakkin_details;
|
||||||
player_lootitem::ServerLootItem_Struct* items[0];
|
player_lootitem::ServerLootItem_Struct items[0];
|
||||||
//std::list<player_lootitem::ServerLootItem_Struct*> items;
|
//std::list<player_lootitem::ServerLootItem_Struct*> items;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user