На Гуи использую переменные "группа юнитов" типа массив. Чтобы их обнулять нужно прописать custom script. Возможно ли обнулить их все одной командой или необходимо прописывать для каждой callDestroy udg_***[1] и так далее до конца массива?

Да, по идее тебе не нужен массив групп, достаточно будет одной группы и массива целочисленных переменных. Делаешь ГРУППУ ИГРОКОВ (не Отряд юнитов), которые у тебя играют, там выбираешь у игрока в Отряд всех живых юнитов со способностью Налогоплательщик, записываешь в переменную их количество, потом очищаешь Отряд.

Пример:
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
Yury13, лучше покажи на примере, а то так ничего не понятно. Чтобы группа была, её нужно создать. Как правило, в GUI при создании туда сразу же добавляются юниты.
Также покажи, как ты создал массив групп, это важно.
20
PT153, условие не вошло. Там стандартная проверка уровня способности.
Загруженные файлы
26
Просто циклом от 0 до 12 удаляешь группы в массиве.
28
Просто циклом от 0 до 12 удаляешь группы в массиве.
От 0 до 12, включая 0 и 12.
20
PT153, вот так?
А зачем включать 0, ведь используется номер игрока?~PT153:
От 0 до 12, включая 0 и 12.
Загруженные файлы
28
Yury13, не так. Ты не используешь свой массив.
Если используешь номер игрока то тогда уничтожить группу в индексе 0 можно при инициализации.
В GUI нет функции по уничтожению группы.
26
Тебе точно надо удалять группу, а не очистить просто, как ты и делаешь? Всё-таки налоги, наверное, периодически пересчитываются, а не один раз за игру.
20
8gabriel8, да, именно. Мне нужно каждый ход подсчитать число юнитов со способностью "налогоплательщик".
Я сначала загоняю их в группу, а потом считаю число юнитов в этой группе.
Может быть, можно сразу устанавливать целочисленную (сумма денег) = число юнитов в группе, при этом не создавая группу отдельным действием и не очищая ее?
26
Да, по идее тебе не нужен массив групп, достаточно будет одной группы и массива целочисленных переменных. Делаешь ГРУППУ ИГРОКОВ (не Отряд юнитов), которые у тебя играют, там выбираешь у игрока в Отряд всех живых юнитов со способностью Налогоплательщик, записываешь в переменную их количество, потом очищаешь Отряд.

Пример:
Загруженные файлы
Принятый ответ
20
8gabriel8, спасибо за наглядный пример! А вот если, скажем, я решил сразу, не используя переменную, установить (дословно по карте)
Tax=Число юнитов в группе юнитов (юниты игрока Х при условии Налогоплательщик>0)
То есть, не создаю группу отдельным действием.
В данном случае необходимо удалять юнитов не из переменной, а вот так?
Загруженные файлы
26
Да, но у тебя всё равно остаётся сама группа, хоть и пустая. Причём так ты плодишь утечки. Грубо говоря, в таких случаях игра создаёт в памяти переменные групп с именами типа g0000, g0001, g0002 и так далее. Когда ты сразу создаёшь группу через переменную, то множество таких групп не создаётся и не утекает.
НО! Ещё раз обращаю внимание, что конкретно эта утечка будет незначительной.
Объект Вес утечки
Точка 0.361 кб
Группа 0.620 кб + 0.040 кб за каждого юнита в группе
Эффект 11.631 кб
То есть, если у тебя группа твоим способом за всю игру будет создана 1000 раз, то к концу игры на этом утечёт всего лишь 620 кб памяти. Которая после завершения карты освободится.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.