Code:
;~ Description: Returns level of an attribute.
Func GetAttributeByID($aAttributeID, $aWithRunes = False, $aHeroNumber = 0)
Local $lAgentID = GetHeroID($aHeroNumber)
Local $lBuffer
Local $lOffset[5]
$lOffset[0] = 0
$lOffset[1] = 0x18
$lOffset[2] = 0x2C
$lOffset[3] = 0xAC
For $i = 0 To GetHeroCount()
$lOffset[4] = 0x3D8 * $i
$lBuffer = MemoryReadPtr($mBasePointer, $lOffset)
If $lBuffer[1] == $lAgentID Then
If $aWithRunes Then
$lOffset[4] = 0x3D8 * $i + 0x14 * $aAttributeID + 0xC
Else
$lOffset[4] = 0x3D8 * $i + 0x14 * $aAttributeID + 0x8
EndIf
$lBuffer = MemoryReadPtr($mBasePointer, $lOffset)
Return $lBuffer[1]
EndIf
Next
EndFunc ;==>GetAttributeByID
Why the function not work for hero?