Осваиваем jass (0-1)

Добавлен , опубликован
Раздел:
Триггеры и объекты
Содержание:

0. Вступление

Этот цикл статей посвящен изучению языка jass (создание текстовых триггеров, так называемых скриптов). Хотя про jass уже написано достаточное число статей, но многие картостроители все равно не желают его изучать. И я их вполне понимаю – для тех, кто не занимается программированием в тех статьях, которые имеются, разобраться довольно сложно. Не хватает некоторых базовых знаний, не понятно, с чего начинать и т.д.
Любой учитель знает, что излагать предмет надо поэтапно и в определенной последовательности. Я выбрал последовательность в том порядке, в котором сам когда-то начал осваивать язык jass. Так что триггерщики, которые до сих пор не решаются приступить к изучению jass, смогут проделать тот же путь.
Эти статьи я написал для одного своего друга триггерщика. И друг вполне оправдал мои ожидания - не прошло и месяца, как он стал jass-ером.
Для удобства, я буду обращаться в статьях к читающему – «Читатель». Надеюсь, что читатель уже неплохо овладел триггерами, знает, что такое переменные, массивы и циклы.
Содержание:
  1. Вступление
  2. Что есть jass и для чего он нужен
  3. Локальные переменные
  4. Применение локальных переменных
  5. Условия, циклы в jass
  6. Функции на jass
  7. Устройство триггера с точки зрения jass
  8. Динамическое создание триггера
  9. События с малым периодом
  10. Полярные координаты (ликбез)
  11. Оптимизация: утечки памяти
  12. RETURN BUG (RB)
  13. Тип Handle
  14. Система Super Custom Value (SCV) или RB+cache
  15. Да здравствует SCV!
  16. Послесловие
  17. Приложение 1: проблемы Кеша и РБ
  18. Приложение 2: JESP стандарт
Осваиваем JASS - исправления и дополнения - также рекомендуется для ознакомления.

1. Что есть jass и для чего он нужен

Итак, Читатель, мы приступаем к освоению jass. Прежде всего, я хочу, чтобы ты понимал, что jass не является чем-то сверхъестественным и необычным. Многое, из того, что нам предстоит изучить уже будет знакомо по триггерам. И неудивительно – ведь каждое триггерное действие имеет свой аналог на jass.
Дело в том, что blizzard создали свой миниязык программирования jass. Они хотели упростить работу по программированию сценариев и их правил. Но даже такой упрощенный язык слишком сложен для многих картостроителей. Поэтому был создан редактор Trigger editor – где вместо того, чтобы набирать команды вручную, можно создавать триггеры путем выбора команд из списка. В редакторе мы работаем с триггерами, но когда игра запускает определенный сценарий, она читает не триггеры, а КОД, который создается путем перевода всех триггеров игры на язык jass.
По сути триггеры – это надстройка для языка jass упрощающая ввод команд. Но при любом упрощении происходит потеря функциональности. Т.е. возможности программирования игры триггерами в чистом виде заметно меньше, чем при программировании при помощи jass.
Итак, jass дает картостроителю новые возможности. Но стоят ли они того, чтобы их изучать? Это уже каждый картостроитель решает для себя. Jass может помочь в следующих случаях:
  1. Упростить создание сложных триггеров и триггерных систем, которые позволят полностью или почти полностью поменять правила оригинальной игры.
  2. Создавать триггерные заклинания, у которых нет аналогов в оригинальной игре.
  3. Оптимизировать карту, сделать, чтобы сложные триггеры не тормозили игру.
  4. Вставить на карту некоторые команды на jass, которые не имеют аналогов для обычных триггеров.
  5. Создавать собственные AI, более гибкие, чем в редакторе AI.
У некоторых бытует мнение, что на jass в игре можно сделать все. Конечно же, это не так. Более того, я не рекомендую писать все триггеры сценария исключительно на jass. Для многих задач редактор триггеров подойдет лучше – ведь это действительно очень удобная штука.

2
23
18 лет назад
2
Слышь, всё конечно хорошо, но Return Bug.w3x не работает, а при попытке сделать сэйв выдаёт 10 - 20 ошибок, и всё блокируется....!
2
8
18 лет назад
2
нашел ошибку в статье:в функции function PROPERY takes nothing returns nothing
call AdjustPlayerStateBJ( 1000, Player(0), PLAYER_STATE_RESOURCE_GOLD )
endfunction имя функции не совпадает с тем, которым вы вызываете функцию call PROPERTY :))
1
2
18 лет назад
1
Denetor ты слепой чтоли? Читай внимательней, никакая там не ошибка
1
8
18 лет назад
1
Ну исправили значит уже, но она там была, это 100%=))
1
0
18 лет назад
1
нормално...
1
23
18 лет назад
1
МЛИН!!!-GetSpellTargetUnit() а WorldEdit у меня такой команды незнает
0
13
18 лет назад
0
Ну вот добрался до джаза!!!!буду постигать, в конце недели скажу результаты своих пистижений♀
1
4
18 лет назад
1
function propery takes integer n, integer gold returns nothing
^
нужно property
2
33
18 лет назад
2
Статья отличная ! И RB вполне даже пашет )))
0
26
18 лет назад
0
Внимание, статья дополнена.
2
6
18 лет назад
2
таакс я тоже начинаю джазз изучать
1
17
17 лет назад
1
отличноя статья!!
2
1
17 лет назад
2
херня этот Jass !!! WorldEditor FOREVER!!!
2
20
17 лет назад
2
Яю несказал так Hummel...
ТРИГГЕРЫ ФОРЕВА!!! JASS тоже ничего!
1
17
17 лет назад
1
Hummiel, на тригах ты далеко не уедешь, да и к тому же надоедут быстро... Как мне, допустим...
2
0
17 лет назад
2
_Duke™ зач0т аффтару.
1
33
17 лет назад
1
Ой ребята, что вы морозите... ГУИ нерулит, Жасс Жжот)
2
0
17 лет назад
2
Нафиг вообще этот джас нужен, на триггерах легче работать!
Я дапустим ещё даже в триггерах плохо разобрался!
2
17
17 лет назад
2
Может эта статья и давно написана но я скажу что это круто т к это амая понятная статья о джассе какую я видел !
2
3
17 лет назад
2
ехх...мне бы выучить переменные,и тригеры поподробнее...
а потом жасс)
1
20
17 лет назад
1
Пора учить, я незнаю англицкий! И ГУИ у меня весь русский и я привык работать на нём!
Вопрос: смогу ли я выучить этот язык програмирования? Знаю что мне никто не ответит, но мало ли.
2
17
17 лет назад
2
Жасс это сила - т к я считаю что если его выучить то другие языки программирования будет учить легче.
1
33
17 лет назад
1
Krol, ну помойму эт от тя зависит=)
1
0
17 лет назад
1
Етот джазз может и вправду хорошая штука, но не для меня. все что я делаю на джаззе всегда скакими та ошибками... А в Гуи все нормально.
Кстати можете сделать Гуи тригер, а потом нажать Редактировать=>Перевести у текст и будет джазз...
1
33
17 лет назад
1
matrix, это жасс небудет лучше чем ГУИ.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.