Sanny Builder
На русском (не обновляется)
На русском (не обновляется)
  • Введение
  • Благодарности
  • История изменений
  • Синтаксис
    • Типы данных
    • Константы
    • Переменные
    • Массивы
    • Операторы
    • Условия
    • Циклы
    • Классы
    • Ключевые слова
    • Дополнительные команды
    • HEX..END
    • Директивы
    • Комментарии
  • Редактор
    • Возможности
    • Опции программы
      • Общие настройки
      • Форматирование
      • Редактор
      • Редактор тем оформления
      • Горячие клавиши
    • Консоль
    • Горячие клавиши
    • Поиск опкодов
    • Интерфейс командной строки
    • Языковая служба
  • Режимы редактирования
    • CustomLabels.ini
    • Enums.txt
    • Расширения
    • Список опкодов (SCM.INI)
    • Шаблоны кода
  • Документация по SCM
    • Скриптовые лимиты
    • GTA III
      • Иконки радара
      • Типы пешеходов
    • Vice City
      • Банды
      • Гаражи
      • Иконки радара
      • Интерьеры
      • Номера кнопок
      • Типы оружия
      • Типы пешеходов
    • San Andreas
      • Банды
      • Варианты изменения авто
      • Гаражи
      • Зоны
      • Интерьеры
      • Номера клавиш
      • Одежда
      • Оружие
      • Персонажи
      • Погода
      • Прически
      • Системы частиц
      • Статистика
      • Татуировки
      • Типы пешеходов
      • Типы поездов
      • Части тела игрока
    • Liberty City Stories
      • Банды
      • Модели
      • Одежда
      • Оружие
      • Персонажи
      • Погода
    • Vice City Stories
      • Банды
      • Одежда
      • Погода
  • Исправление проблем
    • Сообщения об ошибках
      • 0001: INI файл не найден
      • 0002: Неизвестный тип массива
      • 0003: Ошибка чтения script.img
      • 0004: Неизвестный тип параметра
      • 0005: Неправильный режим редактирования
      • 0006: Неверный заголовок файла
      • 0007: Файл не найден
      • 0008: Ошибка чтения списка опкодов
      • 0009: Список опкодов не найден
      • 0010: Неизвестный опкод
      • 0011: Неизвестный опкод
      • 0012: Переход за границы файла
      • 0013: Неизвестная команда
      • 0014: Неверное выражение
      • 0016: Скрипт не найден
      • 0017: Переменная не объявлена
      • 0018: Неверный размер массива
      • 0019: Неизвестный тип массива
      • 0020: Переменная не объявлена как массив
      • 0021: Неверное значение в имени переменной
      • 0022: Cчетчик итераций не является переменной
      • 0023: Неверный синтаксис
      • 0024: Ожидалось целочисленное значение
      • 0025: Неверный цикл
      • 0026: Неверное число с плавающей точкой
      • 0027: Слишком длинная строка
      • 0028: Незавершенная строка
      • 0029: Неверный ID отладочного скрипта
      • 0031: Неверное количество элементов
      • 0032: Неверное значение элемента в заголовке
      • 0033: Неверное имя локальной переменной
      • 0034: Локальная переменная вне допустимых границ
      • 0035: Ожидалось слово
      • 0036: Локальная переменная миссии вне допустимых границ
      • 0037: Отладочный скрипт не найден
      • 0038: Неизвестный тип массива
      • 0039: Неверное определение элемента
      • 0040: Имя или значение константы не определено
      • 0041: Неверный ID миссии
      • 0042: Дублирование имени внешнего скрипта
      • 0043: Неверный индекс массива
      • 0044: Неверное имя массива
      • 0045: Неверный синтаксис массива: пропущено имя переменной
      • 0046: Неверный синтаксис массива
      • 0047: Неверный размер массива
      • 0048: Ошибка чтения размера массива
      • 0049: Недостаточно параметров для опкода
      • 0050: Недостаточно параметров для команды
      • 0051: Ошибка записи заголовка script.img
      • 0052: Ошибка записи script.img
      • 0053: Рекурсивное подключение файла
      • 0054: Метка не найдена
      • 0055: Идентификатор не найден
      • 0056: Метка переобьявлена
      • 0057: Внутренная метка не найдена
      • 0058: Недопустимый параметр
      • 0059: Неверное определение опкода
      • 0060: Нет исходного файла
      • 0061: Пустой исходный файл
      • 0062: IDE файл не найден
      • 0063: Ожидалась метка миссии
      • 0064: Метка миссии не найдена
      • 0065: Метка внешнего скрипта не найдена
      • 0067: Недопустимый символ в имени внешнего скрипта
      • 0068: Неверный символ в идентификаторе
      • 0069: Неверный символ в имени объекта
      • 0071: Неверное число условий
      • 0072: Логический оператор пропущен
      • 0073: Лишний логический оператор
      • 0074: Опция отключена
      • 0075: Неверное 16-ричное значение
      • 0076: Ожидалось условие
      • 0079: Недопустимый параметр в команде Alloc
      • 0080: Ожидалось неотрицательное число
      • 0081: Слишком много параметров
      • 0082: Неверный синтаксис
      • 0083: Неизвестный ID модели
      • 0084: Переход на оффсет 0
      • 0086: Неверный индекс массива
      • 0087: Недопустимая переменная
      • 0088: Глобальная переменная вне допустимых границ
      • 0089: Опкод не найден
      • 0090: Константа переобъявлена
      • 0091: Недостаточно памяти для переменной
