Библиотека "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
17
6 лет назад
0
а можно конкретне какая ошибка у вас из того что вы написали я непонел
0
7
6 лет назад
0
ledoed, можно. Хотя Я пишу так чтобы потом вопросов не вызывало.
Вчера пол ночи провозился, пытаясь пробить путь... Ошибка - в переменную групп закладываю значение, не доходит триггер ещё до конца как это значение, которое ещё нужно, очищается. Как Я ругался на того автора скрипта который очищает переменную в середине триггера, но которая может, даже чисто теоретически, ещё понадобится! Причём нет wait-функций, он её просто очищает, когда ему вздумается. В другом триггере видимо работает, но "на-разок". Нельзя ещё и много раз перезаписывать переменную групп в одном триггере, так же случается неконтролируемое очищение. Я понимаю что борьба с утечками должна вестись жёстко, но это перегиб против правил программирования на Warcraft-е! Сделал бы очищение в конце триггера, или при перезаписи переменной групп, оставляя пространство для её использования.
0
26
6 лет назад
0
ALL_Remove = false
чтотооченьважное
ALL_Remove = true
как сложно то было
Принятый ответ
0
7
6 лет назад
0
Hate, проверял, не работает. Сделал это обрамление в цикле, там где в переменную групп добавляется один юнит, всё равно очищает после цикла, когда мне нужны те набранные юниты в ней. Но эту переменную групп не объявлял в начале триггера, так как она у меня всегда создана как глобальная для всех триггеров, однако Я её очистил перед тем как использовать, и без этого скрипта работало.
Сейчас вообще удалил из файла все очищения групп и спецэффектов, ибо с этим и сам справлюсь. Но мне всё равно не нравится то что эта библиотека сама создаёт Хендлы - не могу добиться полной тишины (Хендлов), хотя отключил всё!
0
26
6 лет назад
0
вы никак сами не обойдете утечки с группами если работаете с гуи
показывайте как использовали мой пример выше
0
7
6 лет назад
0
Hate, Я проверял другой вариант сейчас, отключал все процессы, все триггеры, которые могли вызывать какие-либо события на карте. Даже события "отдал приказ 'отставить'" отключены. Триггеры со спеллами сами не активируются... Один Хендл прибавляется, и один отнимается сам по себе. Всё полностью заморозил, почти полная тишина. И тут читаю ваш комментарий... Ну вернул те теги назад как было, а перед тем как делать скрин решил проверить, и оказалось что теперь работает. Запустил без тегов, тоже работает. И получается теперь смысла нет делать скрин. Видимо когда процессов много то они накладываются друг на друга, и эта библиотека, очищает же по таймеру, и с очищением очищает не те группы которые следовало бы очищать, мне лично так кажется. Ну что теперь, обратно всё запустить и проверить с большим потоком событий?
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.