Доброго времени суток.
Мне необходимо написать код без утечек, которые забивают память.
Но я новичок, который с каждым годом открывает для себя все новее и новее вар. По этой причине мне сразу сложно разобраться во всех его аспектах. А редактор для меня стал просто "заставить мозг думать"
Исходя из небольших статей с обучалками (а также спасибо большое rsfghd), я понял что сам юнит забивает память, но и точка, которая создается при создании юнита в позиции выбранного юнита.
Идея, добавить нужных юнитов в переменную (отряд), к примеру asd.
А после мне нужно создать ДАММИ юнита около каждого юнита в переменной asd.
И тут момент с оптимизацией "Позиции выбранного юнита". Ибо, как я понял из статей, она создает точку (которая вызывает утечку).
Ну и после всех манипуляций функцией (ниже) удалять переменную (отряда).
call DestroyGroup(udg_asd)
Сама логика триггера.
Действие:
Выбрать каждого юнита в зоне карты и совершить действие
Создать 1 юнита, для игрока 1, в позиции выбранного юнита.
Так вот, мне необходим код, который будет удалять эти "утечки". Ну либо совмещенная сборка с функциями.
Надеюсь я правильно донес свою мысль хд

создать DAMI юнита
dummy* - дамми

вот пример выбора юнитов в темповую группу без утечек с использованием точек

есть несколько функций для выбора юнитов
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing
native GroupEnumUnitsInRect takes group whichGroup, rect r, boolexpr filter returns nothing
native GroupEnumUnitsOfPlayer takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
native GroupEnumUnitsOfType takes group whichGroup, string unitname, boolexpr filter returns nothing
native GroupEnumUnitsSelected takes group whichGroup, player whichPlayer, boolexpr filter returns nothing
у некоторых есть аналоги с потолком выбора (кол-ва юнитов)

DestroyGroup( ... ) нужно использовать только если ты постоянно создаёшь группу до этого (в основном это требуется, если ты должен сделать действия с теми же юнитами спустя какое-то время, например выбрать кого-то там в области, наложить эффект, подождать 2 секунды и продамажить), но для темповых действий лучше иметь одну группу и просто очищать её
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
м, файлы заменились из-за автоматической склейки сообщений, потому что имели одинаковое название, неприятно
2
rsfghd, Использовал твои наработки выше и наработки из прошлых советов, в других вопросах.
Я скажу так. Ты монстр, спасибо тебе огромное.
Счетчик вообще не двигается, а мои знания сегодня выросли еще на планку выше, чем за годы!
Сейчас данный триггер отрабатывает как часы и без каких либо утечек.
Также разобрался как в сценарии превратить реальное в целое число. И под себя получилось идеально
Дождусь твоего ответа :) А после закреплю правильный ответ
Загруженные файлы
28
zpxo, я могу отвечать на закрытые вопросы, не волнуйся, абилка прокачана, это тебе приходится убирать ответ, писать коммент, а потом снова закрывать вопрос
юзай отдельную функцию что я скинул, мне кажется так удобнее будет, а то какая-то дрисня со склейкой получилась
2
rsfghd, Небольшой совет хочу.
В этом триггере я понимаю что точно идет утечка, из-за случайности.
Просто у этого триггера идет арифметика в таком ключе: Взять 40 процентов из суммы юнитов.
Могу ли я заранее создать переменную с арифметикой? Где возьму сумму из группы юнитов и высчитаю 40%, а после переведу в реальное число и вставлю в bj_randomSubGroupWant?

юзай отдельную функцию что я скинул, мне кажется так удобнее будет, а то какая-то дрисня со склейкой получилась
Кстати, да, она такая упрощенная.
Вместо цифры "4" я могу туда по сути вставить переменную, верно?
И я могу внутри функции перевести переменную из реального в целое, в момент ссылания на переменную?
К примеру так: call GetRandomSubGroupEx( udg_TempGroup[ 0 ], udg_TempGroup[ 1 ], R2I(udg_ANOMABalanceUron_Time_Procent) )
Загруженные файлы
28
а после переведу в реальное число и вставлю в bj_randomSubGroupWant?
не в реальное, а в целочисленное
да, ты можешь так сделать, вот пример

И я могу внутри функции перевести переменную из реального в целое, в момент ссылания на переменную?
по совпадению сразу и на это ответил в примере)

Загруженные файлы
2
rsfghd, Спасибо еще раз огромное, за такую бесценную помощь! ❤️
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.