adic3x
offline
Опыт:
107,539Активность: |
Плюс тому, кто объяснит, почему данная конструкция потенциально забагована. К слову, при использовании функции в одну строку vex долюен ее благополучно заинлайнить, а адик потом благополучно убрать из кода. |
11.05.2014, 12:40 | #41
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,317Активность: |
Я тут пока с группами мучаюсь... фильтры всякие и прочее... в общем тёмный лес пока для меня... и ничего не выходит .-. |
11.05.2014, 16:08 | #42
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Кет
offline
Опыт:
111,373Активность: |
nvc123:
Спасибо, помогло =3 Пойду глобалки объявлять. Отредактировано Кет, 11.05.2014 в 17:37. |
11.05.2014, 16:43 | #43
+3/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Tobi123
offline
Опыт:
7,826Активность: |
Extremator:
Перебор, без фильтров, заносить всех юнитов в специальную группу для перебора, если юнит подходящая цель, то делать что-то, затем удалять юнита из группы. |
11.05.2014, 17:13 | #44
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
nvc123
new status
offline
Опыт:
59,284Активность: |
Tobi123, в зависимости от цели перебора |
11.05.2014, 18:02 | #45
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
adic3x
offline
Опыт:
107,539Активность: |
Мне кажется каким-то диким сюрреализмом Кет, который в 2014 идет ставить NGJP, чтобы объявлять глобалки. |
11.05.2014, 21:59 | #46
+5/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
40,317Активность: |
Слушайте, в ведь JNGP обновляют? работает кто-то в этим делом? И вероятно должна быть соответствующая тема с предложениями и указанием багов для исправления... Верно? есть такой топик? ... или не стоит задумываться об этом? |
11.05.2014, 22:53 | #47
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
Extremator, лет как пять не работают) |
12.05.2014, 00:26 | #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. |
|
15.05.2014, 12:30 | #49
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Buulichkaa
Делаю спеллы за еду
offline
Опыт:
20,171Активность: |
GetLocalPlayer, ._. делать нечего, кроме как объяснять то, что уже разжевали? |
15.05.2014, 13:18 | #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. |
|
15.05.2014, 14:04 | #51
+2/−2
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Спасибо за болезнетворную копипасту материалов, которые автор сам должен был найти в соседней теме. |
15.05.2014, 14:07 | #52
+3/−3
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
GetLocalPlayer
offline
Опыт:
10,420Активность: |
На здоровье. Копипастить из головы не так уж и сложно.
|
15.05.2014, 14:14 | #53
+2/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
ScorpioT1000
Работаем
online
Опыт: отключен
|
Зато очень вредно для автора. |
15.05.2014, 14:22 | #54
+2/−3
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Sergarr
offline
Опыт:
4,677Активность: |
Extremator, xgm.guru/filesv5/projects/100/4585/jassnewgenpack5d_experemental... вот тебе нормальный джнпг с нормальным временем суток в редакторе, с нормальными константами и пр. |
16.05.2014, 22:39 | #55
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Msey
????
offline
Опыт:
67,346Активность: |
GetLocalPlayer, классненько, столько нового!!!! пиши еще статьи, не слушай скорпа. верь в себя! |
17.05.2014, 13:13 | #56
+1/−1
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|