Краткое описание скриптового языка игры Alien Shooter 2

Версия 1.0 от 28.06.2009.
Буду дописывать по мере необходимости.

Скриптовый язык в движке Alien Shooter 2 похож на C и C++, не является объектно-ориентированным.
Есть некоторые отличия от этих языков. Например, оператор iff - то же, что и обычный if, но выполняется только один раз (служит обычно для инициализации переменных в начале уровня). Else после него ставить можно, но не рекомендуется, т.к. могут быть баги. Вообще, этот оператор нужно использовать осторожно, желательно проверять в нем только константы, при использовании переменных случаются баги (если правильно помню, когда несколько операторов iff идут подряд).

Функции, экспортированные из кода в скрипты, описаны в файле EXPORT.LGC (с ключевым словом extern перед ними). Там же - краткие комментарии к этим функциям. Также список приведен здесь: Список скриптовых extern-функций движка игры Alien Shooter 2 (из него выкинуты неактуальные функции, немного изменены описания).

При загрузке карты также загружается скрипт с соответствующим названием (для Level_01.map - Level_01.lgc и т.п.), у него должна быть функция main(), которая вызывается каждый "такт" перед отрисовкой. Если приглядеться, то все файлы для уровней (Level_01.lgc, Level_02.lgc и т.д.) почти одинаковые, только в некоторых бывают переопределены константы или реализованы некоторые уникальные действия.

Событие для спрайта - это начало той или иной анимации. Список анимаций можно увидеть тут: Список параметров функции Action (раздел Список анимаций спрайтов).
На события различных vid'ов юнитов можно вешать скриптовые процедуры. Например в MONSTERS.LGC: F419_15(){...} - функция, вызываемая на обычную смерть юнита 419-го vid'а. 15 - это номер анимации на обычную смерть.

При ошибках в скриптах программа вылетает и пишет в log-файл, в какой строке ошибка и в чем именно ошибка.

Самый простой способ научиться скриптовать - изучать скрипты от игры. Они находятся в папке Maps и имеют расширение "lgc". Некоторые скрипты имеют расширение "h".