логика у тебя какаято корявая
ну пошёл ты на start1 а выхода от туда нет. после старт1 идёт старт2 и так далее до конца всей процедуры.
ну и язык бедноват. почитай хотя бы scripting.txt а ещё лучше документацию к языку Бейсик.
заметь так же что ты в IF-ах поставил очистку журнала после GOTO в результате чего её никогда не произойдёт.
ещё и после обрыва цикла он начнёт по всем подряд рунам бегать.
короче скрипт писался бездумно.
вот кусок переписал но только для того чтобы ты посмотрел внимательно, понял где ты не прав и написал по-своему.
Code:
sub recallme(rune)
start1:
UO.DeleteJournal()
UO.Exec("cast Recall "+rune)
wait(3500)
if UO.InJournal("the spell fizzles") then
goto start1
endif
end sub
sub shahta ()
DIM runes[10]
runes[1]="0x40008AEB"
runes[2]="0x40008AFC"
runes....
var i=0
while UO.Life > 40
if UO.InJournal("idu v shahtu") then
UO.DeleteJournal()
i=i+1
endif
if UO.InJournal("proba!!!!") then
recallme(runes[i])
endif
wend
recallme(runes[1])
end sub