While: различия между версиями
Tatikoma (обсуждение | вклад) (Новая страница: « == Описание == While - оператор цикла. Создает цикл, который выполняется до того момента, пока...») |
Tatikoma (обсуждение | вклад) |
||
Строка 2: | Строка 2: | ||
== Описание == | == Описание == | ||
While - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной(либо ложью при while_not). Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online). | While - оператор цикла. Создает цикл, который выполняется до того момента, пока условие является истиной(либо ложью при while_not). Выполняет операцию сравнения, а так же проверку цвета пикселя и последнего сообщения от сервера (для ultima online). | ||
− | + | <br>Для отрицания сравнения используется while _not. | |
− | + | <br>Для выхода из цикла используются операторы break и continue. | |
− | + | <br>Для операций сравнения используются знаки операций: >, <, =, <=, >=, != идентично <>. Так же используются логические операторы or, and, xor: | |
:or - логическое ИЛИ. Или один или другой или оба. | :or - логическое ИЛИ. Или один или другой или оба. | ||
:and - логическое И. И один и другой. | :and - логическое И. И один и другой. | ||
:xor - строгое логическое ИЛИ. Или один или другой, но не оба. | :xor - строгое логическое ИЛИ. Или один или другой, но не оба. | ||
Для указания приоритета нескольких операций используются круглые скобки: (, ). | Для указания приоритета нескольких операций используются круглые скобки: (, ). | ||
− | + | <br>В конце операции необходимо поставить end_while для корректного выполнения сценария. | |
== Синтаксис == | == Синтаксис == | ||
Привязка к окну: опционально. | Привязка к окну: опционально. | ||
− | + | <br>Работа со свернутым окном: частично. | |
== Примеры == | == Примеры == | ||
Строка 94: | Строка 94: | ||
[[For]] | [[For]] | ||
− | + | <br>[[Repeat]] | |
− | + | <br>[[Break]] | |
== История развития == | == История развития == | ||
'''0.99 alfa 8''' | '''0.99 alfa 8''' | ||
− | + | <br>Добавлен цикл while ... end_while: | |
− | while | + | while <коорд> <цвет> [цвет2] |
... | ... | ||
end_while | end_while | ||
− | Цвет в точке | + | Цвет в точке <коорд> равен <цвет>, если задан цвет2, то цвет точки проверяется на принадлежность диапазону от цвет до цвет2. |
− | while | + | while <параметр> <знак оп.> <знач.> |
... | ... | ||
end_while | end_while | ||
Параметры: hits,mana,stam,wght,ar, coordx,coordy либо переменные. | Параметры: hits,mana,stam,wght,ar, coordx,coordy либо переменные. | ||
− | + | <br>Поддерживаются следующие операции: >,<,=,<>. Между знаком операции и значениями должен быть разделитель. | |
− | while lastmsg | + | while lastmsg <последнее сообщение> |
... | ... | ||
end_while | end_while | ||
Строка 116: | Строка 116: | ||
'''1.05 beta 3''' | '''1.05 beta 3''' | ||
− | + | <br>Добавил возможность использования скобок в условных операторах: | |
− | while (#a > 1 and #a | + | while (#a > 1 and #a < 3) or ((#a = 1 and 130, 9 7295) or #a = 5) |
[[Категория:Условия]] | [[Категория:Условия]] | ||
[[Категория:Циклы]] | [[Категория:Циклы]] |
Текущая версия на 11:29, 28 августа 2019
Описание
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)