Сейчас 11:03:15 Пятница, 22 ноября, 2024 год
Главная ⇒ Форум ⇐ RSS Файлы Cтатьи Картинки В о й т и   или   з а р е г и с т р и р о в а т ь с я

Меню сайта

Категории

Наш опрос
Ваша любимая раса?
Проголосовало: 177949

Сейчас на сайте
На сайте всего: 170
Гостей: 170
Пользователей: 0

Реклама

Главная » Статьи по WarCraft 3 » Создание карт » Jass
vJass для новичков
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» в методах.

Вы можете использовать структуры, чтобы заменять хеш-таблицы.



Данное заклинание телепортирует юнита в его начальную позицию через случайное количество секунд. Этот триггер использует хеш-таблицы только один раз, и этот триггер намного быстрей, чем, если сделать полностью с хеш-таблицами, так как структуры быстрей хеша.



Автор: 1337D00D
Перевёл: Сорнемус
Источник
Просмотров: 7908 Добавил: Сорнемус Добавлено: 28 Января 2010 в 00:52:06
Комментариев: 13 |

Всего комментариев: 121 2 »
02 Декабря 2011
Не оч понятно

13 Августа 2011
11. Михаил (Igni2012) [Материал]
local timer t = CreateTimer()
set data.x = GetUnitX(t)
<_<

02 Июля 2011
10. Александр (NecroNezniy) [Материал]
я сначала сам ничего не понимал, но потом разобрался, правда еще не до конца...

07 Марта 2011
9. Даниил (daf-dvf) [Материал]
Ну точнее не вообще ничего, а не совсем все.. как иницилизовать переменные понял.

07 Марта 2011
8. Даниил (daf-dvf) [Материал]
Люди! Ничего не понял. Кто может меня научить jass? Очень надо!!!

10 Февраля 2011
7. Зайцев Максим Александрович (maxander) [Материал]
Люди чёто я непойму как там делать в джас новый рельеф ато у меня старый стаит почемуто!!! :( :( :( :( :( :( :( :(

02 Февраля 2011
не очень понятно :(

25 Декабря 2010
5. ЗАЧЕМ ВА НАДО? (КрутойИз2011) [Материал]
ЧО ЗА ХРЕНЬ angry2

11 Мая 2010
Не очень.....

05 Мая 2010
3. Іван (TomeKk) [Материал]
>(

1-10 11-12
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]

Форма входа

Поиск

Случайная картинка

Случайный файл
[04 Июня 2008]
[Карты · Arena]
Eternal War's Isle v2.05 -
Новая версия итересной арены на острове! Список всех изменений в полном описании карты.

Новые карты
[07 Февраля 2016]
Переезжаем на другой сайт, господа![Dota]
[18 Октября 2015]
Duel of Gods PreV[Другое]
[18 Октября 2015]
Hero of The Empire v1.18g[RPG]
[17 Октября 2015]
Servant War v1.05[Другое]
[17 Октября 2015]
Age of Vikings Edited v1.6[Другое]
[17 Октября 2015]
Strife of the Champions Beta v1.2[Arena]
[17 Октября 2015]
VirusBoll (rus)[Другое]
[17 Октября 2015]
Exterminators v1[AoS]
[17 Октября 2015]
The Lord Heroes v1.2[Другое]
[17 Октября 2015]
Versus heroe Arena 1.0 AI[Arena]

5 лучших по кол-ву добавленных статей
[ Duosora ] [ 58 ]
[ Messenger ] [ 52 ]
[ Bru ] [ 39 ]
[ Pand@ ] [ 35 ]
[ OrcRider ] [ 27 ]

Наша кнопка
Warcraft3FT.info - Всё для Warcraft 3 и DotA

Другие варианты

Статистика

Материалы:
Новости: 1010
Файлы: 8668
Статьи: 680
Картинки: 8256
Форум: 30520/954989
Комментарии: 58094
Copyright © 2006 - 2024 Warcraft3FT.info При копировании материалов c сайта ставьте, пожалуйста, активную обратную ссылку на нас • Design by gReeB04ki ©
Хостинг от uCoz