mirror of
https://github.com/EQEmu/Server.git
synced 2025-12-12 01:11:29 +00:00
...
This commit is contained in:
parent
f328853251
commit
7fa1256c5d
@ -63,10 +63,19 @@ void Corpse::SendLootReqErrorPacket(Client* client, uint8 response) {
|
||||
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;
|
||||
database.LoadCharacterCorpseData(in_dbid, &pcs);
|
||||
|
||||
|
||||
/* Load Items */
|
||||
ItemList itemlist;
|
||||
ServerLootItem_Struct* tmp = 0;
|
||||
@ -81,7 +90,7 @@ Corpse* Corpse::LoadFromDBData(uint32 in_dbid, uint32 in_charid, char* in_charna
|
||||
Corpse* pc = new Corpse(
|
||||
in_dbid, // uint32 in_dbid
|
||||
in_charid, // uint32 in_charid
|
||||
in_charname, // char* in_charname
|
||||
in_charname.c_str(), // char* in_charname
|
||||
&itemlist, // ItemList* in_itemlist
|
||||
pcs.copper, // uint32 in_copper
|
||||
pcs.silver, // uint32 in_silver
|
||||
@ -412,7 +421,7 @@ std::list<uint32> Corpse::MoveItemToCorpse(Client *client, ItemInst *item, int16
|
||||
|
||||
// To be called from LoadFromDBData
|
||||
// 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,
|
||||
0,0,0,0,0,0,0,0,0,
|
||||
0,0,0,0,0,0,0,0,0,0,0,0xff,
|
||||
|
||||
@ -32,12 +32,12 @@ public:
|
||||
static void SendEndLootErrorPacket(Client* client);
|
||||
static void SendLootReqErrorPacket(Client* client, uint8 response = 2);
|
||||
|
||||
|
||||
|
||||
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(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();
|
||||
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
|
||||
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){
|
||||
std::string query = StringFormat(
|
||||
"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"
|
||||
"exp, \n"
|
||||
"size, \n"
|
||||
@ -3862,9 +3848,10 @@ bool ZoneDatabase::LoadCharacterCorpseData(uint32 corpse_id, PlayerCorpse_Struct
|
||||
pcs->itemcount = results.RowCount();
|
||||
uint16 r = 0;
|
||||
// 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) {
|
||||
memset(&pcs->items[i], 0, sizeof (player_lootitem::ServerLootItem_Struct));
|
||||
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].charges = atoi(row[r]); r++; // charges,
|
||||
@ -4001,18 +3988,29 @@ bool ZoneDatabase::LoadCharacterCorpses(uint32 zone_id, uint16 instance_id) {
|
||||
|
||||
auto results = QueryDatabase(query);
|
||||
for (auto row = results.begin(); row != results.end(); ++row) {
|
||||
entity_list.AddCorpse(
|
||||
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(
|
||||
Corpse::LoadFromDBData(
|
||||
atoi(row[0]), // id uint32 in_dbid
|
||||
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[4]), // y float in_y
|
||||
atof(row[5]), // z float in_z
|
||||
atof(row[6]), // heading float in_heading
|
||||
row[7], // time_of_death char* time_of_death
|
||||
atoi(row[8]) == 1, // is_rezzed bool rezzed
|
||||
atoi(row[9]))
|
||||
atoi(row[9]))
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
@ -172,7 +172,7 @@ struct PlayerCorpse_Struct {
|
||||
uint32 drakkin_heritage;
|
||||
uint32 drakkin_tattoo;
|
||||
uint32 drakkin_details;
|
||||
player_lootitem::ServerLootItem_Struct* items[0];
|
||||
player_lootitem::ServerLootItem_Struct items[0];
|
||||
//std::list<player_lootitem::ServerLootItem_Struct*> items;
|
||||
};
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user