есть ли функционал на удаление событий указанного триггера?
если нет - то насколько дорогая операция по удалению триггера и созданию нового с добавлением всех действий и новых событий?
Будут ли формироваться утечки, если каждые 20-30 секунд таким образом создавать заново триггер и добавлять в него события на смерть 10-12 воинов (10-12 событий)

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

Cancel, юзай общие события лучше
а юнитов проверяй в условии
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
13
6 лет назад
Отредактирован Cancel
0
в одной теме прочёл "событие удаляется само когда объекта завязанного на него не существует" - это правда? Не будет утечек если за игру на один триггер будет подвешено 5000+ событий на смерть юнитов, при условии что одновременно будет существовать не больше 12 из них?
0
16
6 лет назад
0
если у тебя события завязаны на объект, логично, что удаленный объект никогда не сможет их вызвать. Это не отменяет того, что в памяти они остаются.
0
32
6 лет назад
0
Сами события не удаляются, если остается связанный с ними объект, используйте по возможности глобальные события на всех юнитов игрока, раз в 30 мин, пересоздавайте ваших героев если на них так дохрена событий.
0
13
6 лет назад
0
quq_CCCP, это не герои, это юниты, и они постоянно пересоздаются. Означает ли это что когда юнит удаляется - удаляются и все события с ним связанные? т. е. не будет захламляться память?
0
32
6 лет назад
0
Cancel, разумеется удаляются, я даже тестил на своей карте, там аналоги форж спиритов Инвокера из доты, плодились и мочили спавн крипов на протяжении 10 минут, по счетчику хендлов сначала хендлы росли, а потом спадали до нормы, и так циклически.
Юзал наработку для отсроченного удаления триггеров из доты, чтобы не было никаких проблем со стабильностью.
Cancel, но события еще вешаются на триггер, помимо юнита, поэтому его тоже удаляешь время от времени.
Что сделать то хочешь? Скажи что задумал?
0
13
6 лет назад
0
Что сделать то хочешь? Скажи что задумал?
Скороу сделаю анонс карты, увидишь -) проще показать чем рассказывать.
Вообще я сделал по другому - отказался от работы с многочисленными группами юнитов. Посмотрел как работают функции на работу с ними - мне показалось они слишком затратные. Например - чтобы проверить пуста ли группа - цикл зачем-то проходит по каждому юниту из занесёных в группу, а не прерывается на первом встреченном юните.
Так что вместо массивных групп - я делаю массивные счётчики, и работаю с ними обращаясь в массиве через index = GetUnitUserData . При смерти юнитов убавляется счётчик udg_uGroup_enum[index], и когда он возникает нуля - запускаю триггер udg_uGroup_trigUnDead[index] - таким образом на карте постоянно спавнятся группы юнитов и я могу отлавливать события на уничтожения этих групп по факту используя только одно событие.
когда в группе юниты спавнятся - я раздаю им index, идентичный шаблону по которому они спавнятся и наращиваю udg_uGroup_enum[index] чтобы отслеживать количества в группах
0
28
6 лет назад
0
Cancel, юзай общие события лучше
а юнитов проверяй в условии
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.