-REGISTER_DEATHTYPE(AUTOTEAMCHANGE, DEATH_SELF_AUTOTEAMCHANGE, NULL, "")
-REGISTER_DEATHTYPE(BUFF, NULL, DEATH_MURDER_BUFF, "")
-REGISTER_DEATHTYPE(CAMP, DEATH_SELF_CAMP, NULL, "")
-REGISTER_DEATHTYPE(CHEAT, DEATH_SELF_CHEAT, DEATH_MURDER_CHEAT, "")
-REGISTER_DEATHTYPE(CUSTOM, DEATH_SELF_CUSTOM, NULL, "")
-REGISTER_DEATHTYPE(DROWN, DEATH_SELF_DROWN, DEATH_MURDER_DROWN, "")
-REGISTER_DEATHTYPE(FALL, DEATH_SELF_FALL, DEATH_MURDER_FALL, "")
-REGISTER_DEATHTYPE(FIRE, DEATH_SELF_FIRE, DEATH_MURDER_FIRE, "")
-REGISTER_DEATHTYPE(GENERIC, DEATH_SELF_GENERIC, NULL, "")
-REGISTER_DEATHTYPE(HURTTRIGGER, DEATH_SELF_VOID, DEATH_MURDER_VOID, "")
-REGISTER_DEATHTYPE(KILL, DEATH_SELF_SUICIDE, NULL, "")
-REGISTER_DEATHTYPE(LAVA, DEATH_SELF_LAVA, DEATH_MURDER_LAVA, "")
-REGISTER_DEATHTYPE(MIRRORDAMAGE, DEATH_SELF_BETRAYAL, NULL, "")
-REGISTER_DEATHTYPE(MONSTER_MAGE, DEATH_SELF_MON_MAGE, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_GOLEM_CLAW, DEATH_SELF_MON_GOLEM_CLAW, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_GOLEM_SMASH, DEATH_SELF_MON_GOLEM_SMASH, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_GOLEM_ZAP, DEATH_SELF_MON_GOLEM_ZAP, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_SPIDER, DEATH_SELF_MON_SPIDER, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_WYVERN, DEATH_SELF_MON_WYVERN, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_ZOMBIE_JUMP, DEATH_SELF_MON_ZOMBIE_JUMP, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(MONSTER_ZOMBIE_MELEE, DEATH_SELF_MON_ZOMBIE_MELEE, DEATH_MURDER_MONSTER, "monster")
-REGISTER_DEATHTYPE(NADE, DEATH_SELF_NADE, DEATH_MURDER_NADE, "")
-REGISTER_DEATHTYPE(NADE_NAPALM, DEATH_SELF_NADE_NAPALM, DEATH_MURDER_NADE_NAPALM, "")
-REGISTER_DEATHTYPE(NADE_ICE, DEATH_SELF_NADE_ICE, DEATH_MURDER_NADE_ICE, "")
-REGISTER_DEATHTYPE(NADE_ICE_FREEZE, DEATH_SELF_NADE_ICE_FREEZE, DEATH_MURDER_NADE_ICE_FREEZE, "")
-REGISTER_DEATHTYPE(NADE_HEAL, DEATH_SELF_NADE_HEAL, DEATH_MURDER_NADE_HEAL, "")
-REGISTER_DEATHTYPE(NOAMMO, DEATH_SELF_NOAMMO, NULL, "")
-REGISTER_DEATHTYPE(ROT, DEATH_SELF_ROT, NULL, "")
-REGISTER_DEATHTYPE(SHOOTING_STAR, DEATH_SELF_SHOOTING_STAR, DEATH_MURDER_SHOOTING_STAR, "")
-REGISTER_DEATHTYPE(SLIME, DEATH_SELF_SLIME, DEATH_MURDER_SLIME, "")
-REGISTER_DEATHTYPE(SWAMP, DEATH_SELF_SWAMP, DEATH_MURDER_SWAMP, "")
-REGISTER_DEATHTYPE(TEAMCHANGE, DEATH_SELF_TEAMCHANGE, NULL, "")
-REGISTER_DEATHTYPE(TELEFRAG, NULL, DEATH_MURDER_TELEFRAG, "")
-REGISTER_DEATHTYPE(TOUCHEXPLODE, DEATH_SELF_TOUCHEXPLODE, DEATH_MURDER_TOUCHEXPLODE, "")
-REGISTER_DEATHTYPE(TURRET, DEATH_SELF_TURRET, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_EWHEEL, DEATH_SELF_TURRET_EWHEEL, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_FLAC, DEATH_SELF_TURRET_FLAC, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_HELLION, DEATH_SELF_TURRET_HELLION, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_HK, DEATH_SELF_TURRET_HK, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_MACHINEGUN, DEATH_SELF_TURRET_MACHINEGUN, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_MLRS, DEATH_SELF_TURRET_MLRS, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_PHASER, DEATH_SELF_TURRET_PHASER, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_PLASMA, DEATH_SELF_TURRET_PLASMA, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_TESLA, DEATH_SELF_TURRET_TESLA, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_GUN, DEATH_SELF_TURRET_WALK_GUN, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_MELEE, DEATH_SELF_TURRET_WALK_MELEE, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(TURRET_WALK_ROCKET, DEATH_SELF_TURRET_WALK_ROCKET, DEATH_MURDER_CHEAT, "turret")
-REGISTER_DEATHTYPE(VH_BUMB_DEATH, DEATH_SELF_VH_BUMB_DEATH, DEATH_MURDER_VH_BUMB_DEATH, "vehicle")
-REGISTER_DEATHTYPE(VH_BUMB_GUN, NULL, DEATH_MURDER_VH_BUMB_GUN, "vehicle")
-REGISTER_DEATHTYPE(VH_CRUSH, DEATH_SELF_VH_CRUSH, DEATH_MURDER_VH_CRUSH, "vehicle")
-REGISTER_DEATHTYPE(VH_RAPT_BOMB, DEATH_SELF_VH_RAPT_BOMB, DEATH_MURDER_VH_RAPT_BOMB, "vehicle")
-REGISTER_DEATHTYPE(VH_RAPT_CANNON, NULL, DEATH_MURDER_VH_RAPT_CANNON, "vehicle")
-REGISTER_DEATHTYPE(VH_RAPT_DEATH, DEATH_SELF_VH_RAPT_DEATH, DEATH_MURDER_VH_RAPT_DEATH, "vehicle")
-REGISTER_DEATHTYPE(VH_RAPT_FRAGMENT, DEATH_SELF_VH_RAPT_BOMB, DEATH_MURDER_VH_RAPT_BOMB, "vehicle")
-REGISTER_DEATHTYPE(VH_SPID_DEATH, DEATH_SELF_VH_SPID_DEATH, DEATH_MURDER_VH_SPID_DEATH, "vehicle")
-REGISTER_DEATHTYPE(VH_SPID_MINIGUN, NULL, DEATH_MURDER_VH_SPID_MINIGUN, "vehicle")
-REGISTER_DEATHTYPE(VH_SPID_ROCKET, DEATH_SELF_VH_SPID_ROCKET, DEATH_MURDER_VH_SPID_ROCKET, "vehicle")
-REGISTER_DEATHTYPE(VH_WAKI_DEATH, DEATH_SELF_VH_WAKI_DEATH, DEATH_MURDER_VH_WAKI_DEATH, "vehicle")
-REGISTER_DEATHTYPE(VH_WAKI_GUN, NULL, DEATH_MURDER_VH_WAKI_GUN, "vehicle")
-REGISTER_DEATHTYPE(VH_WAKI_ROCKET, DEATH_SELF_VH_WAKI_ROCKET, DEATH_MURDER_VH_WAKI_ROCKET, "vehicle")
-REGISTER_DEATHTYPE(WEAPON, NULL, NULL, "")
+REGISTER_DEATHTYPE(AUTOTEAMCHANGE, DEATH_SELF_AUTOTEAMCHANGE, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(BUFF, NULL, DEATH_MURDER_BUFF, NULL, NULL, "")
+REGISTER_DEATHTYPE(CAMP, DEATH_SELF_CAMP, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(CHEAT, DEATH_SELF_CHEAT, DEATH_MURDER_CHEAT, NULL, NULL, "")
+REGISTER_DEATHTYPE(CUSTOM, DEATH_SELF_CUSTOM, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(DROWN, DEATH_SELF_DROWN, DEATH_MURDER_DROWN, NULL, NULL, "")
+REGISTER_DEATHTYPE(FALL, DEATH_SELF_FALL, DEATH_MURDER_FALL, NULL, NULL, "")
+REGISTER_DEATHTYPE(FIRE, DEATH_SELF_FIRE, DEATH_MURDER_FIRE, NULL, NULL, "")
+REGISTER_DEATHTYPE(GENERIC, DEATH_SELF_GENERIC, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(HURTTRIGGER, DEATH_SELF_VOID, DEATH_MURDER_VOID, DEATH_SELF_VOID_ENT, DEATH_MURDER_VOID_ENT, "")
+REGISTER_DEATHTYPE(KILL, DEATH_SELF_SUICIDE, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(LAVA, DEATH_SELF_LAVA, DEATH_MURDER_LAVA, NULL, NULL, "")
+REGISTER_DEATHTYPE(MIRRORDAMAGE, DEATH_SELF_BETRAYAL, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(MONSTER_MAGE, DEATH_SELF_MON_MAGE, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_GOLEM_CLAW, DEATH_SELF_MON_GOLEM_CLAW, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_GOLEM_SMASH, DEATH_SELF_MON_GOLEM_SMASH, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_GOLEM_ZAP, DEATH_SELF_MON_GOLEM_ZAP, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_SPIDER, DEATH_SELF_MON_SPIDER, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_WYVERN, DEATH_SELF_MON_WYVERN, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_ZOMBIE_JUMP, DEATH_SELF_MON_ZOMBIE_JUMP, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(MONSTER_ZOMBIE_MELEE, DEATH_SELF_MON_ZOMBIE_MELEE, DEATH_MURDER_MONSTER, NULL, NULL, "monster")
+REGISTER_DEATHTYPE(NADE, DEATH_SELF_NADE, DEATH_MURDER_NADE, NULL, NULL, "")
+REGISTER_DEATHTYPE(NADE_NAPALM, DEATH_SELF_NADE_NAPALM, DEATH_MURDER_NADE_NAPALM, NULL, NULL, "")
+REGISTER_DEATHTYPE(NADE_ICE, DEATH_SELF_NADE_ICE, DEATH_MURDER_NADE_ICE, NULL, NULL, "")
+REGISTER_DEATHTYPE(NADE_ICE_FREEZE, DEATH_SELF_NADE_ICE_FREEZE, DEATH_MURDER_NADE_ICE_FREEZE, NULL, NULL, "")
+REGISTER_DEATHTYPE(NADE_HEAL, DEATH_SELF_NADE_HEAL, DEATH_MURDER_NADE_HEAL, NULL, NULL, "")
+REGISTER_DEATHTYPE(NOAMMO, DEATH_SELF_NOAMMO, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(ROT, DEATH_SELF_ROT, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(SHOOTING_STAR, DEATH_SELF_SHOOTING_STAR, DEATH_MURDER_SHOOTING_STAR, NULL, NULL, "")
+REGISTER_DEATHTYPE(SLIME, DEATH_SELF_SLIME, DEATH_MURDER_SLIME, NULL, NULL, "")
+REGISTER_DEATHTYPE(SWAMP, DEATH_SELF_SWAMP, DEATH_MURDER_SWAMP, NULL, NULL, "")
+REGISTER_DEATHTYPE(TEAMCHANGE, DEATH_SELF_TEAMCHANGE, NULL, NULL, NULL, "")
+REGISTER_DEATHTYPE(TELEFRAG, NULL, DEATH_MURDER_TELEFRAG, NULL, NULL, "")
+REGISTER_DEATHTYPE(TOUCHEXPLODE, DEATH_SELF_TOUCHEXPLODE, DEATH_MURDER_TOUCHEXPLODE, NULL, NULL, "")
+REGISTER_DEATHTYPE(TURRET, DEATH_SELF_TURRET, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_EWHEEL, DEATH_SELF_TURRET_EWHEEL, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_FLAC, DEATH_SELF_TURRET_FLAC, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_HELLION, DEATH_SELF_TURRET_HELLION, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_HK, DEATH_SELF_TURRET_HK, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_MACHINEGUN, DEATH_SELF_TURRET_MACHINEGUN, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_MLRS, DEATH_SELF_TURRET_MLRS, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_PHASER, DEATH_SELF_TURRET_PHASER, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_PLASMA, DEATH_SELF_TURRET_PLASMA, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_TESLA, DEATH_SELF_TURRET_TESLA, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_GUN, DEATH_SELF_TURRET_WALK_GUN, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_MELEE, DEATH_SELF_TURRET_WALK_MELEE, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(TURRET_WALK_ROCKET, DEATH_SELF_TURRET_WALK_ROCKET, DEATH_MURDER_CHEAT, NULL, NULL, "turret")
+REGISTER_DEATHTYPE(VH_BUMB_DEATH, DEATH_SELF_VH_BUMB_DEATH, DEATH_MURDER_VH_BUMB_DEATH, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_BUMB_GUN, NULL, DEATH_MURDER_VH_BUMB_GUN, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_CRUSH, DEATH_SELF_VH_CRUSH, DEATH_MURDER_VH_CRUSH, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_RAPT_BOMB, DEATH_SELF_VH_RAPT_BOMB, DEATH_MURDER_VH_RAPT_BOMB, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_RAPT_CANNON, NULL, DEATH_MURDER_VH_RAPT_CANNON, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_RAPT_DEATH, DEATH_SELF_VH_RAPT_DEATH, DEATH_MURDER_VH_RAPT_DEATH, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_RAPT_FRAGMENT, DEATH_SELF_VH_RAPT_BOMB, DEATH_MURDER_VH_RAPT_BOMB, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_SPID_DEATH, DEATH_SELF_VH_SPID_DEATH, DEATH_MURDER_VH_SPID_DEATH, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_SPID_MINIGUN, NULL, DEATH_MURDER_VH_SPID_MINIGUN, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_SPID_ROCKET, DEATH_SELF_VH_SPID_ROCKET, DEATH_MURDER_VH_SPID_ROCKET, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_WAKI_DEATH, DEATH_SELF_VH_WAKI_DEATH, DEATH_MURDER_VH_WAKI_DEATH, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_WAKI_GUN, NULL, DEATH_MURDER_VH_WAKI_GUN, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(VH_WAKI_ROCKET, DEATH_SELF_VH_WAKI_ROCKET, DEATH_MURDER_VH_WAKI_ROCKET, NULL, NULL, "vehicle")
+REGISTER_DEATHTYPE(WEAPON, NULL, NULL, NULL, NULL, "")
MSG_INFO_NOTIF(DEATH_MURDER_VH_WAKI_GUN, N_CONSOLE, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "notify_death", _("^BG%s%s^K1 was bolted down by ^BG%s^K1's Racer%s%s"), "")
MSG_INFO_NOTIF(DEATH_MURDER_VH_WAKI_ROCKET, N_CONSOLE, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "notify_death", _("^BG%s%s^K1 couldn't find shelter from ^BG%s^K1's Racer%s%s"), "")
MSG_INFO_NOTIF(DEATH_MURDER_VOID, N_CONSOLE, 3, 2, "spree_inf s1 s2 s3loc spree_end", "s2 s1", "notify_void", _("^BG%s%s^K1 was thrown into a world of hurt by ^BG%s^K1%s%s"), "")
+ MSG_INFO_NOTIF(DEATH_MURDER_VOID_ENT, N_CONSOLE, 4, 2, "spree_inf s1 s3 s2 s4loc spree_end", "s2 s1", "notify_void", "^BG%s%s^K1 %s ^BG%s^K1%s%s", "")
MSG_INFO_NOTIF(DEATH_SELF_AUTOTEAMCHANGE, N_CONSOLE, 2, 1, "s1 death_team s2loc", "", "", _("^BG%s^K1 was moved into the %s%s"), "")
MSG_INFO_NOTIF(DEATH_SELF_BETRAYAL, N_CONSOLE, 2, 1, "s1 s2loc spree_lost", "s1", "notify_teamkill_red", _("^BG%s^K1 became enemies with the Lord of Teamplay%s%s"), "")
MSG_INFO_NOTIF(DEATH_SELF_VH_WAKI_DEATH, N_CONSOLE, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 got caught in the blast of a Racer explosion%s%s"), "")
MSG_INFO_NOTIF(DEATH_SELF_VH_WAKI_ROCKET, N_CONSOLE, 2, 1, "s1 s2loc spree_lost", "s1", "notify_death", _("^BG%s^K1 couldn't find shelter from a Racer rocket%s%s"), "")
MSG_INFO_NOTIF(DEATH_SELF_VOID, N_CONSOLE, 2, 1, "s1 s2loc spree_lost", "s1", "notify_void", _("^BG%s^K1 ended up in the wrong place%s%s"), "")
+ MSG_INFO_NOTIF(DEATH_SELF_VOID_ENT, N_CONSOLE, 3, 1, "s1 s2 s3loc spree_lost", "s1", "notify_void", "^BG%s^K1 %s%s%s", "")
MULTITEAM_INFO(DEATH_TEAMKILL, N_CONSOLE, 3, 1, "s1 s2 s3loc spree_end", "s2 s1", "notify_teamkill_%s", _("^BG%s^K1 was betrayed by ^BG%s^K1%s%s"), "", NAME)
MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_GUN, N_ENABLE, NULL, INFO_DEATH_MURDER_VH_WAKI_GUN, NULL)
MSG_MULTI_NOTIF(DEATH_MURDER_VH_WAKI_ROCKET, N_ENABLE, NULL, INFO_DEATH_MURDER_VH_WAKI_ROCKET, NULL)
MSG_MULTI_NOTIF(DEATH_MURDER_VOID, N_ENABLE, NULL, INFO_DEATH_MURDER_VOID, NULL)
+ MSG_MULTI_NOTIF(DEATH_MURDER_VOID_ENT, N_ENABLE, NULL, INFO_DEATH_MURDER_VOID_ENT, NULL)
MSG_MULTI_NOTIF(DEATH_SELF_AUTOTEAMCHANGE, N_ENABLE, NULL, INFO_DEATH_SELF_AUTOTEAMCHANGE, CENTER_DEATH_SELF_AUTOTEAMCHANGE)
MSG_MULTI_NOTIF(DEATH_SELF_BETRAYAL, N_ENABLE, NULL, INFO_DEATH_SELF_BETRAYAL, CENTER_DEATH_SELF_BETRAYAL)
MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_DEATH, N_ENABLE, NULL, INFO_DEATH_SELF_VH_WAKI_DEATH, CENTER_DEATH_SELF_VH_WAKI_DEATH)
MSG_MULTI_NOTIF(DEATH_SELF_VH_WAKI_ROCKET, N_ENABLE, NULL, INFO_DEATH_SELF_VH_WAKI_ROCKET, CENTER_DEATH_SELF_VH_WAKI_ROCKET)
MSG_MULTI_NOTIF(DEATH_SELF_VOID, N_ENABLE, NULL, INFO_DEATH_SELF_VOID, CENTER_DEATH_SELF_VOID)
+ MSG_MULTI_NOTIF(DEATH_SELF_VOID_ENT, N_ENABLE, NULL, INFO_DEATH_SELF_VOID_ENT, CENTER_DEATH_SELF_VOID)
MSG_MULTI_NOTIF(ITEM_BUFF_DROP, N_ENABLE, NULL, INFO_ITEM_BUFF_DROP, CENTER_ITEM_BUFF_DROP)
MSG_MULTI_NOTIF(ITEM_BUFF_GOT, N_ENABLE, NULL, INFO_ITEM_BUFF_GOT, CENTER_ITEM_BUFF_GOT)
void Obituary_SpecialDeath(
entity notif_target,
float murder,
+ bool msg_from_ent,
int deathtype,
- string s1, string s2, string s3,
+ string s1, string s2, string s3, string s4,
float f1, float f2, float f3)
{
if(!DEATH_ISSPECIAL(deathtype))
return; // TODO: somehow put this in CTS gamemode file!
Notification death_message = (murder) ? deathent.death_msgmurder : deathent.death_msgself;
+ if (msg_from_ent)
+ death_message = (murder) ? deathent.death_msg_ent_murder : deathent.death_msg_ent_self;
if(death_message)
{
Send_Notification_WOCOVA(
notif_target,
MSG_MULTI,
death_message,
- s1, s2, s3, "",
+ s1, s2, s3, s4,
f1, f2, f3, 0
);
Send_Notification_WOCOVA(
notif_target,
MSG_INFO,
death_message.nent_msginfo,
- s1, s2, s3, "",
+ s1, s2, s3, s4,
f1, f2, f3, 0
);
}
{
if(deathtype == DEATH_TEAMCHANGE.m_id || deathtype == DEATH_AUTOTEAMCHANGE.m_id)
{
- Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", targ.team, 0, 0);
+ Obituary_SpecialDeath(targ, false, 0, deathtype, targ.netname, deathlocation, "", "", targ.team, 0, 0);
}
else
{
{
case DEATH_MIRRORDAMAGE:
{
- Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0);
+ Obituary_SpecialDeath(targ, false, 0, deathtype, targ.netname, deathlocation, "", "", CS(targ).killcount, 0, 0);
break;
}
case DEATH_HURTTRIGGER:
- Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0);
+ bool msg_from_ent = (inflictor && inflictor.message != "");
+ Obituary_SpecialDeath(targ, false, msg_from_ent, deathtype,
+ targ.netname,
+ (msg_from_ent ? inflictor.message : deathlocation),
+ (msg_from_ent ? deathlocation : ""),
+ "", CS(targ).killcount, 0, 0);
break;
default:
{
- Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0);
+ Obituary_SpecialDeath(targ, false, 0, deathtype, targ.netname, deathlocation, "", "", CS(targ).killcount, 0, 0);
break;
}
}
f3 = buff_FirstFromFlags(attacker).m_id;
if (!Obituary_WeaponDeath(targ, true, deathtype, targ.netname, attacker_name, deathlocation, CS(targ).killcount, kill_count_to_attacker))
- Obituary_SpecialDeath(targ, true, deathtype, targ.netname, attacker_name, deathlocation, CS(targ).killcount, kill_count_to_attacker, f3);
+ {
+ if (DEATH_ENT(deathtype) == DEATH_HURTTRIGGER)
+ {
+ // FIXME if # is present inside .message2 then it is should be replaced with attacker's name
+ bool msg_from_ent = (inflictor && inflictor.message2 != "");
+ Obituary_SpecialDeath(targ, true, msg_from_ent, deathtype,
+ targ.netname,
+ attacker_name,
+ (msg_from_ent ? inflictor.message2 : deathlocation),
+ (msg_from_ent ? deathlocation : ""),
+ CS(targ).killcount, kill_count_to_attacker, f3);
+ }
+ else
+ Obituary_SpecialDeath(targ, true, 0, deathtype, targ.netname, attacker_name, deathlocation, "", CS(targ).killcount, kill_count_to_attacker, f3);
+ }
}
}
// and there will be a REAL DEATH_VOID implementation which mappers will use.
case DEATH_HURTTRIGGER:
{
- Obituary_SpecialDeath(targ, false, deathtype,
+ bool msg_from_ent = (inflictor && inflictor.message != "");
+ Obituary_SpecialDeath(targ, false, msg_from_ent, deathtype,
targ.netname,
- deathlocation,
+ (msg_from_ent ? inflictor.message : deathlocation),
+ (msg_from_ent ? deathlocation : ""),
"",
CS(targ).killcount,
0,
case DEATH_CUSTOM:
{
- Obituary_SpecialDeath(targ, false, deathtype,
+ Obituary_SpecialDeath(targ, false, 0, deathtype,
targ.netname,
((strstrofs(deathmessage, "%", 0) < 0) ? strcat("%s ", deathmessage) : deathmessage),
deathlocation,
+ "",
CS(targ).killcount,
0,
0);
default:
{
- Obituary_SpecialDeath(targ, false, deathtype, targ.netname, deathlocation, "", CS(targ).killcount, 0, 0);
+ Obituary_SpecialDeath(targ, false, 0, deathtype, targ.netname, deathlocation, "", "", CS(targ).killcount, 0, 0);
break;
}
}