Советуем ознакомиться со всей базой статей по триггерам редактора (и не только).
0. Вступление
Этот цикл статей посвящен изучению языка jass (создание текстовых триггеров, так называемых скриптов). Хотя про jass уже написано достаточное число статей, но многие картостроители все равно не желают его изучать. И я их вполне понимаю – для тех, кто не занимается программированием в тех статьях, которые имеются, разобраться довольно сложно. Не хватает некоторых базовых знаний, не понятно, с чего начинать и т.д.
Любой учитель знает, что излагать предмет надо поэтапно и в определенной последовательности. Я выбрал последовательность в том порядке, в котором сам когда-то начал осваивать язык jass. Так что триггерщики, которые до сих пор не решаются приступить к изучению jass, смогут проделать тот же путь.
Эти статьи я написал для одного своего друга триггерщика. И друг вполне оправдал мои ожидания - не прошло и месяца, как он стал jass-ером.
Любой учитель знает, что излагать предмет надо поэтапно и в определенной последовательности. Я выбрал последовательность в том порядке, в котором сам когда-то начал осваивать язык jass. Так что триггерщики, которые до сих пор не решаются приступить к изучению jass, смогут проделать тот же путь.
Эти статьи я написал для одного своего друга триггерщика. И друг вполне оправдал мои ожидания - не прошло и месяца, как он стал jass-ером.
Для удобства, я буду обращаться в статьях к читающему – «Читатель». Надеюсь, что читатель уже неплохо овладел триггерами, знает, что такое переменные, массивы и циклы.
Содержание:
- Вступление
- Что есть jass и для чего он нужен
- Локальные переменные
- Применение локальных переменных
- Условия, циклы в jass
- Функции на jass
- Устройство триггера с точки зрения jass
- Динамическое создание триггера
- События с малым периодом
- Полярные координаты (ликбез)
- Оптимизация: утечки памяти
- Устарело - RETURN BUG (RB)
- Тип Handle
- Устарело - Система Super Custom Value (SCV) или RB+cache
- Да здравствует SCV!
- Послесловие
- Устарело - Приложение 1: проблемы Кеша и РБ
- Приложение 2: JESP стандарт
Осваиваем JASS - исправления и дополнения - также рекомендуется для ознакомления.
1. Что есть jass и для чего он нужен
Итак, Читатель, мы приступаем к освоению jass. Прежде всего, я хочу, чтобы ты понимал, что jass не является чем-то сверхъестественным и необычным. Многое, из того, что нам предстоит изучить уже будет знакомо по триггерам. И неудивительно – ведь каждое триггерное действие имеет свой аналог на jass.
Дело в том, что blizzard создали свой миниязык программирования jass. Они хотели упростить работу по программированию сценариев и их правил. Но даже такой упрощенный язык слишком сложен для многих картостроителей. Поэтому был создан редактор Trigger editor – где вместо того, чтобы набирать команды вручную, можно создавать триггеры путем выбора команд из списка. В редакторе мы работаем с триггерами, но когда игра запускает определенный сценарий, она читает не триггеры, а КОД, который создается путем перевода всех триггеров игры на язык jass.
По сути триггеры – это надстройка для языка jass упрощающая ввод команд. Но при любом упрощении происходит потеря функциональности. Т.е. возможности программирования игры триггерами в чистом виде заметно меньше, чем при программировании при помощи jass.
Итак, jass дает картостроителю новые возможности. Но стоят ли они того, чтобы их изучать? Это уже каждый картостроитель решает для себя. Jass может помочь в следующих случаях:
- Упростить создание сложных триггеров и триггерных систем, которые позволят полностью или почти полностью поменять правила оригинальной игры.
- Создавать триггерные заклинания, у которых нет аналогов в оригинальной игре.
- Оптимизировать карту, сделать, чтобы сложные триггеры не тормозили игру.
- Вставить на карту некоторые команды на jass, которые не имеют аналогов для обычных триггеров.
- Создавать собственные AI, более гибкие, чем в редакторе AI.
У некоторых бытует мнение, что на jass в игре можно сделать все. Конечно же, это не так. Более того, я не рекомендую писать все триггеры сценария исключительно на jass. Для многих задач редактор триггеров подойдет лучше – ведь это действительно очень удобная штука.
Если продолжу карта открывается в Редактор warcraft 3 но когда сохраняешь карту она в игре не запускается даже тогда когда не чего не изменяя сохраняешь в этом программе!!! не работает помоги если сможешь. за ранее спасибо)))))))))))))))))
а если уж на то пошло то надо перед тем как в редакторе открывать, ручками с архивом поработать
респект)))))))))
и почитай правила, а то после возникли вопросы по твоему знанию русского языка
и для вопросов есть модуль Q/A
ну сначала пишем структуру инвентарь
потом структуру слот(юзаем динамичную текстуру)
потом структуру тип итема
потом взаимодействие между ними
потом создаём экземпляры этих структур в нужных количествах
всё
инвентарь готов
Сейчас я поведу речь только о секции 0-1 (далее - статья), то есть конкретно о данной части рассматриваемого цикла статей.
Стоит заметить, что разметка txt2, которую использует сайт, поддерживает вставку таблиц. Эту функцию здесь можно применить по назначению.
Между разделами должна наблюдаться связь. Один раздел должен вытекать из другого (либо все остальные разделы должны вытекать из первого). К примеру, при описании преимуществ JASS стоит выделить создание локальных переменных (отсылка к разделу 2-3), доступность большего количества типов для работы с ними (в особенности с типом trackable, для которого поддержка в GUI не предусмотрена), больше возможностей для удаления висячих ссылок (отсылка к разделу 10) и многое другое.
Автор, Ваша правда, на JASS невозможно сделать с WarCraft III всё, что угодно. Однако, JASS открывает максимальный потенциал World Editor'a. Скажем, создать такую карту, как Гран-при Азерота, одними лишь средствами GUI было бы крайне затруднительно - карта бы не была такой производительной без прямого использования JASS. Порекомендуйте читателю посмотреть исходник этой карты - там найдётся много интересного. У читателя появится мотивация разобрать этот исходник. Доверять Вам они будут из-за того, что карта сделана Blizzard - разработчиками игры, причём для демонстрации возможностей JASS. А Ваш цикл статей должен помочь в этом.
Успехов Вам в нелёгком труде написания статей, а читателям - в освоении материала!
Edited by Singularity
А вот со словариком я согласен, в свое время меня это немного сбивало с толку.
Edited by Singularity
Насчёт пунктов, воспринятых придирками:
Вот в какой-то статье типа "Осваиваем редактор карт. Возможности и общее знакомство." такая инфа была бы очень даже к месту.
Да и в конце концов статья написана от лица автора, а не как абстрактная энциклопедическая статья.
Edited by Singularity
Предлагаю не разводить флуд (тем более, флейм) на эту тему, такой спор может длиться вечно и истина в нём вряд ли родится. А вот оставить оба наших мнения здесь будет хорошо: тот, кто прочитает их, будет иметь более разносторонний взгляд на эту статейку.
Сам пришёл на эту статью с мыслью "Что же это такое по мнению автора? Может, есть, чему научиться?"
Edited by Bornikkeny
P.S. Всегда писал JASS в верхнем регистре. Смерти желаю тем кто называет JASS - jass'ом.
А всё потому, что Вы пожелали ему просветления, а не смерти. Всё ведь начинается с малого. :)