Ну типа как точки кастом-скриптом через личный сценарий.

Тю, ты шо, на приколе?)

кстати, я делал уже классную систему роста с постепенным увеличением юнита до второй стадии, а заменять юнита лучше через морф, ибо теряются все баффы и работающие триггеры на нём

Если ты имеешь ввиду правильно ли ты написал call DestroyGroup(udg_G1), то да, всё норм, больше ничего и не нужно. Массивы чистятся с квадратными скобками в конце и индексом группы, пример: call DestroyGroup(udg_G1[6]), если весь массив нужно почистить, то делай через цикл)

ах да, если больше не будешь пользоваться группой, то желательно ещё и обнулить ссылку на неё в самом конце set g = null
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
28
Тю, ты шо, на приколе?)

кстати, я делал уже классную систему роста с постепенным увеличением юнита до второй стадии, а заменять юнита лучше через морф, ибо теряются все баффы и работающие триггеры на нём

Если ты имеешь ввиду правильно ли ты написал call DestroyGroup(udg_G1), то да, всё норм, больше ничего и не нужно. Массивы чистятся с квадратными скобками в конце и индексом группы, пример: call DestroyGroup(udg_G1[6]), если весь массив нужно почистить, то делай через цикл)

ах да, если больше не будешь пользоваться группой, то желательно ещё и обнулить ссылку на неё в самом конце set g = null
Загруженные файлы
Принятый ответ
9
rsfghd:
ах да, если больше не будешь пользоваться группой, то желательно ещё и обнулить ссылку на неё в самом конце set g = null
Так?
И ещё: а вызывают ли утечки различные манипуляции с группой? Типа добавления туда юнитов или приказа всей группе чета делать (у меня просто совсем лапки, я не шарю особо). Я все биогеоценозы по регионам буду держать в группах на протяжении всей катки - каждому свой загон, чтобы не чекать всех юнитов на мапе и не выбирать нужных каждый раз. Чревато ли проблемами?
И есть ли разница между чисткой функцией (как у тебя на скрине) и чисткой кастом-скриптом?
Загруженные файлы
28
Frostfall, неа, неправильно, set группа = null это отдельная строка, хотя если ты в джнгп работаешь, то можешь просто поставить точку с запятой между этими командами, и т.к. у тебя переменная глобальная, созданная в листе переменных, не забывай ставить приставки udg_
Разницы между cs: call GroupClear(группа) и очистить группу на гуи - нет, это одинаковые функции, можешь сам конвертировать в код триггер и посмотреть)
Утечки вызывает пик юнитов через точки там всякие, можешь установить в карту счётчик хэндлов, на него полагаться конечно не особо стоит, но если у тебя что-то без конца растёт - значит что-то упустил
Вот так я обнуляю группы, которыми больше не буду пользоваться (в основном локальные), то что снизу - то же самое, только через сджасс, точка с запятой это разделитель строк

ссылку нужно обнулять после всех манипуляций над переменной

а и да, лучше занести в группу нового юнита, чем каждый раз выбирать всех юнитов на карте и делать действия. Просто второй вариант для ленивых, которые не хотят добавлять/удалять юнита и создавать переменную группы
Загруженные файлы
28
Вот примерчик
В первом варианте создаётся 2 утечки. Там, если посмотреть в код, создаётся локальная группа, которая никуда не девается в итоге, + точка само собой.
От группы можно избавиться, если занести в переменную и проделать манипуляции выше, либо прописать перед выбором группы bj_wantDestroyGroup = true. Ну а с точкой как всегда
Вот что происходит в коде при обычном выборе юнитов
local boolean wantDestroy = bj_wantDestroyGroup - это присваивание локальной переменной значение глобальной (bj_wantDestroyGroup = true - это глобалка логического типа), true - это истинна, в данном случае то, что мы хотим уничтожить эту группу
set bj_wantDestroyGroup = false - после того, как мы отдали локальной переменной значение глобальной, глобалку нужно поставить на false, чтобы каждый раз при последующем выборе группы она не уничтожалась
call ForGroup(whichGroup, callback) - ну а этим действием вызывается функция, где происходят манипуляции над юнитами
if (wantDestroy) then - если локальная переменная wantDestroy (которую создали выше) равна true, то уничтожить группу
call DestroyGroup(whichGroup)
endif
Сама же группа создаётся немного в другом месте, но я надеюсь ты уже сам сможешь посмотреть, если захочешь)
Загруженные файлы
14
rsfghd:
Тю, ты шо, на приколе?)

кстати, я делал уже классную систему роста с постепенным увеличением юнита до второй стадии, а заменять юнита лучше через морф, ибо теряются все баффы и работающие триггеры на нём

Если ты имеешь ввиду правильно ли ты написал call DestroyGroup(udg_G1), то да, всё норм, больше ничего и не нужно. Массивы чистятся с квадратными скобками в конце и индексом группы, пример: call DestroyGroup(udg_G1[6]), если весь массив нужно почистить, то делай через цикл)

ах да, если больше не будешь пользоваться группой, то желательно ещё и обнулить ссылку на неё в самом конце set g = null
Это работает только с группами юнитов, или так можно чистить одного/двух/трёх юнитов отдельно?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.