Список опкодов (SCM.INI)
Основной файл, который обеспечивает компиляцию и дизассемблирование скриптов, –
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
– номер версии. См. директиву $VERSION
PUBLISHER
– автор изменений
DATE
– дата обновления
Дизассемблер выводит эту информацию в комментарии на первой строке исходника.Каждая строка с опкодом имеет следующий формат:
xxxx=N, yyyy
XXXX
– номер опкода
N
– кол-во параметров
yyyy
– описание опкодаНе допускается редактирование первых двух значений (номер опкода и кол-во параметров). Описание опкода может меняться свободно.
Если в
INI
файле содержится несколько определений для одного и того же опкода, используется последнее.Существует соглашение, по которому описание условного опкода всегда начинается с двух пробелов.
Параметры - это динамическая часть опкода. В описании опкода они начинаются и заканчиваются
%
0001=1,wait %1d% ms
Данная строка указывает дизассемблеру, что для опкода
0001
следует написать слова wait
и ms
, а между ними единственный параметр опкода:0001: wait 10 ms
Число в параметре
%1d%
- его порядковый номер. Он нужен, потому что в некоторых опкодах параметры переставлены местами для улучшения читабельности кода.0053=5,%5d% = create_player %1o% at %2d% %3d% %4d%
Для опкода
0053
дизассемблер поставит 5-й параметр в начале:0053: $PLAYER_CHAR = сreate_player #NULL at 2488.562 -1666.865 12.8757
Если бы параметры выводились в оригинальном порядке, опкод
0053
выглядел бы так:0053: сreate_player #NULL at 2488.562 -1666.865 12.8757 $PLAYER_CHAR
Изменение порядка следования параметров должно быть крайней мерой, т.к. оно приводит к несовместимости старых скриптов с новым INI файлом.
Порядок следования параметров может различаться от режима к режиму. Смотрите сравнительную таблицу, чтобы узнать больше.
Буква после номера параметра обозначает его тип.
Типы параметров могут свободно меняться в случае необходимости.
Last modified 1yr ago