Добавлен MpW
Начал делать мультишот, но возникла проблема. Можно использовать способность ракеты, но там менее реалистично получаются выстрелы, да и стреляют даже за спину. Поэтому решил сделать свой.
Проблема вот в чем, когда юнит начинает стрелять или кастовать в одного противника, можно определить вектор. Относительно этого сложно подобрать формулу подбора всех юнитов. Не силен в косинусах, синусах, тем более в полярных координатах. Приложен пример в картинке. Помогите.
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован MpW
пример
-угол поворота юнита GetUnitFacing A - обычно принимается как центр обзора
-ширина обзора W - насколько угол обзора будет широким. Одна половина ширины слева, другая справа. Образует минимальный и максимальный углы.
-углы максимальный и минимальный
ссылка
ссылка на формулу
Отредактирован MpW
Хорошо, мб я тупанул и работает норм в карте E6. А вот в карте E3 что то не так робит =( пример с хабра. Ну он работает (85% на 15%), но бывает и не работает. В обзорку в 180 град не попадает.
Вот конусные заклинания, добавил изменения, теперь молниями отображается ширина обзора кастера (будет понятно, кто попадает). Ничего сильно не исправлял, добавил молнии
Юзал для ИИ чтобы определяет попадает ли путь юнита в зону агра врагов...
Отредактирован MpW
На основе взяты выше перечисленные примеры. Можете проверить стоит ли впереди или нет.
Кстати, формула Warden работает не так как хотелось бы. Тестировал. И выяснил, что работает если обзор не слишком большой ( angle < 180, если хотите 180 тогда придется ставить приблизительно 179). Если слишком большой, то не будет работать.
Короче тут формула берет минимальный промежуток между углами, а не большой. Пример на скрине
Еще не забудьте поставить вместо udg_Target переменную GetSpellTargetUnit()
Отредактирован MpW
В первом случае, работы со многими юнитами включает с группой, там есть ограничение радиуса - сам радиус. Когда ты пикаешь вокруг юнитов в группу, есть функции, которые выбирают всех вокруг точки с радиусом. Вот это я и использовал. Если надо убрать ограничение, используй другие функции пика на всю карту, или ставь радиус 99999