Понедельник, 20.05.24, 05:28


Главная
Регистрация
Вход
Приветствую Вас Гость | RSS  
WarCraft III TFT

Наш опрос
Кто же имба?
Всего ответов: 5504

Новые файлы
[08.02.11]
[Герои]
Всадник Апокалипсиса (355)
[08.02.11]
[Герои]
Воин небес (256)
[08.02.11]
[Герои]
Джедайствующий паладин (272)
[08.02.11]
[Герои]
Иллюзионистка (271)
[08.02.11]
[Герои]
Повелитель кислоты (310)

TOP 5 файлов
[08.02.11][Melee]
Земли Бога v40.8 (4041)
[23.07.09][AoS]
Bleach Wars 2.3 (3092)
[14.04.10][TD]
Element TD 6.0 (2640)
[21.07.09][Программы]
Команды для X_Hero_Siege_3.30 (2502)
[03.11.09][Arena]
Жизнь на арене 1.9 (2221)



Статистика
CY and PR и SEO анализ
Rambler's Top100

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Главная » Статьи » Создание карт » Триггеры

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» в методах.
Вы можете использовать структуры, чтобы заменять хеш-таблицы.

Данное заклинание телепортирует юнита в его начальную позицию через случайное количество секунд. Этот триггер использует хеш-таблицы только один раз, и этот триггер намного быстрей, чем, если сделать полностью с хеш-таблицами, так как структуры быстрей хеша.
Категория: Триггеры | Добавил: GeDfLy (04.12.10)
Просмотров: 1058 | Рейтинг: 0.0/0 |
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа

Art work

Поиск

Интересные ссылки!



Copyright MyCorp © 2024Используются технологии uCoz