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

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

После создания эффекта, следующей строчкой делаешь удаление.
Если он он создается на время, то заноси в переменную и когда надо удаляй.
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
19
4 года назад
1
Похожие вопросы:

ответ
Спасибо всем за ответы и пояснения! Закрываю флудильню :с
ответ
Нашёл систему, где звук передаётся в таймер, который истекает через 0 секунд. В результате один и тот же звук может проигрываться несколько раз без всяких проблем. В инетике пишут мол это такой баг движка.
ответ
Лимит операций, обычно это беда настигает заядлых гуишников.
На jass обычно нету таких проблем.
Создайте таймер с периодом .00 сек и запускайте им функции инициализации триггеров.
функция типа InitTrig_Имя триггера - это функция инициализации триггера, она вызывается из функции InitCustomTriggers, но если этих вызовов очень много то функция упирается в лимит операций и поток завершается так и не создав все триггеры.
ответ
в патче 1.26+ они вообще не нужны и без них можно обойтись в любой ситуации
Не в любой
native GetLocationZ takes location whichLocation returns real
native CreateUnit А можно написать переменную вместо юнита? native udg_unit Юнапример?
Что вы вообще хотите сделать?
set udg_u = CreateUnit(Player(0), GetRectCenterX(bj_mapInitialPlayableArea), GetRectCenterY(bj_mapInitialPlayableArea), 270)

0
21
4 года назад
0
Да, нужно удалять, если эффект больше не используется.
1
26
4 года назад
1
Если не удалить один спецэффект, то будет утечка памяти 11.631 кб

Память очистится от утечек после выхода из карты, если спецэффекты не будут плодиться по сто штук в секунду, а будет сто штук за всю игру, то можно не удалять, так как большой роли не сыграют.
1
10
4 года назад
Отредактирован noyl
1
После создания эффекта, следующей строчкой делаешь удаление.
Если он он создается на время, то заноси в переменную и когда надо удаляй.
Принятый ответ
0
16
4 года назад
0
8gabriel8:
Если не удалить один спецэффект, то будет утечка памяти 11.631 кб

Память очистится от утечек после выхода из карты, если спецэффекты не будут плодиться по сто штук в секунду, а будет сто штук за всю игру, то можно не удалять, так как большой роли не сыграют.
чем вес замерял?
0
7
4 года назад
0
call DestroyEffect(create SpecialEffect (special_effect))
такая конструкция приемлема, на луа пока не знаю.
Вроде там не надо ничего обнулять, но насчет эффектов я ничего не слышал пока что. В скором времени думаю выяснится
0
26
4 года назад
0
DracoL1ch, это с хайва взял из какой-то темы про систему автоматического удаления утечек. Чем замеряли там вроде не было указано, но рискну предположить, что сравнили память в диспетчере задач до создания 1000 объектов и после.
0
3
4 года назад
0
noyl:
После создания эффекта, следующей строчкой делаешь удаление.
Если он он создается на время, то заноси в переменную и когда надо удаляй.
обязательно следующей строкой удалять или можно это делать после нескольких других действий? ну типа wait или любой другой
0
10
4 года назад
Отредактирован noyl
0
lizzardfyll:
noyl:
После создания эффекта, следующей строчкой делаешь удаление.
Если он он создается на время, то заноси в переменную и когда надо удаляй.
обязательно следующей строкой удалять или можно это делать после нескольких других действий? ну типа wait или любой другой
Если надо удалить позже, то надо его записать в переменную, иначе он удалит самый последний эффект, а не который тебе нужен.
Т.е ты создаешь эффект, записываешь его в переменную(X = последний созданный спец. эффект), а после удаляешь спец. эффект X
0
3
4 года назад
0
noyl:
lizzardfyll:
noyl:
После создания эффекта, следующей строчкой делаешь удаление.
Если он он создается на время, то заноси в переменную и когда надо удаляй.
обязательно следующей строкой удалять или можно это делать после нескольких других действий? ну типа wait или любой другой
Если надо удалить позже, то надо его записать в переменную, иначе он удалит самый последний эффект, а не который тебе нужен.
Т.е ты создаешь эффект, записываешь его в переменную(X = последний созданный спец. эффект), а после удаляешь спец. эффект X
а ну понятно, если эффект в действиях всего один, то не обязательно его в переменную записывать

всем спасибо за ответы
0
26
4 года назад
0
обязательно если ты хочешь его удалить потом, и не в глобальной а локальную, если там возможен запуск триггера несколько раз за этот период
Чтобы оставить комментарий, пожалуйста, войдите на сайт.