Powered by GitBook
On this page
  • Общий синтаксис условных выражений
  • Высокоуровневые конструкции
  • Операторы сравнения
  1. Синтаксис

Условия

PreviousОператорыNextЦиклы

Last updated 5 years ago

Оператор IF объединяет одно или несколько условий и создает новое ветвление в коде.

Общий синтаксис условных выражений

00D6: if <N> <условие 1> <условие 2> ... <условие N+1> 004D: jump_if_false <метка>

N означает общее кол-во условий внутри выражения IF и логическую связь между ними:

N

Кол-во условий

Логический оператор

0

1

нет (выражение истинно, если условие в нем истинно)

1..7

2..8

И (все условия должны быть истинны, чтобы все выражение было истинно)

21..27

2..8

ИЛИ (хотя бы одно условие должен быть истинно, чтобы все выражение было истинно)

В одном выражении IF может объединяться до 8 условий.

Sanny Builder позволяет не указывать0 после IF. IF 0 и IF эквивалентны.

<метка>- имя , на которую переходит скрипт, если выражение IF ложно. <условие> - любой условный опкод, который возвращает true или false

Если Проверка условий включена, после IF можно писать ключевые слова AND или OR. Компилятор будет рассчитывать правильное значение самостоятельно:

if and 
    $var > 0
    $var2 == 10.0
jf @anywhere

В данном примере компилятор запишет вместо and число 1.

IF AND - условия, объединенные логическим оператором И (замена if 1..7) IF OR - условия, объединенные логическим оператором ИЛИ (замена if 21..27)

Высокоуровневые конструкции

Для облегчения работы с условными выражениями существуют высокоуровневые конструкции, для которых не нужны дополнительные метки в коде:

IF <N>/AND/OR <условие 1> <условие 2> ... <условие N+1> THEN <команды при истинности условия> END

IF <N>/AND/OR <условие 1> <условие 2> ... <условие N+1> THEN <команды при истинности условия> ELSE <команды при ложности условия> END

Выражение IF завершается ключевым словом END.

if $var == 5
then
    Inc($var)
else
    Dec($var)
end

Допускаются конструкции IF, вложенные друг в друга.

Операторы сравнения

  • a == b - a равно b

  • a>= b - a больше либо равно b

  • a > b - a больше b

  • a < b - a меньше b

  • a <= b - a меньше либо равно b

  • a <> b - a не равно b

Условное выражение создается по . После ключевого слова THEN указываются опкоды, которые должны выполняться, если условие истинно. После ELSE указываются опкоды, которые выполняются, если условие ложно.

Проверка условий должна быть включена.

a и b называются операндами. Компилятор может самостоятельно определить нужный опкод, если один из операндов является числовой константой, или обеих переменных известен.

общим правилам
метки
строковым литералом
опция
Опция
тип