Делаем новые миссии. CLEO - скрипты, cutscene, статьи, программы. Игровые новости.
 
1.7.13 14:57 |

Директивы

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 9.00 (1) | Хитов 10990
Препроцессорные директивы - это специальные слова, которые указывают компилятору на необходимое поведение в процессе компиляции. Они обозначаются символом $, а также заключены в фигурные скобки {}.

Список доступных директив:

$VERSION
$VERSION_RESTORE
$INCLUDE
$EXTERNAL
$CLEO


$VERSION

Данная директива указывает компилятору, какую версию опкодов необходимо использовать из INI-файла (SASCM.INI, VICESCM.INI и т.д.). В настоящий момент INI-файлы содержат только одну версию опкодов, поэтому данная директива может не использоваться.

Синтаксис:

$VERSION x.y.zzzz

x - код игры.
1 - gta3;
2 - vc;
3 - sa;
4 - lcs;
5 - vcs;


y - вид порядка следования параметров в опкоде.
0 - оригинальный (параметры в INI идут последовательно 0, 1, 2 и т.д.)
1 - неоригинальный (параметры в INI идут непоследовательно 2, 0, 1, и т.д.)

zzzz - код версии файла

По умолчанию компилятор использует версию:

<текущий режим редактирования>.1.0000

$VERSION_RESTORE

Данная директива восстанавливает прежнюю версию, которая была до использования директивы $VERSION. В настоящий момент INI-файлы содержат только одну версию опкодов, поэтому данная директива может не использоваться.

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

Код:
{$VERSION 3.1.0001}


... <код, написанный на версии 0001> ....

{$VERSION 3.1.0000}
... <код, написанный на версии 0000> ....
{$VERSION_RESTORE} // восстанавливаем версию 0001

... <код, написанный на версии 0001> ....

$INCLUDE

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

Синтаксис:

Код:
{$INCLUDE file_path}


или
Код:

{$I file_path}


Например,

Код:
{$I loadwav.txt}


или

Код:
{$I C:devgetarrayindex.txt}


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

папка, где находится файл, содержащий данную директиву
Sanny Builder\data\<game>
корневая папка Sanny Builder'а
корневая папка игры

Если ни в одной из указанных папок не содержится такой файл, компилятор сообщит об ошибке.

Вы можете использовать данную директиву неограниченное число раз. Вкладываемые файлы могут также содержать в себе данную директиву.
$EXTERNAL

Данная директива заставляет скомпилировать файл как внешний скрипт. Это означает, что получившийся файл будет без заголовка и с локальными метками, т.е. полным аналогом scm-файлов из файла script.img. Использование данной директивы подразумевает, что в скрипте будет только один поток (также без миссий и внешних скриптов). Аналогом использования данной директивы является опция SKIP_SCM_HEADER. Данную опцию также можно переключить на главной панели инструментов. Вместо $EXTERNAL можно использовать короткий вариант $E.

Синтаксис:

Код:
{$EXTERNAL}


или

Код:
{$E}


$CLEO

Данная директива является аналогом директивы $E, однако полученный файл автоматически копируется в директорию ‘игра\CLEO’, и получает расширение, указанное в директиве.

Синтаксис:

Код:
{$CLEO <расширение файла>}


Например,

Код:
{$CLEO .cm}


или

Код:
{$CLEO} // файл получит расширение по умолчанию - .cs


Таким образом, данная директива является идеальным решением для написания CLEO-скриптов

 

  1 2 3 4 5 6 7 8 9 10  

Родственные ссылки
» Другие статьи раздела Основы скриптинга
» Эта статья от пользователя yelmi

5 cамых читаемых статей из раздела Основы скриптинга:
» Работа со звуками в GTA San Andreas
» Директивы
» Контроль клавиатуры
» External Script – что это такое и как с ним работать?
» Панель, или список товаров. Часть II.

5 последних статей раздела Основы скриптинга:
» Директивы
» Дополнительные команды
» Ключевые слова
» Классы
» Циклы

¤ Перевести статью в страницу для печати
¤ Послать эту cтатью другу

MyArticles 0.6 beta for RUNCMS: by RunCms.ru


Реклама

Вверх     Вернуться на главную. Вход в Систему. Статьи. Скачать. Миссии. ФОРУМ Обратная связь.   
   
   
   
   
- Генерация страницы: 0.13 секунд -