Code:
Func LoadAttributes($aAttributesArray, $aHeroNumber = 0)
Local $lPrimaryAttribute
Local $lDeadlock
Local $lHeroID = GetHeroID($aHeroNumber)
Local $lLevel
$lPrimaryAttribute = GetProfPrimaryAttribute(GetHeroProfession($aHeroNumber))
If $aAttributesArray[0][0] <> 0 And GetHeroProfession($aHeroNumber, True) <> $aAttributesArray[0][0] And GetHeroProfession($aHeroNumber) <> $aAttributesArray[0][0] Then
Do
$lDeadlock = TimerInit()
ChangeSecondProfession($aAttributesArray[0][0], $aHeroNumber)
Do
Sleep(20)
Until GetHeroProfession($aHeroNumber, True) == $aAttributesArray[0][0] Or TimerDiff($lDeadlock) > 5000
Until GetHeroProfession($aHeroNumber, True) == $aAttributesArray[0][0]
EndIf
$aAttributesArray[0][0] = $lPrimaryAttribute
For $i = 0 To UBound($aAttributesArray) - 1
If $aAttributesArray[$i][1] > 12 Then $aAttributesArray[$i][1] = 12
If $aAttributesArray[$i][1] < 0 Then $aAttributesArray[$i][1] = 0
Next
While GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber) > $aAttributesArray[0][1]
$lLevel = GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber)
$lDeadlock = TimerInit()
DecreaseAttribute($lPrimaryAttribute, $aHeroNumber)
Do
Sleep(20)
Until GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber) < $lLevel Or TimerDiff($lDeadlock) > 5000
TolSleep()
WEnd
For $i = 1 To UBound($aAttributesArray) - 1
While GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber) > $aAttributesArray[$i][1]
$lLevel = GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber)
$lDeadlock = TimerInit()
DecreaseAttribute($aAttributesArray[$i][0], $aHeroNumber)
Do
Sleep(20)
Until GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber) < $lLevel Or TimerDiff($lDeadlock) > 5000
TolSleep()
WEnd
Next
For $i = 0 To 44
If GetAttributeByID($i, False, $aHeroNumber) > 0 Then
If $i = $lPrimaryAttribute Then ContinueLoop
For $j = 1 To UBound($aAttributesArray) - 1
If $i = $aAttributesArray[$j][0] Then ContinueLoop 2
Local $lDummy ;AutoIt 3.8.8.0 Bug
Next
While GetAttributeByID($i, False, $aHeroNumber) > 0
$lLevel = GetAttributeByID($i, False, $aHeroNumber)
$lDeadlock = TimerInit()
DecreaseAttribute($i, $aHeroNumber)
Do
Sleep(20)
Until GetAttributeByID($i, False, $aHeroNumber) < $lLevel Or TimerDiff($lDeadlock) > 5000
TolSleep()
WEnd
EndIf
Next
While GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber) < $aAttributesArray[0][1]
$lLevel = GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber)
$lDeadlock = TimerInit()
IncreaseAttribute($lPrimaryAttribute, $aHeroNumber)
Do
Sleep(20)
Until GetAttributeByID($lPrimaryAttribute, False, $aHeroNumber) > $lLevel Or TimerDiff($lDeadlock) > 5000
TolSleep()
WEnd
For $i = 1 To UBound($aAttributesArray) - 1
While GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber) < $aAttributesArray[$i][1]
$lLevel = GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber)
$lDeadlock = TimerInit()
IncreaseAttribute($aAttributesArray[$i][0], $aHeroNumber)
Do
Sleep(20)
Until GetAttributeByID($aAttributesArray[$i][0], False, $aHeroNumber) > $lLevel Or TimerDiff($lDeadlock) > 5000
TolSleep()
WEnd
Next
EndFunc ;==>LoadAttributes
LoadAttributes not working for Hero. Any body know how fix it?