|
|
|
Oskom Forums Добро пожаловать на Oskom Forums.
|
-
Вложенные if'ы в UOPilot.
Допустимы ли сабж?
Например такой скрипт работает некорректно:
for #i 0 20
send f3 4000
if #i > 0
if lastmsg you must wait
continue
end_if
if lastmsg you fail
continue
end_if
break
end_if
end_for
send f1 200
не реагирует на if lastmsg
-
не беспокойте мертвых
-
1. А чего тут можно намудрить?
2. В первой строке нет ошибки: шаг - необязательный параметр (по умолчанию 1).
for #i 0 20 // цикл от 0 до 20
send f3 4000 // некоторое действие
if #i > 0 // если не первый шаг цикла, то
if lastmsg you must wait // если поторопились ждем еще 4с
continue
end_if
if lastmsg you fail // если не вышло, пробуем еще раз
continue
end_if
break // если все получилось, прерываем цикл и идем все сначала
end_if
end_for
send f1 200
-
А если поставить репит, тогда надо будет заводить итерационную переменную i, которая в цикле for есть по умолчанию.
-
не беспокойте мертвых
По большому счету там эта i не особо то и нужна =)
Попробуй вейты перед проверкой на месагу поставить по 100. Убрать задержку 4000 при посылке кнопки, и в репит загнать проверки на месаги все.
ЗЫ: может таки напишешь что ты хочешь этим скриптом сделать? =)
-
если поставить проверку на все мессаги, слишком длинный скрипт получается.
а хочется, чтобы было как можно короче и как можно оптимальнее по времени.
скрипт, который сейчас работает:
(я думаю, из него несложно понять, для чего он )
say all release
repeat 20
send f3 1000 // use skill taming LastTarget
if lastmsg you fail
break
end_if
if lastmsg you are too far
break
end_if
if lastmsg already
break
end_if
if lastmsg you are your
break
end_if
if lastmsg you must wait
wait 4000
continue
end_if
wait 4000
if lastmsg it seems
break
end_if
if lastmsg remembers you
break
end_if
end_repeat
send f1 200 / TargetNext
Ваши права
- Вы не можете создавать новые темы
- Вы не можете отвечать в темах
- Вы не можете прикреплять вложения
- Вы не можете редактировать свои сообщения
Правила форума
|