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

WC3




А чтобы горение обновлялось, сохраняешь сам таймер на хендл горящего юнита и при попадании скилла удаляешь таймер (старый) и запускаешь новый, тем самым огонь обновится
Ред. IzobretatelBoom
Вот код, карту также прикрепил ниже
Второй способ это через UjAPI, там вроде есть способы отловить то что нужно
P.S. Мега-хорош, лайк
Ред. KaneThaumaturge
Могу преподавать тебе жасс, 100 юсд за час
Можно создать 1000 точек (по точке под каждым юнитом), потом 1 раз взять группу GroupEnumUnitsInRange, в ней окажутся все эти 1000 юнитов, сохранить их и удалить, и тогда все остальные GroupEnumUnitsInRange вокруг оставшихся точек, не просчитают ни одного юнита, а потом всех этих сохранённых юнитов вернуть со всеми их приказами и прочей фигнёй
P.S. Я незнаю насколько сильно будет нагружать удаление и создание юнитов, вообще главная задача сделать так чтобы GroupEnumUnitsInRange не проверял юнита, а для этого нужно чтобы либо 1. Юнит перестал быть юнитом 2. Юнита не было
Ну вот короче мой вариант, скорее всего фегня, есть идея с созданием тектуры карты, но я не знаю как в варкрафте делать текстуры на ходу
const * n, log n, n! и прочее говорит что нужно что-то делать с n и посему до n не сокращается.
Её и какие-нибудь пересекающиеся/не пересекающиеся с ней ауры можно было бы разбить на неналегающие друг на друга регионы и потом каждого юнита с каждого региона пикнуть (получится 2 раза для владельцев аур и 1 раз для тех кто просто под аурой)
Но тут другая проблема правда возникает, как раз все эти регионы, я понятия не имею насколько максимально их можно оптимизировать и выгодно ли их делать вообще, это просто идея, пока что
Однако когда я доберусь до аур у себя в карте, я сделаю что-нибудь подобное и протесчу, может чо и выйдет годное
Это тоже если набросок вот щас за 15 минут, поэтому он ну такое себе, вообще я думаю что если у меня ничё с аурами не получится, если даже у тебя не получается, у меня они просто будут в очередь становиться и будут срабатывать не одновременно, чтоб не лагало (ну а чо делать, хоть какая-то оптимизация)
- сначала переберутся 10 кастеров, под ними создадутся точки
- собственно кастеров, как обладателей ауры можно сразу отправить на край света
- останутся точки, вокруг них и будут все эти GroupEnumUnitsInRange() делаться
- у точек никого не осталось, сработают 10 GroupEnumUnitsInRange() и не найдут юнитов вокруг себя (они же на краю света)
- на всех тех кто на краю света собственно вешается то что должно вешаться там
- их тепает назад (в тот же момент когда они и отправились на край света)
- ответ 10
Возможно, я где-то ошибся, но пока что я не понял где- собственно кастеров, как обладателей ауры можно сразу отправить на край света
- останутся точки, вокруг них и будут все эти GroupEnumUnitsInRange() делаться
3.Х. внезапный поворот, оказалось, что рядом с этими 10 кастерами ещё 20 микрочеликов