vJass для новичков - Wc3-Maps Форум













[ Главная · Новые сообщения · Участники · Правила форума · Поиск · RSS ]
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: Strateg, Melissa  
Wc3-Maps Форум » Раздел для картостроителей » Вопросы по картостроению » vJass для новичков (Эта статья расскажет о том, что такое vJass и с чем его едят)
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
Статус: Не на сайте
Автор: 1337D00D
 
-
влад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 для новичков я новичок мне не фика не понятно wacko скорее для любителей
ПиФка для рыФка
ВАм ВСЕМ ПАНДА
что боишся :)
 
-
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
Статус: Не на сайте
наконец то biggrin
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
Статус: Не на сайте
Quote (Paladin)
Нужна программа Jass New Gen Pack, Если она у вас не стоит то нечего не будет понятно

biggrin а разве с ней будет понятно? surprised

Look at my horse!
 
-
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
Статус: Не на сайте
О все понял спс biggrin
Блин ну наработка серавно не работает )
(Есть люди желающие разобраться в 20 страницах Jass кода ? biggrin )

Добавлено (19/09/2012, 12:10:47)
---------------------------------------------
У меня глобалки не работают
Надеюсь правельно делаю создаю в custum коде карты
globals
тут названия ихние
endglobals
Потом в триггерах простенькое обращение к этой переменной. И у меня после теста выкидывает в главное меню карты.И за этого походу и наработка которую хочу импортировать не работает. Кто знает в чем причина ??



ЗДЕСЬ ПИВО ХАЛЯВНОЕ ВСЕГДА!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
 
-
влад10011Дата: Среда, 19-09-2012, 15:06:36 | Сообщение # 20

загрузка наград ...
Группа: V.I.P.
Сообщений: 1265
Репутация: 1039
Статус: Не на сайте
blink хз я не юзаю в костром коде ничего(чтобы добавить в костром код что-нибудь из триггера сделай так:

Code
library RRRR

globals

unit UNIT
real REAL

endglobals

endlibrary

или мб у тебя не та версия JNGP, скачай экспериментальную сборку с ХГМа
на позволит делать вот так:
Code

if boolean!=true {

}


Code
nothing MyFunc(unit u) {

}


Code
library A {

}


т.е. писать блоки как в C++(и это далеко не единственное что есть в нём)

Look at my horse!
 
Wc3-Maps Форум » Раздел для картостроителей » Вопросы по картостроению » vJass для новичков (Эта статья расскажет о том, что такое vJass и с чем его едят)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:
Рейтинг@Mail.ru
Яндекс.Метрика

Copyright © 2010-2017
Вакансии :: Контакты
Мобильная версия сайта
chat