vJass для новичков Эта статья расскажет о том, что такое vJass и с чем его едят. Стоп! Если у вас не стоит Jass New Gen Pack, даже не начинайте читать статью. В данной статье описаны такие вещи:
- Области
- Библиотеки
- Текстовые макросы
- Структуры
- Методы
Глобальные переменные Теперь вы можете ставить блок глобальных переменных в любой части кода. И их можно писать без уродливой приставки «udg_». Библиотеки
Библиотека – это группа функций, которые будут вставлены в код карты
перед Custom script’ом и после объявления глобальных переменных. Полезно
если у нас есть функция, которую много раз вызывают в разных триггерах.
Синтаксис: Пример: Функция libfunc() будет загружена перед любыми другими функциями. Требования библиотек
Иногда функции в пределах библиотеки используют данные из других
библиотек. В этом случае, мы используем параметр "requires". Библиотека,
чьё имя указано после параметра, будет размещена выше данной
библиотеки. Пример: Но учтите, что две библиотеки не могут требовать друг друга. Инициализация библиотек
В случаях, где нам надо, чтобы перед использованием библиотеки
выполнялась какая-либо функция, будет использован параметр
"initializer". Эта функция не должна ничего брать. Пример: Эти функции могут находиться и внутри библиотек. Частные библиотеки
Функции в пределах библиотек могут быть помечены как "private".
Функции, которые объявлены как «private»могут быть использованы только в
пределах этой библиотеки. Функции за пределами библиотеки могут иметь
то же имя что и частная функция. Полезно при импорте нескольких
наработок в карту, где имена функций могут повторяться. Только функции этой библиотеки могут вызывать данную функцию. Для того, чтобы функция стала частной, поставьте оператор «private» перед именем функции. Пример: Области Области похожи на библиотеки, но они размещаются на своих реальных местах в коде (также области не могут инициализироваться и использовать другие области).
Полезно когда функция должна использоваться только в определённом
участке кода, но не обязана объявляться вверху кода сценария. Синтаксис: Пример: Частные области Так же, как и с библиотеками. Текстовые макросы Текстовые макросы позволяют вам делать аналогичные копии других функций. Синтаксис: На заметку: "//!" не комментарий, а обозначение конструкции.
Текстовый макрос заменит $ANYTHINGS$ независимо от того, какие значение
вы придаёте ему, запуская макрос. Это немного трудно понять, так что
взглянем на пример: Пример: Этот текстовый макрос создаст две функции:
Параметры, которые берёт этот текстовый макрос - FUNC и INSTANCE. Перед
$INSTANCE$обязательно должно быть «do» . Это необходимо, так как если
вы не поставите это, то создадутся 2 функции с одинаковыми именами. Вот другой пример: В этом примере вы не должны заново переписывать функцию, просто написать «//! runtextmacro chat("*число*")». Структуры
Благодаря структурам Jass стает более похожим на другие
объекто-ориентировочные языки программирования, такие как C и C++. В PHP
и C++ структуры называют классами. Пример: Эта функция отобразит «Hello!». Синтаксис: Создание структуры: Удаление структуры: Для того, чтобы обратиться к переменной, которая находиться в пределах структуры используется данное действие: Вот другой пример: Вышеуказанная функция отобразит «6». Учтите, что вам не надо обнулять переменные внутри структур.
При каждом создании структуры создается отдельная копия, так что можно
иметь несколько структур с одинаковыми именами в один момент. Методы Методы – это функции, которые находятся в пределах структур. Пример: Чтобы вызывать метод: Обратите внимание на то, что внутри метода «sayit». Я использовал «this.msg». Для того, чтобы использовать переменную из этой же структуры используйте "this.". Не используйте GetTriggeringTrigger() или функции «PolledWait» и «TriggerSleepAction» в методах. Вы можете использовать структуры, чтобы заменять хеш-таблицы.
Данное заклинание телепортирует юнита в его начальную позицию через
случайное количество секунд. Этот триггер использует хеш-таблицы только
один раз, и этот триггер намного быстрей, чем, если сделать полностью с
хеш-таблицами, так как структуры быстрей хеша. |