Blizzard / heroprotocol

Python library to decode Heroes of the Storm replays
MIT License
397 stars 71 forks source link

Getting combat log data from parse #53

Closed xmas closed 6 years ago

xmas commented 7 years ago

I was hoping to create a "www.warcraftlogs.com" style combat log parser for HOTS. Some of the things I'd like to be able to do:

From what I can tell the game.events only includes movement, and the details only includes the final damage done numbers. Looking at Barret777's C# code he is also only tracking at this level...

Is there some way to parse these events to get this per-event data?

xmas commented 7 years ago

Here are the events and count of occurrences that we seem to know about...

None of them seem to have damage/spell data :)

{
    "NNet.Game.SCameraUpdateEvent": 22776,
    "NNet.Game.SCmdEvent": 3913,
    "NNet.Game.SCmdUpdateTargetPointEvent": 22924,
    "NNet.Game.SCmdUpdateTargetUnitEvent": 1592,
    "NNet.Game.SCommandManagerStateEvent": 37285,
    "NNet.Game.SGameUserLeaveEvent": 8,
    "NNet.Game.SHeroTalentTreeSelectedEvent": 50,
    "NNet.Game.SSelectionDeltaEvent": 10,
    "NNet.Game.STriggerChatMessageEvent": 1,
    "NNet.Game.STriggerCutsceneEndSceneFiredEvent": 103,
    "NNet.Game.STriggerDialogControlEvent": 44,
    "NNet.Game.STriggerMouseMovedEvent": 110174,
    "NNet.Game.STriggerPingEvent": 53,
    "NNet.Game.STriggerSoundLengthSyncEvent": 10,
    "NNet.Game.STriggerSoundOffsetEvent": 1038,
    "NNet.Game.STriggerSoundtrackDoneEvent": 52,
    "NNet.Game.STriggerTransmissionCompleteEvent": 140,
    "NNet.Game.STriggerTransmissionOffsetEvent": 70,
    "NNet.Game.SUnitClickEvent": 425,
    "NNet.Game.SUserFinishedLoadingSyncEvent": 2,
    "NNet.Game.SUserOptionsEvent": 10
}
crorella commented 7 years ago

Sadly there is no way to get that :( The only thing I can get right now is the ability used (or attempted to use, if it's on cooldown) by a hero.

xmas commented 7 years ago

Even that would be great. Then we could stuff like, "You took Bone Spear on Xul, but only used it once" kind of thing.

crorella commented 7 years ago

yeah, that's possible, but is a lot of work because you need to build the map between abilityID and the actual ability and that map changes every patch.