ACS

Материал из DoomDev

(Различия между версиями)
Перейти к: навигация, поиск
 
-
Написание скриптов (сценариев) для ZDoom схоже с написанием скриптов для Hexen, а для их компилирования даже используется усовершенствованный acc Hexen. Единственным значительным отличием является то, что скрипты должны включать «zcommon.acs» вместо «common.acs», чтобы использовать определения, предназначенные для ZDoom, а не для Hexen. Этот файл также включает три следующих:
+
ACS (Action Code Script) - скриптовый язык, который был создан для [[Hexen]] и значительно расширен [[ZDoom]].
-
* zspecial.acs
 
-
* zdefs.acs
 
-
* zwvars.acs
 
-
Также в ZDoom встроены три новых функции:
+
== Введение ==
 +
ACS позволяет авторам уровней создавать скрипты для игровых событий и, таким образом, создавать интерактивные среды даже старом движке [[Doom]]. Используя очень простые команды, автор может изменять структуру карты, например, поднимать или опускать полы по отдельности или одновременно, в одном или в разных направлениях, на разную высоту. Можно даже перемещать отдельные стены ([[полиобъекты]]). Можно изменять и текстуры на полах и стенах. Монстров (и любые другие предметы) могут быть создать, удалить, возможно изменять множество свойств, давать им цели... ACS дает множество возможностей, особенно если автор скрипта обладает талантом, терпением и воображением.
-
* [[activatorsound]]
+
Более строго говоря скрипт - что-то, что пишется в некотором текстовом редакторе и что содержит отдельные скрипты (подпроцедуры), команды, определения переменных и так далее. Как иногда говорят, ACS - миниатюрный язык программирования, похожий на С/С++ (и даже позволяет добавлять комментарии, как в примере ниже). Элементы самого верхнего уровня - скрипты. Обычно скрипт начинается с чего-то такого:
-
* [[localambientsound]]
+
-
* [[setlinemonsterblocking]]
+
-
Встроенная функция [[setlineblocking]] также была усовершенствована.
+
// это комментарий
 +
int ДоступнаВсемСкриптам = 101;
 +
int МожноСоздаватьМассивы[3] = {3,6,9};
 +
 +
SCRIPT 1 OPEN {
 +
    int ПеременнаяСкрипта = 0;
 +
    while(ДоступнаВсемСкриптам == 101){
 +
        ПеременнаяСкрипта++;
 +
        delay(1);
 +
    }
 +
}
-
----
+
Обратите внимание, что зацикленные скрипт без задержки будет автоматически завершен ZDoom, так как он не позволит выполниться больше ничему на карте. В этом случае вы увидите такое сообщение:
 +
Runaway script 1 terminated
-
Язык скриптов Hexen называется «Action Code Script» или ACS.
+
Запись переменных схожа с записью во множестве языков программирования. Если переменная должна быть доступна всем скриптам, она должна быть определена снаружи скриптов. В ZDoom доступны и массивы, то есть переменные, которые могут хранить несколько значений, а доступ к отдельному значению производится по индексу (МожноСоздаватьМассивы[2] = 9).
 +
Скрипт записывается схоже с функциями в C, если не считать того, что не нужно ставить точки с запятой после }, как для других выражений. OPEN, использованный в данном примере, означает, что скрипт будет выполнен при старте уровня.
-
В каждой карте есть файл ACS, содержащий скрипты, предназначенные для этой карты. Содержащиеся в нем скрипты идентифицируются числами, которые использует основной спецификатор [[ACS_Execute]].
+
В ACS так же поддерживаются условные выражения и, соответственно, циклы создаются из условных выражений. Поддерживается большинство (если не все) условных выражений и циклов C/C++.
 +
Перед использованием в карте ACS должен быть скомпилирован. Для этого используется [[ACC]].
-
Сам скрипт тоже может вызывать спецификатор [[ACS_Execute]], запускающий другой скрипт, который будет работать одновременно с остальными.
+
==Подразделы==
 +
* [[База готовых скриптов]]
 +
* [[Спецификаторы]]
 +
* [[Встроенные функции]]
 +
* [[ACS для новичков]]
 +
* [[Конфигурация ACS для Doom Builder]]
 +
* [[Библиотеки]]
 +
* [[Другие полезные константы]]
 +
* [[Другие полезные функции]]
 +
* [[Учебник по скриптам Ричарда Кларка]]
 +
* [[Типы скриптов]] (OPEN, ENTER и другие)
 +
* [[Определения|Некоторые простые определения]]
 +
* [[Области видимости|Области видимости переменных]]
 +
==Основы ACS==
 +
===Основы===
 +
* [[Структура скрипта]]
 +
* [[Типы данных|Переменные и типы]]
 +
* [[Области видимости]]
 +
* [[Константы]]
 +
* [[Операторы]]
-
Скрипт также может быть определен как OPEN, чтобы он запускался автоматически при входе на карту. Такой скрипт может использоваться для непрекращающихся эффектов, инициализации уровней и т.д.
+
===Контролирующие структуры===
 +
* [[Контролирующие структуры]]
 +
* [[Типы скриптов|Скрипты]]
 +
* [[Функции]]
 +
===Работа с ACS===
 +
* [[Спецификаторы]]
 +
* [[Встроенные функции]]
 +
* [[Библиотеки]]
-
Компилятор берет ACS файл и генерирует объектный файла, являющийся последним блоком в WAD-е карты ([[BEHAVIOR]]).
+
===Ресурсы===
 +
* [[Определения|Некоторые простые определения]]
 +
* [[Учебник по скриптам Ричарда Кларка]]
 +
* [[База готовых скриптов]]
 +
* [[Конфигурация ACS для Doom Builder]]
-
 
+
{{zdoomwikibased}}
-
Чтобы создать компилированный ACS файл из текстового файла, введите в командной строке DOS:
+
-
 
+
-
C:\HEXEN> ACS имя_файла [Затем нажмите enter]
+
-
 
+
-
 
+
-
==Подразделы==
+
-
[[Общие скрипты]]<br>
+
-
[[Переменные]]<br>
+
-
[[Области видимости]]<br>
+
-
[[Ключевые слова]]<br>
+
-
[[Комментарии]]<br>
+
-
[[Директивы]]<br>
+
-
[[Константные выражения]]<br>
+
-
[[Скрипты]]<br>
+
-
[[Операторы]]<br>
+
-
[[Встроенные функции]]<br>
+
-
[[Спецификаторы]]<br>
+

Текущая версия

Личные инструменты