JASS (англ. Just Another Scripting Syntax) — событийно-ориентированный скриптовый язык программирования, созданный компанией Blizzard Entertainment. Используется в играх, таких как Warcraft и Starcraft. В игре Warcraft III скрипты на языке JASS используются для контроля над объектами игрового мира и компьютерными соперниками. Данная область применения даёт практически полную свободу контроля над игровым процессом (в рамках игровой вселенной) любителям модов при создании своих собственных сценариев Warcraft III. В комплекте с игрой поставляется стандартный Редактор Мира Warcraft III (англ. Warcraft III World Editor), в который включён модуль редактирования игровых сценариев под названием «Редактор Триггеров» (англ. Trigger Editor). Данный модуль снабжён неплохим графическим пользовательским интерфейсом для языка JASS, что позволяет создавать нестандартные сценарии для карт, не требуя при этом от создателя мода знаний в области языков и принципов программирования. На тематических веб-ресурсах сценарии, сделанные в стандартном редакторе триггеров называют коротко — GUI. Наряду с «одружеблюбленными» триггерами GUI, существуют их текстовые варианты — в виде скриптов на языке JASS, которые обладает расширенными, по сравнению со стандартными «редакторскими» триггерами, возможностями. Официальной документации от Blizzard Entertainment к этому языку нет, однако, существует множество любительских ресурсов, посвящённых написанию скриптов для сценариев на этом языке. Стандартный редактор снабжён только базовыми интерпретатором и редактором JASS, в котором, помимо прочего, отсутствует подсветка синтаксиса и удобная проверка синтаксиса, что делает работу с JASS в обычном редакторе достаточно неудобной и трудоёмкой. Это и является одной из основных причин нелюбви новичков модостроения Warcraft III к этому языку. Помимо стандартного редактора, существуют специальные программы, которые упрощают работу с Jass-скриптами. К ним относится JASS Craft (бывший JASS Shop Pro). С помощью этой программы можно создавать шаблоны для триггеров, функций и оптимизировать код. Кроме того, он имеет подсветку и встроенную проверку синтаксиса, позволяющую «на лету» протестировать скрипт на наличие ошибок. В сфере модостроителей Warcraft III с 2007 года имеет бешеную популярность масштабная любительская надстройка для редактора Warcraft III — JASS New Gen Pack. В него, помимо множества других полезных возможностей, включены подсветка и проверка синтаксиса, а также альтернативный интерпретатор языка JASS. Вкупе с другими возможностями, это сделало его практически стандартом «де-факто» в мире картостроя. Основные понятия Файлы скриптов JASS могут иметь расширения .j или .ai. Язык JASS являет собой язык функций. Функции могут быть пользовательскими и нативными (от англ. native). Пользовательские функции могут быть объявлены самим картоделом(мапмейкером) и находятся непосредственно в скрипте карты. Нативные функции созданы разработчиками, объявляться пользователем не могут и перечислены в 2-ух главных файлах языка JASS — common.j и common.ai. Данные файлы находятся в архивах игры Warcraft III. (Однако существует статья, в которой описывается добавление собственных native функций в Warcraft) Имеется также созданный разработчиками набор готовых «к употреблению» пользовательских функций — blizzard.j, который является объектом критики многих картоделов за множество утечек и частую бесполезность отдельно взятых функций. Яркий пример тому — функции с простой перестановкой параметров, не имеющие смысловой нагрузки, но отнимающие время на их выполнение. Карта Warcraft III представляет собой такой же архив формата MPQ, как и другие архивы игры и имеет расширение .w3m или .w3x. Архив карты всегда содержит файл скрипта карты — war3map.j, но может также содержать несколько файлов с расширениями .ai в том случае, если используется нестандартный искусственный интеллект компьютерных противников. Информация в файл war3map.j записывается в момент сохранения карты в редакторе, когда интерпретатор языка конвертирует данные из файла триггеров (war3map.wtg) в конечный код JASS, который будет использован игрой. Файл war3map.wtg в архиве карты содержит данные о GUI триггерах и является необходимым только для редактора. Без него отредактировать стандартными средствами редактора код карты будет невозможно. Пример кода для отображения «Hello, World!» на Jass: Code function HelloWorld takes player p returns nothing call DisplayTextToPlayer(p, 0, 0, "Hello World!") endfunction Функция HelloWorld принимает локальный параметр типа «player» с именем «p» и ничего не возвращает(«nothing»). В теле вызывается стандартная native -функция «DisplayTextToPlayer». В этой функции указывается индекс (переменная типа integer — целочисленная) сетевого игрока, которому будет отправлено сообщение; экранные координаты (x, y; переменные типа real) — положение строки сообщения; время, через которое исчезнет сообщение. Основные отличия JASS от редактора триггеров
Взято с Википедии, там очень хорошо изложена теория. | |
Просмотров: 3479 | | |
Всего комментариев: 0 | |