Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot _ Помогите в скрипте

Автор: denvercry 13.4.2018, 14:23

Есть часть скрипта

while 1139, 1032 0
wait 1s
end_while

Как дописать эту часть, так что бы цикл перестал повторятся по истечении времени а не условия?

что то типо:

while 1139, 1032 0 ore wait 15s
wait 1s
end_while

еще не могу понять как сделать так , что бы после старта скрипта не надо было тыкать в окно превязаное к пилоту. если не тыкнуть то команды скрипта типа left не работают (тоесть курсор наводится но не кликает) sad.gif

Автор: cirus 13.4.2018, 14:40

Код
set #time timer + 4000    // 4000 = 4 секунды
while 1139, 1032 0 and #time > timer // пока найден цвет и не вышло время
wait 1s
end_while
end_script

Цитата
что бы после старта скрипта не надо было тыкать в окно превязаное к пилоту

http://uopilot.tati.pro/index.php?title=Findwindow
Если окно дочернее то: http://uopilot.tati.pro/index.php?title=Поиск_пути_к_дочернему_окну

Автор: denvercry 13.4.2018, 16:43

Спасибо с таймером все понятно. очень помогло.
не понятно с окнами "какая разница между дочерним окном и не дочерним"

while 1227, 135 8029058
wait 1300
send {esc}
wait 1300
move 955, 621
wait 1305
left 955, 621
wait 12s
.........
end_while

Какую команду нужно вписать вместо ......... , что бы запустить скрипт заново или с какой то определенной строки



Автор: denvercry 13.4.2018, 16:58

wait 1523
move 147, 793
wait 1623
left 147, 793
wait 1421
move 150, 898
:start1 //<<<<<<
wait 1457
left 150, 898
wait 1422
move 150, 994
wait 1453
left 150, 994
wait 15s
while 1227, 135 8029058
wait 1300
send {esc}
wait 1300
move 955, 621
wait 1305
left 955, 621
wait 12s
goto start1
end_whilewhile 1139, 1032 0
wait 1332
end_while


будет ли такой скрипт запускать скрипт со строки Start1?

Автор: cirus 14.4.2018, 1:53

Цитата
не понятно с окнами "какая разница между дочерним окном и не дочерним"

Так чтобы попроще, над окном пилота наведите курсор на заголовок и нажмите Ctrl+A, это родительское окно, все остальные дочерние, т. е. окно редактора, панелька с вкладками, скриптами и прочие. Тоже самое во многих браузерах, кроме мозилы. Браузер это родительское окно, игра запущенная в нём это дочернее окно.
Цитата
будет ли такой скрипт запускать скрипт со строки Start1?

Запускается скрипт всегда с первой строки. По метке можно перейти к какому-то месту в скрипте.
Цитата
end_whilewhile 1139, 1032 0

Что за каша.
Цитата
что бы запустить скрипт заново

Не совсем понятно, перейти к началу скрипта или перезапустить его. Это не одно и тоже.

Автор: denvercry 14.4.2018, 13:27

And_whilewhile - копи паст плохо сработал )

Waitfortarget - не работает ( по крайне мере у меня) Waitfortarget 1084, 624 16777215

Не могу придумать как сделать так, что бы скрипт не залипал на одном месте типо:

while_not 1084, 624 16777215
wait 6s
end_while

То есть, по сути мне нужно сделать так, что бы скрипт останавливался до появления белого цвета в определенной точке. При этом не ждал дольше 2 мнут и запускал себя заного:
:s1
wait 8000 + random (2500)
move 1044, 626 //канцел возврата в игру
wait 1000 + random (1000)
left 1044, 626
wait 1000 + random (1000)
move 147, 793
wait 1000 + random (1000)
left 147, 793
wait 1000 + random (1000)
move 150, 898
wait 1000 + random (1000)
left 150, 898
wait 1000 + random (1000)
move 150, 994
wait 1000 + random (1000)
left 150, 994
wait 15000 + random (1000)
while 1227, 135 8029058 //повис поиск мачмейкинг
wait 1000 + random (1000)
send {esc}
wait 1000 + random (1000)
move 955, 621
wait 1000 + random (1000)
left 955, 621
wait 12s + random (1000)
goto s1
end_while
while 223, 624 11461884 //сервер перегружен
wait 1000 + random (1000)
send {esc}
wait 1000 + random (1000)
move 955, 621
wait 1000 + random (1000)
left 955, 621
wait 12000 + random (1000)
goto s1
end_while
Waitfortarget 1084, 624 16777215 // проблемное место !!!!!
while 1084, 624 16777215 // высадка
wait 16000 + random (1000)
send_down f 666
send_up f
wait 1000 + random (500)
end_while
wait 57000 + random (2000)
send_down l 8s
send_up l
send_down z
send_up z
wait 2000 + random (1000)
send_down w
wait 17000 + random (200)
if 763, 173 51448
send {esc}
wait 1000 + random (1000)
move 905, 590
wait 1000 + random (1000)
left 905, 590
wait 1000 + random (1000)
left 905, 590
wait 1000 + random (1000)
send_up w
goto s1
end_if
goto s1

В проблемном месте пробовал так;

set #time timer + 120000
while_not 1084, 624 16777215 and #time > timer // !!!!!!!!!!!!!!
wait 6s
end_while
send f


C and повторяется бесконечно, с or пролетает не задерживаясь c xor тоже.

Делал даже так и через break:

set #time timer 500
while_not 1084, 624 16777215 // высадка
wait 1s
set #time timer 500
if time > timer
end_while
end_if
wait 1000 + random (1000)
send c

и так;

end_while
set #time timer +12000
while_not 1084, 624 16777215 or time > timer // высадка
wait 5000
end_while
wait 16000 + random (1000)
send217 f
wait 58000 + random (2000)
send217_down l 8s
wait 8s
send217_up l



Автор: DarkMaster 14.4.2018, 15:40

Цитата
Waitfortarget

Это только для ульимы онлайн.

Автор: cirus 14.4.2018, 18:02

Цитата
что бы скрипт останавливался до появления белого цвета в определенной точке. При этом не ждал дольше 2 мнут

Код
set #time timer + 120000
while_not 1084, 624 16777215 or #time < timer
    wait 1s
end_while
if #time <= timer  // если вышло время
    // какие-то действия
end_if
end_script

Или более понятный вариант:
Код
set #time timer + 120000
while_not 1084, 624 16777215   // пока не появился цвет
    wait 1s
    if #time < timer          // если прошло 2 минуты выходим из цикла
        break
    end_if
end_while
if #time <= timer  // если вышло время
    // какие-то действия
end_if
end_script

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)