Странная ситуация, не пойму почему код работает правильно.
В общем не получилось с рекурсией, я попробовал сделать это иным способом:
ArrPush($AActionName, "Город")
ArrPush($AActionName, "Таверна")
ArrPush($AActionName, 100)
ArrPush($AActionName, 100)
ArrPush($AActionName, "Таверна")
ArrPush($AActionName, "Окорок")
ArrPush($AActionName, 10)
ArrPush($AActionName, 10)
sub(Activate, $ActionName)
EnterToSubActivate:
print($ActionName)
$ActionIndex = 0
$ActionRecognized = 1
while (($ActionRecognized = 1) & ($ActionIndex < ArrSize($AActionName)/4))
if ($AActionName[$ActionIndex*4+1] = $ActionName)
$ActionRecognized = 0
ArrPush($ActivateVar, $ActionName)
ArrPush($ActivateVar, $ActionIndex)
ArrPush($ActivateVar, $ActionRecognized)
$ActionName = $AActionName[$ActionIndex*4]
Goto(EnterToSubActivate)
ExitFromSubActivate:
$ActionRecognized = ArrPop($ActivateVar)
$ActionIndex = ArrPop($ActivateVar)
$ActionName = ArrPop($ActivateVar)
Move($AActionName[$ActionIndex*4+2], $AActionName[$ActionIndex*4+3])
LClick(-1, -1)
else
Inc($ActionIndex)
end_if
end_cyc
Goto(ExitFromSubActivate)
end_sub
print("Start")
Activate("Окорок")
print("Finish")
Я не пойму, почему код у меня завершается?
Инструкция Goto(ExitFromSubActivate) должна в вечный цикл загонять код, но нет, все завершается вполне пристойно.
По ошибке внутренней что-ли?