If (Lua): различия между версиями

Материал из UoPilot
Перейти к навигации Перейти к поиску
(Новая страница: «== Описание == '''if''' - условный оператор содержит логическое выражение. Позволяет выполнят...»)
 
 
(не показана 1 промежуточная версия 1 участника)
Строка 1: Строка 1:
 
== Описание ==
 
== Описание ==
 
'''if''' - условный оператор содержит логическое выражение. Позволяет выполнять определенный код в зависимости от результатов некоторого условия. Так же выполняет проверку последнего сообщения от сервера (для ultima online). Операция принимает вид сравнения.
 
'''if''' - условный оператор содержит логическое выражение. Позволяет выполнять определенный код в зависимости от результатов некоторого условия. Так же выполняет проверку последнего сообщения от сервера (для ultima online). Операция принимает вид сравнения.
<br>Если логическое выражение истинно (true) - будет выполнен код. Если ложно (false)- код выполняться не будет.  
+
<br>Если логическое выражение истинно (true) - будет выполнен код. Если ложно (false)- код выполняться не будет.  
&lt;br>Часто if используется в связке с else. Конструкция if-else имеет тот же вид, что if, но с дополнительной возможностью для выполнения другого кода, если условие не истинно (false).
+
<br>Часто if используется в связке с else. Конструкция if-else имеет тот же вид, что if, но с дополнительной возможностью для выполнения другого кода, если условие не истинно (false).
&lt;br>Для выполнения операций отрицания результата выражения: if (not (условие)).
+
<br>Для выполнения операций отрицания результата выражения: if (not (условие)).
&lt;br>Для операций сравнения используются знаки операций: >, &lt;, ==(равно), &lt;=, >=, ~=(не равно). Так же используются логические операторы or или and.  
+
<br>Для операций сравнения используются знаки операций: >, <, ==(равно), <=, >=, ~=(не равно). Так же используются логические операторы or или and.  
&lt;br>or- логическое ИЛИ. Или один или другой или оба.  
+
<br>or- логическое ИЛИ. Или один или другой или оба.  
&lt;br>and- логическое И. И один и другой.
+
<br>and- логическое И. И один и другой.
&lt;br>Результатом логической операции является число 1, если результат истинный, или 0, если результат ложный.
+
<br>Результатом логической операции является число 1, если результат истинный, или 0, если результат ложный.
&lt;br>Для указания приоритета нескольких операций используются круглые скобки: (, ).
+
<br>Для указания приоритета нескольких операций используются круглые скобки: (, ).
&lt;br>В конце операции необходимо поставить end для корректного выполнения сценария.
+
<br>В конце операции необходимо поставить end для корректного выполнения сценария.
  
 
== Синтаксис ==
 
== Синтаксис ==
 
Привязка к окну: опциональна.
 
Привязка к окну: опциональна.
&lt;br>Работа со свернутым окном: частично.
+
<br>Работа со свернутым окном: частично.
 
  if условие then
 
  if условие then
 
     [строки кода]
 
     [строки кода]
Строка 31: Строка 31:
  
 
  --lua
 
  --lua
  if 2 &lt; 3 then
+
  if 2 < 3 then
 
     msg ("два меньше трех")
 
     msg ("два меньше трех")
 
  end
 
  end
Строка 43: Строка 43:
 
  end
 
  end
 
  -- Результат: вывод сообщения "два не может быть больше трех"
 
  -- Результат: вывод сообщения "два не может быть больше трех"
 +
 +
--lua
 +
if color(403, 234) == 4727808 then  -- если в координатах  403, 234 цвет 4727808
 +
    log (1)  -- вывести в лог  1
 +
end
 +
 +
--lua
 +
if color(403, 234) == 4727808 then  -- если в координатах  403, 234 цвет 4727808
 +
    log (1)  -- вывести в лог  1
 +
else        -- иначе
 +
    log(0)  -- вывести 0
 +
end
  
 
  --lua
 
  --lua
 
  local two = 2
 
  local two = 2
 
  local five = 5
 
  local five = 5
  if two &lt; five or 3 &lt; five then  
+
  if two < five or 3 < five then  
 
       msg ("два меньше пяти или три меньше пяти")
 
       msg ("два меньше пяти или три меньше пяти")
 
  end
 
  end
Строка 73: Строка 85:
  
 
[[While (Lua)]]
 
[[While (Lua)]]
&lt;br>[[For (Lua)]]
+
<br>[[For (Lua)]]

Текущая версия на 12:19, 11 апреля 2020

Описание

if - условный оператор содержит логическое выражение. Позволяет выполнять определенный код в зависимости от результатов некоторого условия. Так же выполняет проверку последнего сообщения от сервера (для ultima online). Операция принимает вид сравнения.
Если логическое выражение истинно (true) - будет выполнен код. Если ложно (false)- код выполняться не будет.
Часто if используется в связке с else. Конструкция if-else имеет тот же вид, что if, но с дополнительной возможностью для выполнения другого кода, если условие не истинно (false).
Для выполнения операций отрицания результата выражения: if (not (условие)).
Для операций сравнения используются знаки операций: >, <, ==(равно), <=, >=, ~=(не равно). Так же используются логические операторы or или and.
or- логическое ИЛИ. Или один или другой или оба.
and- логическое И. И один и другой.
Результатом логической операции является число 1, если результат истинный, или 0, если результат ложный.
Для указания приоритета нескольких операций используются круглые скобки: (, ).
В конце операции необходимо поставить end для корректного выполнения сценария.

Синтаксис

Привязка к окну: опциональна.
Работа со свернутым окном: частично.

if условие then
    [строки кода]
end
if (not (условие)) then
    [строки кода]
end
if условие then
    [строки кода]
else
    [строки кода, если условие ложно]
end

Примеры

--lua
if 2 < 3 then
   msg ("два меньше трех")
end
-- Результат: вывод сообщения "два меньше трех"
--lua
if 2 > 3 then
   msg ("два больше трех")
else
   msg ("два не может быть больше трех")
end
-- Результат: вывод сообщения "два не может быть больше трех"
--lua
if color(403, 234) == 4727808 then  -- если в координатах  403, 234 цвет 4727808
    log (1)  -- вывести в лог  1
end
--lua
if color(403, 234) == 4727808 then  -- если в координатах  403, 234 цвет 4727808
    log (1)  -- вывести в лог  1
else         -- иначе
    log(0)   -- вывести 0
end
--lua
local two = 2
local five = 5
if two < five or 3 < five then 
     msg ("два меньше пяти или три меньше пяти")
end
-- Результат: вывод сообщения "два меньше пяти или три меньше пяти"
--lua
local num = 3
if 7 ~= 4 and num ~= 4 then
   msg ("семь не равно четырём и три не равно четырём")
else 
   msg ("четыре и num равно семи") 
end
-- Результат: вывод сообщения "семь не равно четырём и три не равно четырём"
--lua
-- Выполнение действия в определённое время
if os.date("%H:%M") == "23:14" then       -- в 23:14 выполнится условие
    -- тут пишем что нужно выполнить, например:
    start_script (3)                -- запустить скрипт номер 3
    alarm ()                        -- звуковой сигнал
    stop_script ()                  -- остановить текущий скрипт
end

Смотрите также

While (Lua)
For (Lua)