Список опкодов (SCM.INI)
Last updated
Last updated
Документацию по опкодам можно найти в .
Основной файл, который обеспечивает компиляцию и дизассемблирование скриптов, – INI
файл со списком опкодов. В Sanny Builder есть список опкодов для каждого .
Игра
Имя файла
Директория
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
– номер версии. См. директиву
PUBLISHER
– автор изменений
DATE
– дата обновления
Дизассемблер выводит эту информацию в комментарии на первой строке исходника.
Каждая строка с опкодом имеет следующий формат:
xxxx=N, yyyy
XXXX
– номер опкода
N
– кол-во параметров
yyyy
– описание опкода
Не допускается редактирование первых двух значений (номер опкода и кол-во параметров). Описание опкода может меняться свободно.
Если в INI
файле содержится несколько определений для одного и того же опкода, используется последнее.
Существует соглашение, по которому описание условного опкода всегда начинается с двух пробелов.
Параметры - это динамическая часть опкода. В описании опкода они начинаются и заканчиваются %
Данная строка указывает дизассемблеру, что для опкода 0001
следует написать слова wait
и ms
, а между ними единственный параметр опкода:
Число в параметре %1d%
- его порядковый номер. Он нужен, потому что в некоторых опкодах параметры переставлены местами для улучшения читабельности кода.
Для опкода 0053
дизассемблер поставит 5-й параметр в начале:
Если бы параметры выводились в оригинальном порядке, опкод 0053
выглядел бы так:
Изменение порядка следования параметров должно быть крайней мерой, т.к. оно приводит к несовместимости старых скриптов с новым INI файлом.
Буква после номера параметра обозначает его тип.
Определение параметра включает в себя его и .
Порядок следования параметров может различаться от режима к режиму. Смотрите , чтобы узнать больше.
d
- любое значение
p
- имя
o
- имя (включая объекты)
m
- имя модели из .ide
файла (исключая объекты)
g
- ключ из файла
x
- ID внешнего скрипта
k
- строковый литерал фиксированной длины (128 байтов)