Столкнулся с очень интересной ситуацией.
Есть 2 дамми:
Стенка, которая защищает от урона юнитов, находящихся в секторе "защиты".
Снаряд, который наносит урон при поражении врага и рушит стенку.
Есть 2 дамми:
Стенка, которая защищает от урона юнитов, находящихся в секторе "защиты".
Снаряд, который наносит урон при поражении врага и рушит стенку.
А теперь сама ситуация.
Если снаряд поражает стенку, то у нее отыгрывается 1 секунда смерти и в это время снаряд продолжает сталкиваться с умирающей стенкой, пока она полностью не будет удалена из игры. Но если снаряд поражает не даммика (стенку), то все нормально.
Если снаряд поражает стенку, то у нее отыгрывается 1 секунда смерти и в это время снаряд продолжает сталкиваться с умирающей стенкой, пока она полностью не будет удалена из игры. Но если снаряд поражает не даммика (стенку), то все нормально.
P.S. условие используется UnitAlive, юниты заносятся в группу и отсеиваются тоже условиями (ибо в 1.26 версии булэкспры часто багуются даже с минимальным кол-вом условий).
Как это лечится? Время смерти у того же работника 3.34 сек., у стенки 1 сек., но работник нормально проходит условия.
Принятый ответ
PT153:
8gabriel8:
Я, наверное, забыл сказать, что все сделано с помощью cJass.Да, летающий.Тем более странно, летающие не могут ни с кем столкнуться.
8gabriel8:
Мой косяк: забыл поставить для стенки условие UnitAlive. Теперь все работает как надо. Спасибо за соучастие)Atesla, приложи карту со своими стенкой и снарядом.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Стенка же юнит? Во время смерти убери поставь в SetUnitPathing на false.
Ред. Atesla
SetUnitPathing не помог, но спасибо за попытку решить проблему.
При попадании можно стенку сразу удалять RemoveUnit, а для проигрывания анимации нужно в позиции стенки создавать и сразу удалять эффект, который использует модель стенки.
Atesla:
Ред. Atesla
Можно удалять дамми и созданный эффект, но все же хочется понять, почему проверка работает по-разному для дамми и обычных юнитов. Та же проверка сектора. Использовал формулу из одной темы (скриншот прилагается). Добавил свое условие (юнит – враг, сравнивая игроков) и тогда формула переставала корректно работать (условия вообще перестали работать и отлавливались все юниты).
А куда условие добавил? В той формуле не передаются юниты или игроки.
В boolexpr точно работает GetFilterUnit(), насчёт остальных таких нативок сказать не могу, но они точно не работают в boolexpr у событий.
Ред. Atesla
Формулу я в то время подредактировал для булэкспра и выглядела она так: передаются юниты (кастер из хэша, проверяемый юнит (GetFilterUnit())), находится угол и расстояние между точками (x1,x2,y1,y2). Ретурн, кроме угла и расстояния, возвращал IsUnitEnemy, однако так функция, как я писал выше, работала коряво или вообще не работала, а иногда даже создавала утечки (почему, я так и не выяснил, но это уже не интересует).