diff --git a/zone/attack.cpp b/zone/attack.cpp index aa30557be..00af8113b 100644 --- a/zone/attack.cpp +++ b/zone/attack.cpp @@ -2042,8 +2042,8 @@ bool NPC::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes attack if(killerMob) { oos = killerMob->GetOwnerOrSelf(); - char buffer[32] = { 0 }; - snprintf(buffer, 31, "%d %d %d", damage, spell, static_cast(attack_skill)); + char buffer[48] = { 0 }; + snprintf(buffer, 47, "%d %d %d %d", killerMob ? killerMob->GetID() : 0, damage, spell, static_cast(attack_skill)); if(parse->EventNPC(EVENT_DEATH, this, oos, buffer, 0) != 0) { if(GetHP() < 0) { @@ -2058,8 +2058,8 @@ bool NPC::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes attack killerMob->GetCleanName(), GetCleanName(), ConvertArray(damage, val1)); } } else { - char buffer[32] = { 0 }; - snprintf(buffer, 31, "%d %d %d", damage, spell, static_cast(attack_skill)); + char buffer[48] = { 0 }; + snprintf(buffer, 47, "%d %d %d %d", killerMob ? killerMob->GetID() : 0, damage, spell, static_cast(attack_skill)); if(parse->EventNPC(EVENT_DEATH, this, nullptr, buffer, 0) != 0) { if(GetHP() < 0) { @@ -2401,8 +2401,8 @@ bool NPC::Death(Mob* killerMob, int32 damage, uint16 spell, SkillUseTypes attack entity_list.UpdateFindableNPCState(this, true); - char buffer[32] = { 0 }; - snprintf(buffer, 31, "%d %d %d", damage, spell, static_cast(attack_skill)); + char buffer[48] = { 0 }; + snprintf(buffer, 47, "%d %d %d %d", killerMob ? killerMob->GetID() : 0, damage, spell, static_cast(attack_skill)); parse->EventNPC(EVENT_DEATH_COMPLETE, this, oos, buffer, 0); return true; } diff --git a/zone/embparser.cpp b/zone/embparser.cpp index 3dfea9b5e..cdf4e5735 100644 --- a/zone/embparser.cpp +++ b/zone/embparser.cpp @@ -1307,6 +1307,16 @@ void PerlembParser::ExportEventVariables(std::string &package_name, QuestEventID break; } + case EVENT_DEATH: + case EVENT_DEATH_COMPLETE: { + Seperator sep(data); + ExportVar(package_name.c_str(), "killer_id", sep.arg[0]); + ExportVar(package_name.c_str(), "killer_damage", sep.arg[1]); + ExportVar(package_name.c_str(), "killer_spell", sep.arg[2]); + ExportVar(package_name.c_str(), "killer_skill", sep.arg[3]); + break; + } + default: { break; }