View Full Version : Who or what killed me?
JimB_1958
12-01-2015, 01:44 PM
I can't seem to find what I am wanting to do. I thought it would be simple and it probably is. Just not today.
I would like to get the ID and eventually the name of the creature that killed a player.
In case of PvP the killing player would be nice. If that's not possible, then maybe just a true/false that it was a another player
All other deaths marked as "from an unknown source" or the like
Kingly_Krab
12-01-2015, 02:12 PM
"Killer variables," says Secrets. $killer_damage
$killer_id
$killer_skill
$killer_spellSomething like this can be done for players killed by players. sub EVENT_DEATH_COMPLETE {
if ($entity_list->GetMobByID($killer_id) && $entity_list->GetMobByID($killer_id)->IsClient()) {
##Do whatever
}
}
JimB_1958
12-02-2015, 12:25 AM
I fiddled around with a bunch of different things and could not get any of them to work until I stumbled into this:
sub EVENT_DEATH_COMPLETE{
my $whokilledme = "an unknown hand";
my $mobid = $entity_list->GetMobID($killer_id);
$whokilledme= $mobid->GetCleanName();
quest::gmsay("$name the $class has just been killed in $zoneln by $whokilledme ", 335, 1, 0, 0);
}
Oddly enough it works for both mobs and pc kills. Only drawback is if the player dies by drowning, falling or anything but a pc or mob there is no text at all.
Kingly_Krab
12-02-2015, 08:10 AM
The reason GetCleanName() works on PCs and NPCs is because GetCleanName() is a Mob method that PCs and NPCs inherit through subclass inheritance. Try this: sub EVENT_DEATH_COMPLETE {
quest::gmsay("$name the $class has just been killed in $zoneln by " . ($entity_list->GetMobByID($killer_id) ? $entity_list->GetMobByID($killer_id)->GetCleanName() : "an unknown hand") . ".", 335, 1, 0, 0);
}
JimB_1958
12-02-2015, 09:07 AM
Awesome! Thanks Kingly. When I had the practice toon nuke himself I got this message:
Zeppa the Ranger has just been killed in the Overthere by Zeppa
This is perfect.
Kingly_Krab
12-02-2015, 09:14 AM
You're welcome, I'm glad you got it worked out! Always happy to be of assistance.
JimB_1958
12-02-2015, 01:14 PM
My final Code
sub EVENT_DEATH_COMPLETE {
if($ulevel >= 85){ #Avoid Newbie Death Spam
if(!defined $qglobals{DeathSpam}) { #Avoid Nimrod Death Spam
quest::gmsay("$name the $class has just been killed in $zoneln by " . ($entity_list->GetMobByID($killer_id) ? $entity_list->GetMobByID($killer_id)->GetCleanName() : "an unknown hand") . ".", 335, 1, 0, 0);
quest::setglobal("DeathSpam","1",5,"M10");
}
}
}
Thanks again
vBulletin® v3.8.11, Copyright ©2000-2025, vBulletin Solutions Inc.