Maintenance for the week of December 30:
• PC/Mac: No maintenance – December 30

EVENT_COMBAT_EVENT and player kills

mikethecoder4ub17_ESO
mikethecoder4ub17_ESO
Soul Shriven
Dunno where else to post this. Looks like This is the only Official forum for Addon stuff. This post is going to be pretty technical, and probably wont make sense unless you are an addon developer/programmar

I am an Addon developer (Of the addon Kill Counter, which can be downloaded on esoui and curse) and my addon specifically uses the event EVENT_COMBAT_EVENT. My addon attempts to track player kills in cyrodiil, and does this with varying efficiency. Sometimes, I can track 90% of all the kills gotten, and sometimes i can barely get about 50%. Through testing, I have figured out this is probably due to the following.

one of the results of this event, and the one I use to actually determing if you've gotten a player kill, is ACTION_RESULT_KILLING_BLOW, which is exactly the result I want (procs when you get a kill on a player, regardless of if you are the actual one getting the killing blow. I can also track when you get a killing blow (actually, with 100% accuracy) but anyways...) but this event seems to happen inconsistently as far as killing blows are concerned.

When you get the actual killing blow (whether in a big group or a 1v1) The event and result will always happen right when you get the kill. However, when you don't get the killing blow, things start to get strange. One of the strangest things is the fact that non killing blow kills come at a varying delay. At first, this problem stumped me, but after much testing, I have figured out this event (EVENT_COMBAT_EVENT with a ACTION_RESULT_KILLING_BLOW result) is actually fired when the enemy player RESSURECTS (rather than when they are actually killed, like when you get the killing blow yourself) at some kind of graveyard. I assume it works with any graveyard, whether at a keep or a forward camp, but I have no way to verify this. This results in my addon seeing the kill for a player up to 30secs-5 minutes after the actual kill happens (I have only seen the 5 minute one once, but assume it was because a player waited for 5 minutes before finally deciding to rez.)

However, this seems to be true only when you are out of combat. And if the player rezzes while you are fighting, the kill,and any others for that matter, will all fire the event once you have Exited combat. To test this, you can download the Kill Counter addon Here and once in game, type the command /kc ooc. This will have Kill Counter show chat messages when you are out of combat. Kill a few players, and you will probably notice that when you go out of combat, you get non Killing Blow kills.

Furthermore, when a player is rezzed by another, it seems that the EVENT_COMBAT_EVENT with the killing blow result doesn't proc at all. This results in kills that my addon simply cannot track because the API doesn't report the kills. This is a bit frustrating, but I take solace in the fact that its an API problem (I think at least...) and not a problem with my code. However, I would really love for you guys to change this so that my addon can be 100% accurate.

I have a feeling problem is due to another event EVENT_UNIT_DEATH_STATE_CHANGED. As the delayed EVENT_COMBAT_EVENT events with a killing blow result would happen at the same time as EVENT_UNIT_DEATH_STATE_CHANGED for the player when they rezzed. I may be way off base here, and I am well aware that correlation != (or ~= i suppose) causation

Also, as a side note, it seems (due to the limitations and restraints on the API) it would be impossible to track kills gotten by group members that the Kill quest would count for you. This is a minor point I don't care much about, as I'm not too interested in tracking group kills, but in case you guys weren't aware.

Anyways, I am officially requesting you guys do one of the two following things (either one is fine, but I will mark my prefered option)

Create an event (prehaps called EVENT_ON_PLAYER_KILL) that fires when you kill an enemy player in Cyrodiil. Basically, whatever event or combination of events that procs Kills for the Kill Enemy Players quest would proc this event. Please pass as parameters to this function all the info about the player (IE class, name, alliance, level/vlevel, etc.), but if you really just don't want to pass that, just the killed players name would be fine. I guess, as I can get player information from the unit tag once the player targets the enemy. This is my prefered option


Fix the EVENT_COMBAT_EVENT so that it procs reliably. I would be perfectly ok with this because I wouldn't have to change any of my code, but I would still prefer the above.


I realize you guys wanted to limit the API and hide certain information so that certain addons that become needed or detrimental in other MMOs (like DPS meters and what not) wouldn't be possible, but its ridiculous that a player can't track his own kills. On some days, I could more accurately track kills by counting them aloud. The delay is what really bothers me, as its confusing the get kills on enemies you killed 2 minutes ago, especially if you get them right before another fight (or during)

However, I also realize I could be doing this completely wrong, and if thats the case, please tell me how I would accomplish my goal and then ignore this post!
  • cjmarsh725b14_ESO
    cjmarsh725b14_ESO
    ✭✭✭✭
    You could use ACTION_RESULT_KILLING_BLOW along with tracking a gain in AP to match the kill with the credit for it.
  • mikethecoder4ub17_ESO
    mikethecoder4ub17_ESO
    Soul Shriven
    Unfortunately I can't reliably do this with anything but killing blows (which is unnecessary since I can already track killing blows exactly when they happen), since the ACTION_RESULT_KILLING_BLOW event can happen well after the AP gain event for killing that player takes place.

    Furthermore, I've determined with a pretty good amount of confidence that this event (with action result of klling blow) fires when the player rezzes (even if you get a killing blow, making it fire more than once). I also think this has something to do with being stuck in combat forever. Pretty sure you don't go out of combat until the player you killed rezzes.
  • mikethecoder4ub17_ESO
    mikethecoder4ub17_ESO
    Soul Shriven
    After a lot of testing, I can confirm with about 99% confidence that Killing blow events (where you kill someone but don't get the actual killing blow) do NOT fire until the player ressurrects or otherwise releases their body, NOT when they actually die.

  • McDonuts
    McDonuts
    Well, it seems that whatever that event is tied to, is also tied to stealth calculations, as there are many times that I have killed someone, then could not stealth (and did not get "out of combat" message either, I believe) again until the player released/rezzed, or I ran way far away from their corpse.

    Either way that they do it, I hope they fix the event trigger to be "on death" instead of "on rez", so that it fixes that issue with stealth also.
  • mikethecoder4ub17_ESO
    mikethecoder4ub17_ESO
    Soul Shriven
    Yes, i've noticed that as well. I posted about it in another thread, but don't think anyone really noticed.
Sign In or Register to comment.