Библиотека "All.j" вполне неплохо работает, результат потрясающий! Но есть проблема, когда происходит "Pick every units in range ... matching ..." то делается всё наоборот, либо вообще пропускает, словно условие истинно, но это не так! На некоторых заклинаниях приспособился, сначала заношу группу в переменную "set CurrentGroup = Units in Range 500.00 of matching <бла-бла-бла...>", а затем эту переменную указываю в "Pick every unit in CurrentGroup and do...", и многие ошибки так удалось обойти. Но встретил ошибку в группе, когда может правильно определить группу, а может и нет, и это происходит случайно, во время игры. Предыдущий метод, заносить сначала в переменную, уже не помогает. Я не программист на jass, поэтому прошу посмотреть файл тех кто разбирается. Он не такой уж и большой. Покрутил там таймер в функции удаления групп, изменил ".0" на "2.0". Перезагрузил со скриптом. Стал удалять с задержкой в две секунды. Причём за эти две секунды набирается 2000~ Хендлов, видимо уже не от моей карты, но сбрасывается снова. Думал что дело в таймере удаления утечек, но нет, это всего лишь задержка удаления... Как бы всё намекает на "boolexpr b", что условие приходится выносить отдельно за функцию, решать его там своими силами, а потом заносить в функцию обратно. Стал смотреть в интернете про эту функцию, но ничего толкового не нашёл. Вроде бы всё верно. Того автора уже лет 5 на сайте нет похоже.
Использую All.j тот который весом побольше, значит лучше, да и в игре он хоть как-то работает, в отличие от более старого, который поставляется вместе с NewGen WE. Выложу его здесь. Оригинал!

Принятый ответ

ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
7
6 лет назад
0
Hate, проверял, не работает. Сделал это обрамление в цикле, там где в переменную групп добавляется один юнит, всё равно очищает после цикла, когда мне нужны те набранные юниты в ней. Но эту переменную групп не объявлял в начале триггера, так как она у меня всегда создана как глобальная для всех триггеров, однако Я её очистил перед тем как использовать, и без этого скрипта работало.
Сейчас вообще удалил из файла все очищения групп и спецэффектов, ибо с этим и сам справлюсь. Но мне всё равно не нравится то что эта библиотека сама создаёт Хендлы - не могу добиться полной тишины (Хендлов), хотя отключил всё!
0
26
6 лет назад
0
вы никак сами не обойдете утечки с группами если работаете с гуи
показывайте как использовали мой пример выше
0
7
6 лет назад
0
Hate, Я проверял другой вариант сейчас, отключал все процессы, все триггеры, которые могли вызывать какие-либо события на карте. Даже события "отдал приказ 'отставить'" отключены. Триггеры со спеллами сами не активируются... Один Хендл прибавляется, и один отнимается сам по себе. Всё полностью заморозил, почти полная тишина. И тут читаю ваш комментарий... Ну вернул те теги назад как было, а перед тем как делать скрин решил проверить, и оказалось что теперь работает. Запустил без тегов, тоже работает. И получается теперь смысла нет делать скрин. Видимо когда процессов много то они накладываются друг на друга, и эта библиотека, очищает же по таймеру, и с очищением очищает не те группы которые следовало бы очищать, мне лично так кажется. Ну что теперь, обратно всё запустить и проверить с большим потоком событий?
0
17
6 лет назад
0
Ну как бы это нормально что переменные очищаються прямо в функциях этой библы,такчто не давайте вашим гл переменным обрабатываться в них
0
7
6 лет назад
0
Не стал дожидаться, поработаю вашим тестером. Ещё раз всё повключал, ровно ничего более не трогая. Запустилась вся моя карусель... Заклинание не работает! Хотя иногда работает, а иногда нет, но это точно не пойдёт для заклинаний на которых стоит вся игра! Сделал обрамление тегами, вообще не работает. Четыре заклинания подобного типа то работают то не работают когда им вздумается.
Теперь суть заклианния! Рядом с героями стоят его войны, в радиусе 500, и с условием что они не такие же герои, живые и ... бла-бла-бла ... добавляются в группу CurrentGroup2. Потом идёт цикл, который заканчивается до того, до которого уровень этого заклинания у героя. И по одному начинает добавлять этих юнитов, рядом стоящих, в группу CurrentGroup, а из группы CurrentGroup2 вычитается он же, чтобы потом, при новом обращении цикла, его снова не добавить, а добавить нового. Потом Я проверяю их количество, делаю эффект (который кстати тоже то работает то нет), и в зависимости от того, сколько рядом юнитов с героем было, такой силы эффект к нему и применяю. И когда нужно уже делать спецэффект, поставил дебаггер, чтобы посмотреть сколько набралось юнитов - показывал 0 в группе, хотя рядом стояли юниты плотно. Прошу заметить что если бы был wait то разрыв был бы справедлив! Так как в это время могло бы вклиниться очищение, а тут идёт сплошной код, без разрывов, и очищается в однопоточности, как так? Иногда впрочем работает, что ещё больше путает.
ledoed, что ты предлагаешь? Объявить эти переменные при инициализации и поставить эти теги? Такой вариант меня устроил бы, так как эти переменные работают и в других триггерах, они у меня постоянны. Но всё равно, придётся их очищать вручную, так как при присвоении значения переменной старая группа оставляет утечки. Да и не стоит забывать про другие переменные, другого типа, и спецэффекты так же работают коряво - слишком рано удаляются. Придётся всё обрамлять, но тогда теряется смысл (сам и очищай).
Ну как бы это нормально
Не согласен. Сам же автор написал:
"
  1. Скачать, собственно, саму библиотеку и закинуть ее в папку ...\jassnewgenpack5d\AdicHelper\lib\
  2. В своей карте написать в нестандартном коде: include "ALL.j"
  3. Забыть об утечках.
"
Вот последнее написанное это действительно нормально! Пользователь не должен думать как там устроено! Сам так стараюсь делать программы, это хороший стиль.

Вот скриншот триггера -
Загруженные файлы
0
26
6 лет назад
0
бездарность, неправильно используете то что я дал
0
7
6 лет назад
0
Hate, мне больше нечего там обрамлять. Переменная создана изначально в окне переменных.
1
26
6 лет назад
1
вы орете там? какая разница где создана переменная, если вы ее забиваете по ходу игры
0
7
6 лет назад
0
Я ору? Это Вы орёте, а Я лишь разъясняю суть проблемы. Скажите наконец что Я должен делать!
Моя логика такова, что в триггере Я в неё сразу добавляю юнита, и там же обрамляю её тегами, как только она высунула свой нос, чтобы это действие не учитывалось оптимизатором. То есть добавляю в тегах юнита, учитываться не должен, как понимаю.
Не могу же Я всё охватить тегами, верно? Там могут быть и те переменные которые нужно очищать.
Да кстати, разница такая что негде её обрамлять!
Если вы хотите чтобы Я успел под Новый Год её сделать, если вы хотите Ёлочку и с виртуальными подарками под ней, и если вы хотите увидеть кто из крипов станет дедом морозом, тогда вам нужно очень хорошо постараться и успеть помочь мне до того, как простучит ровно двенадцать! А после Нового Года Ёлочка пропадёт, и будет унылая карта. Думаете Я шучу с вами? Я реально уберу Ёлочку! Всё! Не будет Ёлочки если не успею в срок!
0
26
6 лет назад
0
очень жирный намек
0
17
6 лет назад
0
вариант послать вашу работу куда подальше сбегать на завод,заработать копейку придти сюда попросить кого нить за деньги ваш проект закончить или просто когото попросить может за так сделают
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.