Дело в том, что если вешаю любой спецэффект на локальную, то он все равно долго не исчезает ( секунд 5) Вне зависимости от состояния триггера. Обнуляю как положено. Хочу создать массив у локальной переменной, типа u(4).
Как известно, глобальная перезаписывается заново, для локальной, внутри одного триггера при повторе создается каждый раз новая локальная с отдельно записью.
Вопрос, перезаписывается ли так же циклично массив у локальной переменной? Может ли целочисленая локальной быть массивом другой локальной?
Можно ли глобальную udg_int указывать массивом локальной? Если я обнуляю в конце локальную, но глобалка типа int, которая была масивом же никуда не денется и останется просто числом?

Accepted answer

Тут дело не в локальности переменной, и вообще тип видимости переменной* никак не влияет на скорость исчезновения эффекта. Тут либо лезть в игровые константы, либо править анимацию смерти
`
LOADING AD...
2
2
2 months ago
Edited by Blatnoi Account
2
Спецэффект нужно удалять. Локальная переменная это не сам игровой объект (эффект, юнит и.т.п.), а лишь "указатель" к нему. Для быстрого проигрывания эффекта рекомендуется сразу вызывать его уничтожение:
call DestroyEffect( AddSpecialEffect( bla bla bla ) )
Если эффект не нужно уничтожать сразу, то понадобятся таймер и хеш-таблица. Сохраняем хэндл эффекта в хэш по хэндлу таймера, запускаем таймер. Таймер закончился - call DestroyEffect
Не забываем обнулять локальные переменные, если указывают на объекты (таймеры, юнитов, локейшены, эффекты и.т.п.)
Советую почитать: xgm.guru/p/wc3/jass_local_vars
0
23
2 months ago
0
2
7
2 months ago
Edited by ReiGyl
2
Я ничего не понял из-за невнятного описания, но если у эффекта только одна анимация, то он будет удаляться с фиксированной задержкой. Т.е. как объект он удалится сразу, а его модель исчезнет через фиксированное время. Потому что игра не знает продолжительность анимации его смерти ввиду её отсутствия.
0
27
2 months ago
Edited by rsfghd
0
Тут дело не в локальности переменной, и вообще тип видимости переменной* никак не влияет на скорость исчезновения эффекта. Тут либо лезть в игровые константы, либо править анимацию смерти
Accepted answer
0
20
2 months ago
0
rsfghd:
Значит, осталось только давать предмет с прикрепленным эффектом, по другому - никак!
0
27
2 months ago
0
SсRealm, для юнитов есть функции Kill
/Remove, для спецэффектов только Destroy (та же Kill)
0
20
2 months ago
0
SсRealm, для юнитов есть функции Kill
/Remove, для спецэффектов только Destroy (та же Kill)
Спасибо тебе за помощь, только это я прекрасно знаю. Спецэффект висит лишних секунд пять после его удаления, после чистки самой локальной. Пока выкрутился, дальше уже буду просто одевать предметы на персонажей
0
26
2 months ago
0
Спецэффект висит лишних секунд пять после его удаления,
Стоит определиться с тем почему это вообще происходит.
Какую именно модель ты используешь для спецэффекта?
0
26
2 months ago
0
SсRealm, для юнитов есть функции Kill
/Remove, для спецэффектов только Destroy (та же Kill)
Спасибо тебе за помощь, только это я прекрасно знаю. Спецэффект висит лишних секунд пять после его удаления, после чистки самой локальной. Пока выкрутился, дальше уже буду просто одевать предметы на персонажей
а почему чистка локальной должна быть связана с тем что спецэффект остается?
To leave a comment please sign in to the site.