vJass для новичков
|
|
-
Paladin | Дата: Четверг, 26-07-2012, 05:35:31 | Сообщение # 1 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
В данной статье описаны такие вещи: Области Библиотеки Текстовые макросы Структуры Методы Глобальные переменные Теперь вы можете ставить блок глобальных переменных в любой части кода. И их можно писать без уродливой приставки «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» в методах.
Вы можете использовать структуры, чтобы заменять хеш-таблицы.
Данное заклинание телепортирует юнита в его начальную позицию через случайное количество секунд. Этот триггер использует хеш-таблицы только один раз, и этот триггер намного быстрей, чем, если сделать полностью с хеш-таблицами, так как структуры быстрей хеша.
|
| | |
-
влад10011 | Дата: Четверг, 26-07-2012, 10:56:48 | Сообщение # 2 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
мда тут Jass"еров только веталько неверморе и древний пингвин(ну он то уже знает vJass) ну я ещё учу Jass немног смысл писать тут эту статью? тут надо знание Jass и ни слова о том что надо JNGP без которого эта фигня которую ты тут понаставил не работает.... и ещё ты не указал автора статьи
Look at my horse!
|
| | |
-
Paladin | Дата: Четверг, 26-07-2012, 11:02:27 | Сообщение # 3 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
| | |
-
влад10011 | Дата: Четверг, 26-07-2012, 11:09:32 | Сообщение # 4 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
и как всегда тебе лень увеличить картинки....
Look at my horse!
|
| | |
-
Paladin | Дата: Четверг, 26-07-2012, 13:27:47 | Сообщение # 5 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
Тебе что не видно очки одень
|
| | |
-
влад10011 | Дата: Четверг, 26-07-2012, 13:46:57 | Сообщение # 6 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
если ты видишь скажи на милость что тут написано: Добавлено (26/07/2012, 13:46:57) --------------------------------------------- тут всё размазано и мелко с делай увеличение и ещё 1 которая ниже Quote (Paladin) Параметры, которые берёт этот текстовый макрос - FUNC и INSTANCE. Перед $INSTANCE$обязательно должно быть «do» . Это необходимо, так как если вы не поставите это, то создадутся 2 функции с одинаковыми именами.
Вот другой пример: тоже мелкая
Look at my horse!
|
| | |
-
megawarcrafter3 | Дата: Четверг, 26-07-2012, 14:04:52 | Сообщение # 7 |
загрузка наград ...
Группа: Пользователи
Сообщений: 25
Репутация: 175
Статус: Не на сайте
|
название не то vJass для новичков я новичок мне не фика не понятно скорее для любителей
ПиФка для рыФка ВАм ВСЕМ ПАНДА что боишся :)
|
| | |
-
Paladin | Дата: Четверг, 26-07-2012, 14:45:37 | Сообщение # 8 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
Добавлено (26/07/2012, 14:45:37) ---------------------------------------------
|
| | |
-
влад10011 | Дата: Четверг, 26-07-2012, 15:07:38 | Сообщение # 9 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
наконец то
Look at my horse!
|
| | |
-
AncientPenguin | Дата: Четверг, 26-07-2012, 15:07:51 | Сообщение # 10 |
загрузка наград ...
Группа: Избранные
Сообщений: 449
Репутация: 526
Статус: Не на сайте
|
Quote (Paladin) Библиотеки Библиотека – это группа функций, которые будут вставлены в код карты перед Custom script’ом и после объявления глобальных переменных. Полезно если у нас есть функция, которую много раз вызывают в разных триггерах.
Убило...
Quote (Paladin) Благодаря структурам Jass стает более похожим на другие объекто-ориентировочные языки программирования, такие как C
Си не Объектно-ориентированный.
Quote (Paladin) C++ структуры называют классами.
Да вы што, там и структуры есть.
|
| | |
-
Paladin | Дата: Четверг, 26-07-2012, 15:27:35 | Сообщение # 11 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
Нужна программа Jass New Gen Pack, Если она у вас не стоит то нечего не будет понятно
|
| | |
-
влад10011 | Дата: Четверг, 26-07-2012, 15:36:16 | Сообщение # 12 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
| | |
-
Paladin | Дата: Четверг, 26-07-2012, 16:23:52 | Сообщение # 13 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
Нет но она нужна если ее у вас нет значит вы нечего не сможете ничего сделать что написано в этой статье
|
| | |
-
влад10011 | Дата: Пятница, 27-07-2012, 12:26:45 | Сообщение # 14 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
Quote (Paladin) Нет но она нужна если ее у вас нет значит вы нечего не сможете ничего сделать что написано в этой статье это я знаю но я имею ввиду что выражайся понятней а не "Если она у вас не стоит то нечего не будет понятно"....
Добавлено (26/07/2012, 19:56:40) --------------------------------------------- и правильней сказать что простой редактор выдаст ошибку на синтаксис vJass а в JNGP уже встроен этот синтаксис и поэтому ошибки не будет.
Добавлено (27/07/2012, 12:26:45) --------------------------------------------- мб эту тему в топку а я норм статью выложу тут нефига непонятно у меня есть очень понятная статья только ей конца и края нету) зато благодаря ей я хотя бы понял что такое структура и как её использовать) там и наглядные примеры и как это выглядело бы в простом Jass
Look at my horse!
|
| | |
-
Paladin | Дата: Воскресенье, 02-09-2012, 10:52:50 | Сообщение # 15 |
НЕ ГНОМ
загрузка наград ...
Группа: Модераторы
Сообщений: 1716
Репутация: 3048
Статус: Не на сайте
|
Quote (влад10011) это я знаю но я имею ввиду что выражайся понятней а не "Если она у вас не стоит то нечего не будет понятно".... Quote (влад10011) и правильней сказать что простой редактор выдаст ошибку на синтаксис vJass а в JNGP уже встроен этот синтаксис и поэтому ошибки не будет. не умничей пожалуйстаДобавлено (02/09/2012, 10:52:50) ---------------------------------------------
Quote (Paladin) зато благодаря ей я хотя бы понял что такое структура и как её использовать) все таки это статья тебя хоть чему нибудь научила
|
| | |
-
влад10011 | Дата: Вторник, 11-09-2012, 19:50:25 | Сообщение # 16 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
Quote (Paladin) все таки это статья тебя хоть чему нибудь научила я про свою статью и стоит добавить что Структура это массив переменных например struct AAA real r=3423.00 unit u=null endtruct На Jass это будет выглядеть так: globals integer St_AAA real r[St_AAA]=3423.00 unit u[St_AAA]=null endglobals И структура может быть глобальной что позволяет не использовать систему Массивов(хотя при переводе в Jass получается тоже самое что масивы)))
Look at my horse!
|
| | |
-
beril | Дата: Вторник, 11-09-2012, 20:02:01 | Сообщение # 17 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 247
Репутация: 368
Статус: Не на сайте
|
Теперь вы можете ставить блок глобальных переменных в любой части кода.
И их можно писать без уродливой приставки «udg_». То есть не надо создавать глобальную переменную ?? Или надо ее создавать просто приставку не надо писать udg, ато я никак одну наработку не могу импортировать
ЗДЕСЬ ПИВО ХАЛЯВНОЕ ВСЕГДА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
|
| | |
-
влад10011 | Дата: Вторник, 11-09-2012, 20:37:18 | Сообщение # 18 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
beril, Вот смотри: при создании переменных в редакторе переменных они выглядят так: globals unit udg_u real udg_r endglobals близы сделали так чтобы нубики не запороли карту если напишут в названии unit будет ошибка тк это тип для этого стоит приставка udg_ а vJass тоесть JNGP позволяет самому выбирать название переменной например есть предсуфикс private чтобы юзать переменную в пределах 1 библиотеке например private unit Unit она будет выглядеть так: globals unit ИМЯ Библиотеки__Unit endglobalsДобавлено (11/09/2012, 20:37:18) ---------------------------------------------
Quote (beril) То есть не надо создавать глобальную переменную ?? как бы написав колонку глобалс ты её создашь))) переменные в колонке глобалс отправляются ко всем переменным вверху кода(в варовский глобалс)
Look at my horse!
|
| | |
-
beril | Дата: Среда, 19-09-2012, 12:10:47 | Сообщение # 19 |
Темный рыцарь
загрузка наград ...
Группа: Проверенные
Сообщений: 247
Репутация: 368
Статус: Не на сайте
| | |
-
влад10011 | Дата: Среда, 19-09-2012, 15:06:36 | Сообщение # 20 |
загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
|
хз я не юзаю в костром коде ничего(чтобы добавить в костром код что-нибудь из триггера сделай так:
Code library RRRR
globals
unit UNIT real REAL
endglobals
endlibrary или мб у тебя не та версия JNGP, скачай экспериментальную сборку с ХГМа на позволит делать вот так: Code if boolean!=true {
}
Code nothing MyFunc(unit u) {
}
т.е. писать блоки как в C++(и это далеко не единственное что есть в нём)
Look at my horse!
|
| | |