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

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

UoKit.com Форумы _ UO Pilot _ повтор цикла while

Автор: dimas 12.10.2019, 11:20

Вообщем нужно повторять цикл while, допустим 10 раз
repeat 10
while (координаты и цвет)
left... и далее что сделать
end_while
end_repeat
end_script

Проблема в том, что не ждет цвета в определенных координатах и просто прогоняет 10 раз это дело и останавливается, хотя если написать просто
while (координаты и цвет)
left... и далее что сделать
end_while

он ждет цвет, делает действие и снова ждет цвет.

Пробовал еще так написать:
while 1 = 1 and 823, 314 29351 // условие всегда будет выполняться, а значит цикл - бесконечный
set #счетчик #счетчик + 1 // увеличим значение на 1
set #x 821 + random(30)
set #y 310+ random(5)
left #x, #y
if #счетчик = 2 //если переменная '#счетчик' = 2
break //выходим из цикла
end_if
end_while
End_script

Тоже самое, быстро прогоняет и останавливается.

Как реализовать?

Автор: Fors1k 12.10.2019, 12:58

В твоем скрипте ему приказано ждать пока цвет пропадет. Для ожидания появления цвета:

Код
repeat 10                    // повторить 10 раз
    while_not 823, 314 29351 // ждать цвет
    end_while
    set #x 821 + random(30)
    set #y 310+ random(5)
    left #x, #y
end_repeat
end_script

Автор: dimas 12.10.2019, 14:40

Цитата(Fors1k @ 12.10.2019, 12:58) *

В твоем скрипте ему приказано ждать пока цвет пропадет. Для ожидания появления цвета:
Код
repeat 10                    // повторить 10 раз
    while_not 823, 314 29351 // ждать цвет
    end_while
    set #x 821 + random(30)
    set #y 310+ random(5)
    left #x, #y
end_repeat
end_script



спасибо.
не внимательно прочитал про while_not

Автор: cirus 12.10.2019, 17:01

Цитата
while_not 823, 314 29351 // ждать цвет
end_while

Добавьте wait в цикл, чтобы не грузить проц.
Код
while_not 823, 314 29351 // ждать цвет
    wait 10
end_while

Автор: Fors1k 12.10.2019, 17:36

Цитата(cirus @ 12.10.2019, 17:01) *

Добавьте wait в цикл, чтобы не грузить проц.
Код
while_not 823, 314 29351 // ждать цвет
    wait 10
end_while


А пауза между чтением строк 100 мс не решает этот вопрос? Или wait 10 тут все равно может сыграть роль?

Автор: cirus 12.10.2019, 17:54

Цитата
А пауза между чтением строк 100 мс не решает этот вопрос?

Решает, только всегда ставлю её 0, просто в нужных местах добавлены wait.

Автор: Fors1k 12.10.2019, 18:08

Цитата(cirus @ 12.10.2019, 17:54) *

Решает, только всегда ставлю её 0, просто в нужных местах добавлены wait.

Хм, знаешь, я тут глянул, и с wait 10 нагрузка 0 - 0.1%, а без 0.1 - 0.3% (даже если паузу поднять со 100мс до 150мс, будто количество строк осталось тем же). Странно. А может и показалось, просто совпало...

Автор: DarkMaster 17.10.2019, 9:46

Цитата
Решает, только всегда ставлю её 0, просто в нужных местах добавлены wait.

Моя школа
Цитата
А может и показалось, просто совпало

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

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