Просмотр полной версии : Вложенные if'ы в UOPilot.
Passimense
12.06.2004, 23:01
Допустимы ли сабж?
Например такой скрипт работает некорректно:
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ой строчке где шаг не указан :) for #i 0 20 1 скорее, не так ли? :) И вообще тут лучше рипит поставить...
Passimense
12.06.2004, 23:12
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
Passimense
12.06.2004, 23:17
А если поставить репит, тогда надо будет заводить итерационную переменную i, которая в цикле for есть по умолчанию.
По большому счету там эта i не особо то и нужна =)
Попробуй вейты перед проверкой на месагу поставить по 100. Убрать задержку 4000 при посылке кнопки, и в репит загнать проверки на месаги все.
ЗЫ: может таки напишешь что ты хочешь этим скриптом сделать? =)
Passimense
12.06.2004, 23:39
если поставить проверку на все мессаги, слишком длинный скрипт получается.
а хочется, чтобы было как можно короче и как можно оптимальнее по времени.
скрипт, который сейчас работает:
(я думаю, из него несложно понять, для чего он :))
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
Powered by vBulletin™ Version 4.0.3 Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. Перевод: zCarot