Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add rune/ward spawn/placement and usage info #23

Closed
albertcui opened this issue Sep 24, 2014 · 7 comments
Closed

Add rune/ward spawn/placement and usage info #23

albertcui opened this issue Sep 24, 2014 · 7 comments
Assignees
Milestone

Comments

@albertcui
Copy link
Member

No description provided.

@albertcui
Copy link
Member Author

The combat log only shows when a rune is activated and doesn't account for illusion runes. We should probably use the combat log.

EntityCollection ent = match.getEntities();
Iterator<Entity> it = ent.getAllByDtName("DT_DOTA_Item_Rune");

Should return runes.

@howardchung
Copy link
Member

Now using the user messages to get rune info. . . but only rune bottling events are showing up

@howardchung
Copy link
Member

Tested getting the entities. I'm able to retrieve the rune entities but so far, not who picked them up.

@howardchung howardchung added this to the 2.0 milestone Jan 27, 2015
@howardchung howardchung changed the title Add rune spawn and usage info Add rune/ward spawn/placement and usage info Feb 12, 2015
@howardchung
Copy link
Member

http://wiki.zynox.net/Network_Information

Wards:
DT_DOTA_Item_ObserverWard
DT_DOTA_Item_SentryWard
DT_DOTA_NPC_Observer_Ward
DT_DOTA_NPC_Observer_Ward_TrueSight

Possibly the first two are inventory entities and the second two are actual placed entities?

@howardchung
Copy link
Member

Rjackson's Python code for wards:


wards_seen = []
r_ward_positions = []
d_ward_positions = []
for tick, string_tables, world in demo.stream(tick=5000):
  ward_dt = 'DT_DOTA_NPC_Observer_Ward'
  obs_ward = world.find_all_by_dt(ward_dt)
  if obs_ward:
    for ehandle, state in obs_ward.items():
      index, _ = _world.from_ehandle(ehandle)
      if index not in wards_seen:
          wards_seen.append(index)
          team = state[('DT_BaseEntity', 'm_iTeamNum')]
          cellX = state[('DT_DOTA_BaseNPC', 'm_cellX')] + state[('DT_DOTA_BaseNPC', 'm_vecOrigin')][0] / 128.0
          cellY = state[('DT_DOTA_BaseNPC', 'm_cellY')] + state[('DT_DOTA_BaseNPC', 'm_vecOrigin')][1] / 128.0
          pos = (cellX, cellY)
          if team == 2:
              r_ward_positions.append(pos)
          elif team == 3:
              d_ward_positions.append(pos)

@howardchung
Copy link
Member

Wards:
We can heatmap ward placements per team?
Should we do both sentries and observers or just observers?

Runes:
We can display how many runes of each type each player activated?
We can get data for how many runes of each type spawned, but not sure if it's worth the additional parse time.

@howardchung howardchung assigned howardchung and unassigned albertcui Feb 21, 2015
@howardchung howardchung modified the milestones: 1.4, 2.0 Feb 28, 2015
@howardchung
Copy link
Member

have the data now, just need to put in template:
runes activated/bottled
obs/sen placement heatmaps for each player

@howardchung howardchung modified the milestones: 1.5, 1.4 Mar 3, 2015
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants