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

External Script – что это такое и как с ним работать?

Раздел: Основы скриптинга | Автор: yelmi | Рейтинг: 7.11 (9) | Хитов 6434
External Script – внешний скрипт используется только в GTA San Andreas.

Он находится отдельно от main.scm, поэтому он и называется «внешний». Внешний скрипт является скомпилированным бинарным файлом, имеющим расширение .scm. В отличии от main.scm внешний скрипт не имеет заголовка. Вся информация о нем находится в заголовке main.scm.
Код:
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
//DEFINE SCRIPT {NAME} AT {LABEL} @


Внешние скрипты расположены в файле script.img в папке script (data/script). Максимальное количество внешних скриптов - 82. Максимальное количество внешних скриптов, которые могут использоваться одновременно равно 70.

Внешний скрипт, как и миссия нуждается в запуске, т.е. нужен стартер внешнего скрипта. Для примера будем использовать очищенный main.scm (stripped.txt). Найти его можно в папке SannyBuilder\data\sa.

Открываем stripped.txt в SannyBuilder’е и над комментарием

Код:
{
use macro (Ctrl+J) "headsa"
to insert a file header
}

или вместо него ставим курсор и нажимаем Ctrl+J. В появившемся списке выбираем "headsa" и нажимаем ENTER. Этой незатейливой операцией мы добавили в наш файл (stripped.txt) заголовок:

Код:
DEFINE MISSIONS 0
//DEFINE MISSION {ID} 0 AT {LABEL} @
DEFINE EXTERNAL_SCRIPTS 0 // Use -1 in order not to compile AAA script
//DEFINE SCRIPT {NAME} AT {LABEL} @
DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0


В строке DEFINE EXTERNAL_SCRIPTS записывается общее количество внешних скриптов. Изменим 0 на 1, то есть, указываем компилятору, что у нас будет добавлен 1 внешний скрипт.
Следующая строка
DEFINE SCRIPT {NAME} AT {LABEL} @
где NAME – имя внешнего скрипта, назовем его, например, MILITIA и чтобы не путаться с метками назовем ее также @MILITIA. Теперь заголовок у нас получился такой:

Код:
DEFINE MISSIONS 0
//DEFINE MISSION {ID} 0 AT {LABEL} @

DEFINE EXTERNAL_SCRIPTS 1 // Use -1 in order not to compile AAA script
DEFINE SCRIPT MILITIA AT @MILITIA // 0

DEFINE UNKNOWN_EMPTY_SEGMENT 0
DEFINE UNKNOWN_THREADS_MEMORY 0


Теперь нам нужно добавить сам внешний скрипт. Его можно написать самому, но в целях экономия времени воспользуемся стандартным. Это скрипт вышибалы (External script 39 (BOUNCER)). Я внес в него небольшие правки и переименовал в MILITIA. Добавим его в наш файл после строки
// put your external scripts here.
Сохраняем файл, компилируем и запускаем игру.

Ну что же половина дела сделано, осталось заставить его работать.

Тут нам понадобится стартер внешнего скрипта. Есть разные варианты запуска внешних скриптов. Рассмотрим усе. :) :-o


  1234...6»

  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.03 секунд -