core icon indicating copy to clipboard operation
core copied to clipboard

Aegis/WK ult counting as death

Open Renhaka opened this issue 9 years ago • 12 comments

In this match: http://yasp.co/matches/1899260771/

The shadow fiend's aegis uses are counted as deaths for the purposes of team-fights and the who-killed-who table, however is not included in the overview (as I believe it should be)

Renhaka avatar Oct 29 '15 08:10 Renhaka

Yes, this is a long-standing issue with reading data from combat log.

Overview gives data from Steam WebAPI. It matches game scoreboard.

However most of the parsed data is from combat log. This does not differentiate between aegis/reincarnation deaths and regular deaths.

I haven't been able to think of a clean way to implement detecting aegis/reincarnation yet, but ideas are welcome.

howardchung avatar Oct 29 '15 08:10 howardchung

Ideas welcome, suggested on Reddit: m_lifeState property of CDOTA_Unit_Hero

howardchung avatar Nov 26 '15 18:11 howardchung

I haven't been able to dig deeper and look, but I wrote a quick list of telltale signs that a death might have been utilizing as an aegis.

  1. Respawn Timer is exactly 5 seconds a) Possible false positive exists with a hero with 19 bloodstone charges at level 15 (Respawn Timer of (5 + 3.8 * 15) - (3 * 19) = 5)
  2. Roshan would need to have been killed within 5 minutes of the death
  3. Wraith King's ultimate is used and the conditions above have also been met

For WK's ult, the respawn timer would be exactly 3 seconds A false positive here would be when Wraith King has a bloodstone with 7 charges at level 5 or 26 charges at level 20

I'm not sure if this is all qualifying conditions, but I'd figure I'd post these to get discussion rolling.

Renhaka avatar Nov 26 '15 19:11 Renhaka

The problem with this level of specificity is that it's prone to breaking if Valve changes numbers. I want something reliable and consistent.

howardchung avatar Nov 26 '15 19:11 howardchung

For wraith king, one way that would work more often than not would be to check if someone received the "Reincarnate" debuff. But it's not a guaranteed thing because it only affects enemy in a 900 radius :/

LFT avatar Jan 14 '16 22:01 LFT

Yeah I'd prefer not to implement partial fixed since it might cause even more confusion. On Jan 14, 2016 2:10 PM, "Py" [email protected] wrote:

For wraith king, one way that would work more often than not would be to check if someone received the "Reincarnate" debuff. But it's not a guaranteed thing because it only affects enemy in a 900 radius :/

— Reply to this email directly or view it on GitHub https://github.com/yasp-dota/yasp/issues/726#issuecomment-171797765.

howardchung avatar Jan 14 '16 23:01 howardchung

I'm not sure, but don't you have a gold lost on death tracker? And reincarnation deaths do not make you lose gold. Not sure how would that work on exactly 0 gold, but I imagine that's a very rare scenario.

DoctorGester avatar Feb 08 '16 17:02 DoctorGester

@DoctorGester, that's not actually that uncommon. If you quick buy with all of your unreliable gold before death you don't lose any gold. Gold gained from a kill would likely be a better choice. On Mon, Feb 08, 2016 at 2:36 PM, DoctorGester < [email protected] [[email protected]] > wrote: I'm not sure, but don't you have a gold lost on death tracker? And reincarnation deaths do not make you lose gold. Not sure how would that work on exactly 0 gold, but I imagine that's a very rare scenario.

— Reply to this email directly or view it on GitHub [https://github.com/yasp-dota/yasp/issues/726#issuecomment-181482440] .[https://github.com/notifications/beacon/ACE0ycMgKCGgzOm-1e8VXs0Gyh8yuDKUks5piOXUgaJpZM4GYAHo.gif]

not-micphi avatar Feb 08 '16 19:02 not-micphi

We count gold loss through separate events. I suppose the event would not be present for aegis and reincarnations, but the problem remains that we're trying to correlate across events which is messy and potentially error-prone. On Feb 8, 2016 11:36 AM, "DoctorGester" [email protected] wrote:

I'm not sure, but don't you have a gold lost on death tracker? And reincarnation deaths do not make you lose gold. Not sure how would that work on exactly 0 gold, but I imagine that's a very rare scenario.

— Reply to this email directly or view it on GitHub https://github.com/yasp-dota/yasp/issues/726#issuecomment-181482440.

howardchung avatar Feb 08 '16 19:02 howardchung

One option is to rely on the CHAT_EVENT data (what shows up on the left side of the screen).

Another is to use the meta file's kill breakdown data (requires meta parsing, see #1333 )

howardchung avatar Jul 09 '17 20:07 howardchung

Here are my thoughts on how to fix this:

Detect reincarnation with this:

{"time":1660,"type":"DOTA_COMBATLOG_MODIFIER_ADD","value":0,"attackername":"npc_dota_hero_skeleton_king","targetname":"npc_dota_hero_skeleton_king","sourcename":"modifier_fountain_aura_buff","targetsourcename":"dota_unknown","attackerhero":true,"targethero":true,"attackerillusion":false,"targetillusion":false,"inflictor":"modifier_skeleton_king_reincarnation"}

Detect aegis with this:

{"time":1737,"type":"CHAT_MESSAGE_AEGIS","value":0,"player1":3,"player2":-1}

Record the time aegis was used

After parsing is finished:

We can look through all the "kills_log" for the last hero to kill the hero that used aegis, before the time we recorded

Remove that entry from the killers "kills_log" Remove 1 from the killers relevant "killed" object Remove 1 from the aegis users relevant "killed_by" field

Other things that might need to be adjusted: multi_kills hero_kills

Does this seem like a reasonable way to go about it?

rynobax avatar Jul 18 '17 00:07 rynobax

Sounds OK, although potentially you have to handle edge cases such as aegis expiring.

howardchung avatar Jul 18 '17 05:07 howardchung