Тут ведь дело вот в чем, покажу для начала на примерах.
$arrX[0] = 0
SUB(pointsCalc, $rx)
setvar($rx, 4)
END_SUB
pointsCalc("$arrX[$i]")
print($arrX[$i])
halt
ОШИБКА
$arrX[0] = 0
SUB(pointsCalc, $rx)
setvar($rx, 4)
END_SUB
pointsCalc("$arrX[0]")
print($arrX[$i])
halt
НЕ ОШИБКА, работает верно.
В чем разница - разные параметры в setvar. В первом случае это "$arrX[$i]", тоесть тут нужно определить еще и переменную $i, а кликерман как оказалось, так не умеет. Во втором случае это уже "$arrX[0]" - готовый элемент массива, индекс прописан цифрой а не переменной.
Выход из положения - перед вызовом подпрограммы нужно сформировать строку имени элемента массива, но чтоб в качестве индекса там была цифра, а не переменная.
$arrX[0] = 0
SUB(pointsCalc, $rx)
setvar($rx, 4)
END_SUB
//костыль
$str_arrX = strconcat("$arrX[", $i, "]") // $str_arrX = "$arrX[0]"
pointsCalc($str_arrX)
print($arrX[$i])
halt
А вообще, не понятно, зачем тут сетвар? Как говорил Vint, скорее всего тут можно и без него.
Простейшее, из того что дано:
SUB(pointsCalc, $x1, $y1, $x2, $y2, $time)
$tmpx = ($x2-$x1)*($time/100)+$x1
$tmpy = ($y2-$y1)*($time/100)+$y1
$arrX[$i] = 4
$arrY[$i] = 5
END_SUB
pointsCalc($pointsX[$i], $pointsY[$i], $pointsX[$i + 1], $pointsY[$i + 1], $time)
Будет работать также как и с setvar.