Внимание! |
На многих форумах часто приходится читать, что IFP-ANPK-TOOL не хочет открывать ped.ifp. Для особо одаренных, то есть тех, кому лень читать описание поясняю, что IFP-ANPK-TOOL разработан исключительно для создания, редактирования IFP файлов cutscene. Файлы эти находятся в cuts.img и их формат (ANPK) отличается от файлов анимаций таких как в ped.ifp (ANP3). По этой причине IFP-ANPK-TOOL не открывает ped.ifp файл, а созданный с его помощью новый файл не работает отдельно от файлов DAT и CUT. |
|
|
| 27.9.07 20:43 | External Script – что это такое и как с ним работать? |
| Раздел: Скриптинг в GTA | Автор:
yelmi | Рейтинг: 7.17 (6) | Хитов 1646 |
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. Сохраняем файл, компилируем и запускаем игру.
Ну что же половина дела сделано, осталось заставить его работать.
Тут нам понадобится стартер внешнего скрипта. Есть разные варианты запуска внешних скриптов. Рассмотрим усе. :) |
| [1] 2 3 4 ... 6 » |
|
|