I've figured out a little more. It looks like the key ingredient is that the detonator has to kill it's setter. Ie. if I set a detonator and it kills me when it explodes, ALL pawns killed by the detonator's explosion will be suicides -- except those IN the vehicle (if any) when it explodes.
So if the detonator's armer is NOT killed by the explosion, s/he gets credit for all relevant kills, and they are not counted against the victims.
Anyone understand why this would be the case? I mean, if you shoot a rocket launcher between yourself and someone else, and it kills both of you, it assigns you a kill & a suicide, and the victim just a death. I just want mine to act the same :P
Announcement
Collapse
No announcement yet.
Vehicle Explosion Always Suicide?
Collapse
X
-
legacy-YusakuGodai repliedNo dice
I added the following in my Explode() method:
Code:if (None == ArmedBy) { Log("This exploding detonator wasn't armed by anyone!"); } else if (None == ArmedBy.Pawn) { Log("This exploding detonator was armed by a controller with no pawn!"); }
It's not going to be a timing issue or something odd like that is it? Like the Instigator is cleared just before it's checked to see if it should be used for giving credit? This baffles me.
Leave a comment:
-
legacy-YusakuGodai repliedThanks! That's a good idea, I'll give it a try as soon as I'm able (a couple of hours probably). ArmedBy is always specified when a detonator is primed, but I don't think I ever checked to make sure None wasn't being passed through at that point -- certainly worth checking out!
One thing I should mention is that I added the line:
Code:Vehicle(Owner).Instigator = ArmedBy.Pawn;
I'll post and let you know how it works out!
Leave a comment:
-
legacy-butcherboy repliedadd:
Code:if (ArmedBy==NONE) log("ArmedBy equals NONE!");
Leave a comment:
-
legacy-YusakuGodai started a topic Vehicle Explosion Always Suicide?Vehicle Explosion Always Suicide?
In my Vehicle Detonator mutator, whenever a vehicle explodes it counts all deaths related to the explosion as suicides (unless you're in the vehicle, that counts towards the person who caused the explosion).
I do this by calling Died() on the vehicle and passing my own damage type & the Controller of the person who fired the detonator. Is there a different way I should be doing this, or something I need to do additionally so that this person also gets credit for deaths caused by the explosion? The exact block of code looks like this:
Code:Level.Spawn(GetDetonatorExplosion(), Level,,Owner.Location); if (None != ONSVehicle(Owner)) { ONSVehicle(Owner).ExplosionDamageType = GetExplosionDamageType(); } Vehicle(Owner).Died(ArmedBy, GetExplosionDamageType(), Owner.location);
Anyone got an idea what I'm doing wrong?Tags: None
Leave a comment: