odota / parser

Replay parse server generating JSON log events from Dota 2 replay files
MIT License
119 stars 52 forks source link

Garbage data for sourcename? #46

Open Turmfalke2 opened 3 years ago

Turmfalke2 commented 3 years ago

hi, I am trying to understand the parser output. For example:

{
  "time": 676,
  "type": "DOTA_COMBATLOG_MODIFIER_ADD",
  "value": 1,
  "attackername": "npc_dota_hero_bounty_hunter",
  "targetname": "npc_dota_hero_bristleback",
  "sourcename": "npc_dota_hero_lycan",
  "targetsourcename": "dota_unknown",
  "attackerhero": true,
  "targethero": true,
  "attackerillusion": false,
  "targetillusion": false,
  "inflictor": "modifier_bounty_hunter_track"
}

I read this as bounty hunter tracked bristleback, but what has lycan to do with this? What is the sourcename?

Brisleback and lycan are on the same team, so no lotus orb shenanigans.

howardchung commented 3 years ago

What match ID was this?

Turmfalke2 commented 3 years ago

5770770321

howardchung commented 3 years ago

Looking at the match data I don't see anything obvious. If you have the replay try watching it in client and seeing what's going on?

Turmfalke2 commented 3 years ago

I have played that game and I was the bounty hunter.

This is also not a one of issue, every instance of me (bounty hunter) tracking someone has sourcename set to lycan. I would like to understand why this is the case, or what the sourcename is supposed to containe.


$ jq 'select(.type == "DOTA_COMBATLOG_MODIFIER_ADD" and .inflictor == "modifier_bounty_hunter_track") | .sourcename' /tmp/b  | sort | uniq -c
     42 "npc_dota_hero_lycan"
howardchung commented 3 years ago

It's possible that it's just incorrect data written to the replay and not used by anything. not all fields are used by all combat log events