Базовые понятия¶
По визуальному представлению ZScript не сильно отличается от ООП-языков вроде C++, C# или Java, так как, собственно, все основные синтаксические его формы взяты с их стандартов. В ZScript нет различия меж строчными и заглавными буквами — регистр букв в коде игнорируется.
Комментарии¶
Самая полезная вещь в любом языке программирования — это комментарии. Они позволяют прояснить непонятные моменты, временно убрать пока что не особо нужную часть кода, да и просто позволяют вспомнить, что происходит на данном конкретном участке, после возвращения к программе года эдак через три.
ZScript предоставляет два варианта обозначения комментариев. Оба эти варианта пришли с незапамятных времён — многострочный со стандарта C89, однострочный — с C99.
// Так будут обозначаться однострочные комментарии (игнорируются препроцессором до конца строки);
/* Так -- многострочные комментарии (также
игнорируются, но по всей длине, до закрывающей
последовательности символов). */
Хорошим тоном считается, когда программа самозадокументирована, то есть когда любую логически обособленную часть кода через пару лет сможете понять и Вы сами, и гипотетический психически неуравновешанный маньяк-программист, который знает, где Вы живёте. В таком случае без комментариев не обойтись.
Операторные скобки¶
Отметки о границах логического блока. Обозначаются фигурными скобками: "{" для начала блока и "}" для конца:
Препроцессор¶
Препроцессор — программа, которая прямо перед компиляцией проекта переводит код в пригодный для обработки. Подключает дополнительные файлы, проверяет синтаксические ошибки и убирает из кода комментарии.
В ZScript у него есть буквально две команды: выбор эмулируемой версии и добавление компилятору путей к подключаемым файлам.
Установка версии¶
Эмулируемая версия ZScript. Нужно указывать лишь один раз, в начале основного файла. Если движок ещё не поддерживает указанную в этом параметре версию, то на стадии препроцессинга он об этом сообщит.
Синтаксис:
Использование версий
Везде, где не указано обратного, в примерах будет использоваться версия, оптимальная по совместимости/функциональности — 4.5.0, которую можно запускать на последней версии любого современного порта. Последняя версия на момент написания — 4.13.0. Однако по возможности всё равно лучше использовать свежий движок, так как старые версии имеют программные уязвимости, широко известны как минимум три вектора атаки.
Подключение дополнительного файла кода¶
Подключаемый модуль, можно использовать неоднократно и не только в заглавном файле. В кавычках пишется относительный путь до дополнительного, подключаемого файла. Стоит использовать, чтобы не создавать лишь один файл на десятки тысячи строк и сотни классов.
Если Вы изучали любой язык программирования, или даже ACS/Decorate — то принцип действия команды здесь почти тот же. Главное различие — единственное объявление #include путь в файле ZScript верхнего уровня даст к этому файлу доступ во всех остальных файлах.
#include "путь_до_файла"
// Примеры:
#include "zscript/sbarinfo.zsc"
#include "zscript/eventhandlers.zsc"
#include "zscript/monsters.zsc"
#include "zscript/weapons.zsc"
Консоль. Вывод значений переменных и сообщений¶
Довольно часто будет использоваться функция "console.printf( здесь_текст );" — она выводит указанный текст в консоль движка *ZDoom. По умолчанию открывать/закрывать игровую консоль можно по нажатию на тильду ("Ё" на русской раскладке).