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. Режимы редактирования

Enums.txt

PreviousCustomLabels.iniNextРасширения

Last updated 4 years ago

Перечисляемый тип или перечисление - это набор констант (называемых полями перечисления), имеющих общее имя (имя перечисления).

Перечисления имеют несколько преимуществ перед обычными константами. Они не засоряют общее пространство имен и являются участниками системы типов. Параметры, у которых перечисление является типом, имеют ограниченную область допустимых значений, что помогает избегать ошибок, связанных с неверным значением параметра.

Enums.txt - это текстовый файл, который содержит перечисления, доступные для .

Формат файла

Каждое перечисление задается следующим образом:

enum <имя перечисления> <поля перечисления> end

имя перечисления - это любая комбинация букв, цифр и _ поля перечисления - одна или несколько строк в формате:

<имя поля> [= <значение поля>]

имя поля - любая комбинация букв, цифр и _ значение поля - число или строковый литерал, заключенный в двойные кавычки. Если отсутствует, компилятор присваивает автоматически.

enum Town
  LS = 0
  SF = 1
  LV = 2
end

Поля перечисления могут разделяться переносом строки (как в примере выше) или запятой:

enum Town
  LS = 0, SF = 1, LV = 2
end

В одном файле может быть несколько перечислений. Каждое из них должно иметь уникальное имя.

Файл с перечислениями не может содержать комментарии или незнакомый синтаксис.

Поля перечисления

Каждое поле перечисления представляет собой константу, которая присваивается явно либо неявно. Явным образом это происходит, если после имени поля стоит знак = и допустимая константа:

enum Town
  LS = 0
  SF = 1
  LV = 2
end

Town.LS представляет число 0, Town.SF представляет число 1 и Town.LV представляет число 2.

enum TicTacToe
   Player1 = "X"
   Player2 = "O"
end

TicTacToe.Player1 представляет строковый литерал X и TicTacToe.Player2 представляет строковый литерал O.

Если полю перечисления явным образом не присвоена константа, это происходит автоматически. Первому полю присваивается 0, второму 1, третьему 2 и т.д.:

enum Town
  LS
  SF
  LV
end

Town.LS представляет число 0, Town.SF представляет число 1 и Town.LV представляет число 2.

Если в одном перечислении используются и явное, и неявное присвоения, это происходит по следующим правилам:

  • полю, которое следует за явно присвоенным числом, присваивается это число плюс 1:

enum E
  A = 10
  B
  C = 100
  D
  E
end

E.A = 10, E.B = 11, E.C = 100, E.D = 101, E.E = 102

  • полю, которое следует за явно присвоенным строковым литералом, присваивается литерал, дублирующий имя поля:

enum Month
  Jan = "January"
  Feb = "February"
  March
end

Month.Jan = "January", Month.Feb = "February", Month.March = "March"

Перечисление не может одновременно представлять числа и строковые литералы. Тип перечисления определяется по первой явно присвоенной константе:

enum Int
  X, Y // X = 0, Y = 1,
end
enum String
  X, Y = "Y" // X = "X", Y = "Y"
end
режима редактирования
новую константу