{"action":"closed","issue":{"url":"https://api.github.com/repos/yasp-dota/yasp/issues/24","labels_url":"https://api.github.com/repos/yasp-dota/yasp/issues/24/labels{/name}","comments_url":"https://api.github.com/repos/yasp-dota/yasp/issues/24/comments","events_url":"https://api.github.com/repos/yasp-dota/yasp/issues/24/events","html_url":"https://github.com/yasp-dota/yasp/issues/24","id":43712919,"number":24,"title":"Get hero information over time","user":{"login":"albertcui","id":3838552,"avatar_url":"https://avatars.githubusercontent.com/u/3838552?v=3","gravatar_id":"","url":"https://api.github.com/users/albertcui","html_url":"https://github.com/albertcui","followers_url":"https://api.github.com/users/albertcui/followers","following_url":"https://api.github.com/users/albertcui/following{/other_user}","gists_url":"https://api.github.com/users/albertcui/gists{/gist_id}","starred_url":"https://api.github.com/users/albertcui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertcui/subscriptions","organizations_url":"https://api.github.com/users/albertcui/orgs","repos_url":"https://api.github.com/users/albertcui/repos","events_url":"https://api.github.com/users/albertcui/events{/privacy}","received_events_url":"https://api.github.com/users/albertcui/received_events","type":"User","site_admin":false},"labels":[],"state":"closed","locked":false,"assignee":{"login":"albertcui","id":3838552,"avatar_url":"https://avatars.githubusercontent.com/u/3838552?v=3","gravatar_id":"","url":"https://api.github.com/users/albertcui","html_url":"https://github.com/albertcui","followers_url":"https://api.github.com/users/albertcui/followers","following_url":"https://api.github.com/users/albertcui/following{/other_user}","gists_url":"https://api.github.com/users/albertcui/gists{/gist_id}","starred_url":"https://api.github.com/users/albertcui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertcui/subscriptions","organizations_url":"https://api.github.com/users/albertcui/orgs","repos_url":"https://api.github.com/users/albertcui/repos","events_url":"https://api.github.com/users/albertcui/events{/privacy}","received_events_url":"https://api.github.com/users/albertcui/received_events","type":"User","site_admin":false},"milestone":{"url":"https://api.github.com/repos/yasp-dota/yasp/milestones/3","labels_url":"https://api.github.com/repos/yasp-dota/yasp/milestones/3/labels","id":939625,"number":3,"title":"2.0","description":"","creator":{"login":"albertcui","id":3838552,"avatar_url":"https://avatars.githubusercontent.com/u/3838552?v=3","gravatar_id":"","url":"https://api.github.com/users/albertcui","html_url":"https://github.com/albertcui","followers_url":"https://api.github.com/users/albertcui/followers","following_url":"https://api.github.com/users/albertcui/following{/other_user}","gists_url":"https://api.github.com/users/albertcui/gists{/gist_id}","starred_url":"https://api.github.com/users/albertcui/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/albertcui/subscriptions","organizations_url":"https://api.github.com/users/albertcui/orgs","repos_url":"https://api.github.com/users/albertcui/repos","events_url":"https://api.github.com/users/albertcui/events{/privacy}","received_events_url":"https://api.github.com/users/albertcui/received_events","type":"User","site_admin":false},"open_issues":13,"closed_issues":10,"state":"open","created_at":"2015-01-17T06:38:56Z","updated_at":"2015-02-12T20:51:44Z","due_on":"2015-03-16T04:00:00Z","closed_at":null},"comments":3,"created_at":"2014-09-24T04:14:43Z","updated_at":"2015-02-12T20:51:44Z","closed_at":"2015-02-12T20:51:44Z","body":"This code snippet will get hero information at the current time in the match. As far as I can tell, if m_hReplicatingOtherHeroModel equals that constant, it's an illusion.\r\n```java\r\n        import com.google.common.base.Predicate;\r\n\r\n        Predicate<Entity> isHeroDT = new Predicate<Entity>() {\r\n            @Override public boolean apply(Entity e) {\r\n                return e.getDtClass().getDtName().indexOf(\"DT_DOTA_Unit_Hero\") == 0;\r\n            }\r\n        };\r\n\r\n       Iterator<Entity> heroes = match.getEntities().getAllByPredicate(isHeroDT);\r\n\r\n       while(heroes.hasNext()) {\r\n            //Does this work for all matches?\r\n            int num = heroes.next().getProperty(\"m_hReplicatingOtherHeroModel\");\r\n            //IS THIS A CONSTANT?\r\n            if(num == 2097151){\r\n                  count++;\r\n            }\r\n       }\r\n```\r\n\r\nInfo returned from each entity:\r\n\r\n-- Entity [index=1316, serial=224, dtClass=DT_DOTA_Unit_Hero_Broodmother]\r\nm_vecOrigin = (22.0, 29.0)\r\nm_angRotation[1] = 98.43751\r\nm_cellX = 177\r\nm_cellY = 107\r\nm_iHealth = 651\r\nm_vecOrigin[2] = 0.0\r\nm_cellZ = 130\r\nm_cellbits = 7\r\nm_nNewSequenceParity = 1\r\nm_nResetEventsParity = 1\r\nm_nMuzzleFlashParity = 0\r\nm_flMana = 161.01965\r\nm_nUnitState = 50331648\r\nm_iTaggedAsVisibleByTeam = 26\r\nm_anglediff = 0\r\nm_fFlags = 0\r\nm_NetworkActivity = 422\r\nm_NetworkSequenceIndex = 2\r\nm_nTotalDamageTaken = 0\r\nm_iCurrentXP = 2321\r\nbcc_localdata.m_hMyWeapons.0016 = 2097151\r\nbcc_localdata.m_hMyWeapons.0017 = 2097151\r\nbcc_localdata.m_hMyWeapons.0018 = 2097151\r\nbcc_localdata.m_hMyWeapons.0019 = 2097151\r\nbcc_localdata.m_hMyWeapons.0020 = 2097151\r\nbcc_localdata.m_hMyWeapons.0021 = 2097151\r\nbcc_localdata.m_hMyWeapons.0022 = 2097151\r\nbcc_localdata.m_hMyWeapons.0023 = 2097151\r\nbcc_localdata.m_hMyWeapons.0024 = 2097151\r\nbcc_localdata.m_hMyWeapons.0025 = 2097151\r\nbcc_localdata.m_hMyWeapons.0026 = 2097151\r\nbcc_localdata.m_hMyWeapons.0027 = 2097151\r\nbcc_localdata.m_hMyWeapons.0028 = 2097151\r\nbcc_localdata.m_hMyWeapons.0029 = 2097151\r\nbcc_localdata.m_hMyWeapons.0030 = 2097151\r\nbcc_localdata.m_hMyWeapons.0031 = 2097151\r\nbcc_localdata.m_hMyWeapons.0032 = 2097151\r\nbcc_localdata.m_hMyWeapons.0033 = 2097151\r\nbcc_localdata.m_hMyWeapons.0034 = 2097151\r\nbcc_localdata.m_hMyWeapons.0035 = 2097151\r\nbcc_localdata.m_hMyWeapons.0036 = 2097151\r\nbcc_localdata.m_hMyWeapons.0037 = 2097151\r\nbcc_localdata.m_hMyWeapons.0038 = 2097151\r\nbcc_localdata.m_hMyWeapons.0039 = 2097151\r\nbcc_localdata.m_hMyWeapons.0040 = 2097151\r\nbcc_localdata.m_hMyWeapons.0041 = 2097151\r\nbcc_localdata.m_hMyWeapons.0042 = 2097151\r\nbcc_localdata.m_hMyWeapons.0043 = 2097151\r\nbcc_localdata.m_hMyWeapons.0044 = 2097151\r\nbcc_localdata.m_hMyWeapons.0045 = 2097151\r\nbcc_localdata.m_hMyWeapons.0046 = 2097151\r\nbcc_localdata.m_hMyWeapons.0047 = 2097151\r\nbcc_localdata.m_flNextAttack = 0.0\r\nm_hAbilities.0000 = 1795362\r\nm_hAbilities.0001 = 845089\r\nm_hAbilities.0002 = 445728\r\nm_hAbilities.0003 = 1965343\r\nm_hAbilities.0004 = 1543454\r\nm_hAbilities.0005 = 2097151\r\nm_hAbilities.0006 = 2097151\r\nm_hAbilities.0007 = 2097151\r\nm_hAbilities.0008 = 2097151\r\nm_hAbilities.0009 = 2097151\r\nm_hAbilities.0010 = 2097151\r\nm_hAbilities.0011 = 2097151\r\nm_hAbilities.0012 = 2097151\r\nm_hAbilities.0013 = 2097151\r\nm_hAbilities.0014 = 2097151\r\nm_hAbilities.0015 = 2097151\r\nm_ModifierManager.m_hModifierParent = 460068\r\nm_Inventory.m_hItems.0000 = 121821\r\nm_Inventory.m_hItems.0001 = 1025149\r\nm_Inventory.m_hItems.0002 = 2097151\r\nm_Inventory.m_hItems.0003 = 1049602\r\nm_Inventory.m_hItems.0004 = 2097151\r\nm_Inventory.m_hItems.0005 = 2097151\r\nm_Inventory.m_hItems.0006 = 2097151\r\nm_Inventory.m_hItems.0007 = 2097151\r\nm_Inventory.m_hItems.0008 = 2097151\r\nm_Inventory.m_hItems.0009 = 2097151\r\nm_Inventory.m_hItems.0010 = 2097151\r\nm_Inventory.m_hItems.0011 = 2097151\r\nm_Inventory.m_hItems.0012 = 2097151\r\nm_Inventory.m_hItems.0013 = 2097151\r\nm_Inventory.m_iParity = 12\r\nm_Inventory.m_hInventoryParent = 460068\r\nm_Inventory.m_bStashEnabled = 1\r\nm_Inventory.m_hTransientCastItem = 2097151\r\nm_hMyWearables.lengthproxy.lengthprop20 = 4\r\nm_hMyWearables.0000 = 1826074\r\nm_hMyWearables.0001 = 1260827\r\nm_hMyWearables.0002 = 703772\r\nm_hMyWearables.0003 = 658717\r\nm_hMyWearables.0004 = 0\r\nm_hMyWearables.0005 = 0\r\nm_hMyWearables.0006 = 0\r\nm_hMyWearables.0007 = 0\r\nm_hMyWearables.0008 = 0\r\nm_hMyWearables.0009 = 0\r\nm_hMyWearables.0010 = 0\r\nm_hMyWearables.0011 = 0\r\nm_hMyWearables.0012 = 0\r\nm_hMyWearables.0013 = 0\r\nm_hMyWearables.0014 = 0\r\nm_hMyWearables.0015 = 0\r\nm_hMyWearables.0016 = 0\r\nm_hMyWearables.0017 = 0\r\nm_hMyWearables.0018 = 0\r\nm_hMyWearables.0019 = 0\r\nm_flCreateTime = 0.0\r\nm_ubInterpolationFrame = 1\r\nbcc_localdata.m_hMyWeapons.0003 = 2097151\r\nm_nModelIndex = 312\r\nm_nRenderFX = 0\r\nm_nRenderMode = 0\r\nm_fEffects = 16\r\nm_clrRender = -1\r\nm_iTeamNum = 3\r\nm_CollisionGroup = 9\r\nm_flElasticity = 1.0\r\nm_flShadowCastDistance = 0.0\r\nm_hOwnerEntity = 1599490\r\nm_hEffectEntity = 2097151\r\nmoveparent = 2097151\r\nm_iParentAttachment = 0\r\nm_iName = \r\nmovetype = 0\r\nmovecollide = 0\r\nm_iTextureFrameIndex = 0\r\nm_bSimulatedEveryTick = 1\r\nm_bAnimatedEveryTick = 0\r\nm_bAlternateSorting = 0\r\nm_fadeMinDist = 0.0\r\nm_fadeMaxDist = 0.0\r\nm_flFadeScale = 1.0\r\nm_nMinCPULevel = 0\r\nm_nMaxCPULevel = 0\r\nm_nMinGPULevel = 0\r\nm_nMaxGPULevel = 0\r\nm_nSkin = 0\r\nm_nBody = 0\r\nm_flModelScale = 0.93\r\nm_flPlaybackRate = 1.4404297\r\nm_bClientSideAnimation = 1\r\nm_bClientSideFrameReset = 0\r\nm_bClientSideRagdoll = 0\r\nbcc_localdata.m_hMyWeapons.0004 = 2097151\r\nbcc_localdata.m_hMyWeapons.0005 = 2097151\r\nbcc_localdata.m_hMyWeapons.0006 = 2097151\r\nm_hLightingOrigin = 2097151\r\nm_flFrozen = 0.0\r\nm_hActiveWeapon = 2097151\r\nm_iCurrentLevel = 6\r\nm_iCustomXPValue = 0\r\nm_iIsControllableByPlayer = 128\r\nm_bIsPhantom = 0\r\nm_bIsAncient = 0\r\nm_bStolenScepter = 0\r\nm_bIsNeutralUnitType = 0\r\nm_bIsSummoned = 0\r\nm_bCanBeDominated = 1\r\nm_bHasUpgradeableAbilities = 0\r\nbcc_localdata.m_hMyWeapons.0000 = 2097151\r\nm_flHealthThinkRegen = 8.253967\r\nm_iMaxHealth = 701\r\nm_iAttackCapabilities = 1\r\nm_iDayTimeVisionRange = 1800\r\nm_iNightTimeVisionRange = 800\r\nbcc_localdata.m_hMyWeapons.0007 = 2097151\r\nm_flMaxMana = 364.04443\r\nm_flManaThinkRegen = 2.3809547\r\nm_iUnitNameIndex = 61\r\nm_iDamageMin = 55\r\nm_iDamageMax = 61\r\nm_iDamageBonus = 6\r\nm_lifeState = 0\r\nbcc_localdata.m_hMyWeapons.0008 = 2097151\r\nbcc_localdata.m_hMyWeapons.0009 = 2097151\r\nm_iCurShop = 6\r\nbcc_localdata.m_hMyWeapons.0010 = 2097151\r\nbcc_localdata.m_hMyWeapons.0011 = 2097151\r\nm_Collision.m_nSolidType = 2\r\nbcc_localdata.m_hMyWeapons.0001 = 2097151\r\nm_Collision.m_nSurroundType = 0\r\nm_Collision.m_triggerBloat = 0\r\nbcc_localdata.m_hMyWeapons.0002 = 2097151\r\nm_angRotation[0] = 0.70588684\r\nm_Collision.m_usSolidFlags = 16\r\nbcc_localdata.m_hMyWeapons.0012 = 2097151\r\nbcc_localdata.m_hMyWeapons.0013 = 2097151\r\nm_iBotDebugData = 0\r\nm_bShouldDoFlyHeightVisual = 1\r\nbcc_localdata.m_hMyWeapons.0014 = 2097151\r\nbcc_localdata.m_hMyWeapons.0015 = 2097151\r\nm_flRespawnTime = 0.0\r\nm_flRespawnTimePenalty = 0.0\r\nm_iAbilityPoints = 0\r\nm_flStrength = 29.5\r\nm_flAgility = 29.000004\r\nm_flIntellect = 28.0\r\nm_flStrengthTotal = 29.5\r\nm_flAgilityTotal = 29.000004\r\nm_flIntellectTotal = 28.0\r\nm_iRecentDamage = 0\r\nm_iPlayerID = 7\r\nm_bReincarnating = 0\r\nm_flSpawnedAt = 140.23433\r\nm_hReplicatingOtherHeroModel = 2097151\r\nm_hEconConsumableAbility = 2097151\r\nm_bCustomKillEffect = 0\r\n"}}