![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
Плюс тому, кто объяснит, почему данная конструкция потенциально забагована. К слову, при использовании функции в одну строку vex долюен ее благополучно заинлайнить, а адик потом благополучно убрать из кода. |
![]() |
#41
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,822Активность: |
Я тут пока с группами мучаюсь... фильтры всякие и прочее... в общем тёмный лес пока для меня... и ничего не выходит .-. |
![]() |
#42
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Кет
![]() offline
Опыт:
111,209Активность: |
nvc123:
Спасибо, помогло =3 Пойду глобалки объявлять. Отредактировано Кет, 11.05.2014 в 17:37. |
![]() |
#43
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Tobi123
![]() offline
Опыт:
7,826Активность: |
Extremator:
Перебор, без фильтров, заносить всех юнитов в специальную группу для перебора, если юнит подходящая цель, то делать что-то, затем удалять юнита из группы. |
![]() |
#44
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
nvc123
new status
![]() offline
Опыт:
59,284Активность: |
Tobi123, в зависимости от цели перебора |
![]() |
#45
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
adic3x
![]() offline
Опыт:
108,439Активность: |
Мне кажется каким-то диким сюрреализмом Кет, который в 2014 идет ставить NGJP, чтобы объявлять глобалки. |
![]() |
#46
+5/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Extremator
![]() ![]() offline
Опыт:
39,822Активность: |
Слушайте, в ведь JNGP обновляют? работает кто-то в этим делом? И вероятно должна быть соответствующая тема с предложениями и указанием багов для исправления... Верно? есть такой топик? ... или не стоит задумываться об этом? |
![]() |
#47
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Msey
????
![]() offline
Опыт:
67,346Активность: |
Extremator, лет как пять не работают) |
![]() |
#48
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
GetLocalPlayer
![]() offline
Опыт:
10,420Активность: |
Цитата:
Давай проведем небольшой эксперимент. Создадим новую карту и зайдем в редактор триггеров. Теперь, в разделе переменных, создадим новую переменную целочисленного типа с именем MyInteger и сохраним карту. Готово? Замечательно! Скачиваем любой софт работающий с MPQ архивами и открываем в нем карту. В появившемся списке выберем файл war3map.j (там записываются все триггеры имеющиеся в карте) и откроем его любым текстовым редактором. Что же мы увидим? А увидим мы, помимо функций, область объявления глобальных переменных и нашу переменную MyInteger с соответствующей ей приставкой udg_. ![]() Второй переменной, с кучей подчеркиваний, будет наш триггер инициализации карты, создаваемый редактором по умолчанию. Теперь тоже самое проделаем в несколько ином формате. Открыв карту в пресловутом Jass New Gen Pack, добавим в Custom Script карты следующие строчки: Код:
Теперь сохраним карту, не забыв поставить галочку в настройках рядом с Enable JassHelper. Вновь открываем карту как MPQ архив и заглядываем в содержимое файла war3map.j. И что же мы там увидим? Правильно, мы увидим нашу новую переменную в разделе globals! Да еще с подписью виновника происходящего. ![]() Так что же мы получаем? 1. Все глобальные переменные объявляются в файле war3map.j и происходит это в отрезке кода, ограниченного операторными скобками globals/endglobals. 2. Глобальные переменные должны быть объявлены выше всех функций карты. И что же происходит когда мы объявляем глобальные переменные в любом участке посредством globals/endglobals? Ничего особенного, просто JassHelper любезно перетаскивает их в самый верх кода, как раз туда, где они должны быть объявлены. Без использования Jass New Gen Pack, мы могли бы, с тем же успехом, вручную прописать необходимые переменные в разделе globals файла war3map.j. Отредактировано GetLocalPlayer, 15.05.2014 в 12:48. |
|
![]() |
#49
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Buulichkaa
Делаю спеллы за еду
![]() ![]() offline
Опыт:
20,171Активность: |
GetLocalPlayer, ._. делать нечего, кроме как объяснять то, что уже разжевали? |
![]() |
#50
+0/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
GetLocalPlayer
![]() offline
Опыт:
10,420Активность: |
Цитата:
Библиотеки - library - еще один очень удобный инструмент, предоставленный народными умельцами. Что же в них такого особенного? А имеют они следующие достоинства: ![]() Весь код расположенный в библиотеке, будет перенесен в самый верх файла war3map.j, сразу после объявления глобальных переменных globals/endglobals, это даже выше Custom Script карты. Код:
![]() Одни библиотеки, могут ссылаться на другие библиотеки. Код:
Таким образом, независимо от расположения библиотеки A относительно библиотек B, JassHelper автоматически перенесет весь код внутри библиотеки B выше кода внутри библиотеки A. Код:
А также, кроме ключевого слова uses, можно воспользоваться словами needs или requires. На свой вкус. ![]() Библиотеки дают возможность объявлять приватные конструкции. Код:
Здесь мы написали библиотеку с именем A, которая содержит переменную целочисленного типа Time и две функции MyPivateFunc и MyFunc. ![]() Библиотеки дают возможность объявлять публичные конструкции. Код:
Здесь переменная Time объявлена приватной и мы не можем к ней обратится никак извне библиотеки. Функция MyPublicFunc объявлена публичной, что дает нам возможность обратится к ней извне библиотеки, однако для этого нам придется добавить к ее имени префикс, состоящий из имени библиотеки и символа подчеркивания: Код:
Ну а функция MyFunc доступна извне библиотеки, как самая обычная функция. ![]() Самоинициализация библиотек. Код:
Здесь, в момент инициализации карты, будет создан юнит с рав-кодом 'h000' в центре карты, под командованием красного игрока и направлением взгляда на 270 градусов, то бишь "лицом к игроку". ![]() Внутри библиотек можно объявлять области scope/endscope, однако внутри библиотек нельзя объявлять другие библиотеки. Фича весьма бесполезная, на мой взгляд. Код:
Всем спасибо, я кончил. Отредактировано GetLocalPlayer, 16.05.2014 в 08:58. |
|
![]() |
#51
+2/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Спасибо за болезнетворную копипасту материалов, которые автор сам должен был найти в соседней теме. |
![]() |
#52
+3/−3
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
GetLocalPlayer
![]() offline
Опыт:
10,420Активность: |
На здоровье. Копипастить из головы не так уж и сложно.
|
![]() |
#53
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
ScorpioT1000
Работаем
![]() ![]() offline
Опыт: отключен
|
Зато очень вредно для автора. |
![]() |
#54
+2/−3
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Sergarr
![]() offline
Опыт:
4,677Активность: |
Extremator, xgm.guru/filesv5/projects/100/4585/jassnewgenpack5d_experemental... вот тебе нормальный джнпг с нормальным временем суток в редакторе, с нормальными константами и пр. |
![]() |
#55
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
![]()
Msey
????
![]() offline
Опыт:
67,346Активность: |
GetLocalPlayer, классненько, столько нового!!!! пиши еще статьи, не слушай скорпа. верь в себя! |
![]() |
#56
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|