Список опкодов (SCM.INI)
Документацию по опкодам можно найти в Sanny Builder Library.
Основной файл, который обеспечивает компиляцию и дизассемблирование скриптов, – INI
файл со списком опкодов. В Sanny Builder есть список опкодов для каждого режима редактирования.
Начиная с версии 4.0 этот файл является необязательным для работы и может быть заменен определениями команд, доступными для скачивания в формате JSON в Sanny Builder Library. Новые режимы редактирования используют только файлы SBL.
Игра | Имя файла | Директория |
GTA III | SCM.INI | data\gta3 |
Vice City | VCSCM.INI | data\vc |
San Andreas | SASCM.INI | data\sa |
Liberty City Stories | LCSSCM.INI | data\lcs |
Vice City Stories | VCSSCM.INI | data\vcs |
VC Mobile | VCSCM.INI | data\vc_mobile |
SA Mobile | SASCM.INI | data\sa_mobile |
Формат файла
Строки, начинающиеся с ;
, игнорируются.
Метаданные
Файл может иметь особые параметры, которые содержат метаданные о его текущей версии.
VERSION
– номер версии. См. директиву $VERSION
PUBLISHER
– автор изменений
DATE
– дата обновления
Дизассемблер выводит эту информацию в комментарии на первой строке исходника.
Опкоды
Каждая строка с опкодом имеет следующий формат:
xxxx=N, yyyy
XXXX
– номер опкода
N
– кол-во параметров
yyyy
– описание опкода
Не допускается редактирование первых двух значений (номер опкода и кол-во параметров). Описание опкода может меняться свободно.
Если в INI
файле содержится несколько определений для одного и того же опкода, используется последнее.
Существует соглашение, по которому описание условного опкода всегда начинается с двух пробелов.
Параметры опкодов
Параметры - это динамическая часть опкода. В описании опкода они начинаются и заканчиваются %
Данная строка указывает дизассемблеру, что для опкода 0001
следует написать слова wait
и ms
, а между ними единственный параметр опкода:
Определение параметра включает в себя его порядковый номер и тип.
Порядок следования параметров
Число в параметре %1d%
- его порядковый номер. Он нужен, потому что в некоторых опкодах параметры переставлены местами для улучшения читабельности кода.
Для опкода 0053
дизассемблер поставит 5-й параметр в начале:
Если бы параметры выводились в оригинальном порядке, опкод 0053
выглядел бы так:
Изменение порядка следования параметров должно быть крайней мерой, т.к. оно приводит к несовместимости старых скриптов с новым INI файлом.
Порядок следования параметров может различаться от режима к режиму. Смотрите сравнительную таблицу, чтобы узнать больше.
Типы параметров
Буква после номера параметра обозначает его тип.
d
- любое значение
p
- имя метки
o
- имя модели (включая объекты)
m
- имя модели из .ide
файла (исключая объекты)
g
- ключ из .gxt
файла
x
- ID внешнего скрипта
k
- строковый литерал фиксированной длины (128 байтов)
Типы параметров могут свободно меняться в случае необходимости.
Last updated