Список опкодов (SCM.INI)
Last updated
Last updated
Документацию по опкодам можно найти в Sanny Builder Library.
Основной файл, который обеспечивает компиляцию и дизассемблирование скриптов, – INI
файл со списком опкодов. В Sanny Builder есть список опкодов для каждого режима редактирования.
Начиная с версии 4.0 этот файл является необязательным для работы и может быть заменен определениями команд, доступными для скачивания в формате JSON в Sanny Builder Library. Новые режимы редактирования используют только файлы SBL.
Строки, начинающиеся с ;
, игнорируются.
Файл может иметь особые параметры, которые содержат метаданные о его текущей версии.
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 байтов)
Типы параметров могут свободно меняться в случае необходимости.
Игра
Имя файла
Директория
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