Code: Select all
sub healingother()
repeat
while not uo.dead()
wait(200)
uo.UseType('0x0E21','0x0000')
uo.deletejournal()
uo.waittargetobject('0x00008E6E')
wait(1000)
repeat
until uo.injournal('put') or uo.injournal('fully')
wait(1000)
uo.print('3')
wait(1000)
uo.print('2')
wait(1000)
uo.print('1')
wait(1600)
wend
end if
end if
end sub
1. Для чего repeat и 2 ифа в конце?
2.
Code: Select all
uo.UseType('0x0E21','0x0000')
uo.deletejournal()
uo.waittargetobject('0x00008E6E')
Ловушка на прицел ставится до действия.
Code: Select all
uo.deletejournal()
uo.waittargetobject('0x00008E6E')
uo.UseType('0x0E21','0x0000')
3.
Code: Select all
repeat
until uo.injournal('put') or uo.injournal('fully')
Лагает из-за того что пока ждёт сообщений выполняет проверку на их наличие в журнале с минимально возможной задержкой что и приводит к таким лагам. wait(100) внутри цикла будет достаточно + используй динамическую задержку
Code: Select all
var k
k=0
repeat
k=k+1
wait(100)
until uo.injournal('put') or uo.injournal('fully') || k>100
тогда в случае того что если сообщения и не появятся то как только k достигнет значения =100, он выйдет из цикла
4. Используй табуляцию и учись правильно программировать- это будет удобно и для тебя и для других. Отступы после условных операторов и циклов на 1-4 пробела от первой буквы оператора(if,repeat,while,for) и когда закрываешь (end if,until,wend,next) то возвращаешься на такое же кол-во пробелов чтоб скрипт был более читабельным
Пример:
Code: Select all
repeat
If Then
If Then
If Then
If Then
Endif
Endif
Endif
Endif
If Then
If Then
Endif
If Then
Endif
Endif
until