While
Описание
While - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной(либо ложью при while_not). Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online).
Для отрицания сравнения используется while _not.
Для выхода из цикла используются операторы break и continue.
Для операций сравнения используются знаки операций: >, <, =, <=, >=, != идентично <>. Так же используются логические операторы or, and, xor:
- or - логическое ИЛИ. Или один или другой или оба.
- and - логическое И. И один и другой.
- xor - строгое логическое ИЛИ. Или один или другой, но не оба.
Для указания приоритета нескольких операций используются круглые скобки: (, ).
В конце операции необходимо поставить end_while для корректного выполнения сценария.
Синтаксис
Привязка к окну: опционально.
Работа со свернутым окном: частично.
Примеры
// Пример 1 set #i 2 while #i != 1 set #i #i * 2 msg #i end_while Результатом работы является умножение значения переменной #i на два, каждый раз, до того момента, пока значение переменной #i не станет равной единице, т.е. бесконечно.
// Пример 2. Бесконечный цикл // Здесь сделаем подготовку set #счетчик 1 msg На счетчике число: #счетчик , будем увеличивать... // А теперь зацикленный кусок скрипта while 1 = 1 // условие всегда будет выполняться, а значит цикл - бесконечный set #счетчик #счетчик + 1 // увеличим значение на 1 msg Теперь на счётчике число: #счетчик end_while
// Пример 3 while 329 289 14386954 // цикл будет выполняться пока присутствует цвет send {F1} // нажать F1 wait 500 // ждать 0,5 секунды end_while End_script
// Пример 4 while_not 329 289 14386954 // ждать пока не появится указанный цвет wait 10 end_while log Цвет найден End_script
// Пример 5 while 329, 289 14386954 and 517, 834 8582073 // цикл будет выполняться пока присутствуют оба цвета // нужные действия end_while End_script
// Пример 6 while 329, 289 14386954 or 517, 834 8582073 // цикл будет выполняться пока присутствует 1 из цветов или оба // нужные действия end_while End_script
// Пример 7 while 329, 289 14386954 xor 517, 834 8582073 // цикл будет выполняться пока присутствует 1 из цветов, но не оба // нужные действия end_while End_script
// Пример 8 while_not 329, 289 14386954 and 517, 834 8582073 // цикл будет выполняться пока не появятся оба цвета wait 20 end_while End_script
// Пример 9 while_not 329, 289 14386954 or 517, 834 8582073 // цикл будет выполняться пока не появится один из цветов или оба wait 20 end_while End_script
// Пример 10 // Выход из цикла через break while 1 = 1 // условие всегда будет выполняться, а значит цикл - бесконечный set #счетчик #счетчик + 1 // увеличим значение на 1 msg Теперь на счётчике число: #счетчик if #счетчик = 3 //если переменная '#счетчик' = 3 break //выходим из цикла end_if end_while msg Вышли из while End_script
Смотрите также
История развития
0.99 alfa 8
Добавлен цикл while ... end_while:
while <коорд> <цвет> [цвет2] ... end_while
Цвет в точке <коорд> равен <цвет>, если задан цвет2, то цвет точки проверяется на принадлежность диапазону от цвет до цвет2.
while <параметр> <знак оп.> <знач.> ... end_while
Параметры: hits,mana,stam,wght,ar, coordx,coordy либо переменные.
Поддерживаются следующие операции: >,<,=,<>. Между знаком операции и значениями должен быть разделитель.
while lastmsg <последнее сообщение> ... end_while
Сообщение от сервера можно писать не целиком.
1.05 beta 3
Добавил возможность использования скобок в условных операторах:
while (#a > 1 and #a < 3) or ((#a = 1 and 130, 9 7295) or #a = 5)