XGM Forum
Сайт - Статьи - Проекты - Ресурсы - Блоги

Форуме в режиме ТОЛЬКО ЧТЕНИЕ. Вы можете задать вопросы в Q/A на сайте, либо создать свой проект или ресурс.
Вернуться   XGM Forum > Warcraft> Академия: форум для вопросов
Ник
Пароль
Войти через VK в один клик
Сайт использует только имя.

Ответ
 
Death of God
Задрот
offline
Опыт: 988
Активность:
Каст в видимую цель
Можно ли заставить кастовать только в цель, находящуюся в зоне видимости кастера? То-есть которая нахоится где то в 100 градусах в каждую сторону от линии взгляда. Ниже выкладываю картинку. Точка - кастер, черная линия - линия взгляда, зеленая зона - можно кастовать, красная соответственно нельзя.

http://img442.imageshack.us/my.php?image=62415376sz7.jpg
Старый 07.01.2009, 22:34
Hellfim
Новичок
offline
Опыт: 81,783
Активность:
Death of God, ну можно пикать всех юнитов в точке, если группа пустая, то прибавлять расстояние и опять пикать.
Старый 07.01.2009, 22:42
Death of God
Задрот
offline
Опыт: 988
Активность:
Либо ты меня не понял, либо я тебя =) Я имел ввиду что бы запретить кастовать задом)) Как в вове, "Вы смотрете не в ту сторону". В варике есть подобие, кастующий всегда поворачивается лицом к цели. Если отключить авто поворот, то придется ловить цель только на линии взляда. Поэтому и хочу сделать такую систему.
Старый 07.01.2009, 22:51
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Death of God, на тебе извращенную идею:

Площадь окружности равна ПиРадиусвквадрате (S=P*r^2) (пи=3.14)
Допустим что у нас юнит смотрит в области 180 градусов. Значит по формуле S = 3.14*100^2 (100-дальность взгляда(радиус))
Эта площадь есть 100%
Площадь сегмента будет рассчитана так:
360 градусов = 100%
180 градусов = Х

Х=(180*100)/360=41%

Терь умножаем нашу площадь на 0.41:
S*0.41=Странное число - это и есть та область что тебе надо (по идее =))

Остается проверить, если юнит находится в этой области - то делать что тебе надо..Надеюсь что ни в чем не ошибся)) А если че, то все валите на усталость)

P.S.: если по твоей картинке, то там не круг должен быть, а треугольник, ибо у человека боковое зрение идет по прямой, а не по окружности. А делать так же, через площадь, но треугольника..у тебя 2 стороны будут равны, высота треугольника будет равна максимальному расстоянию, на сколько кастер может смотреть. Высчитаешь площадь, проверишь если юнит находится в этой области, сделаешь что надо.

P.P.S.: если пойдешь через треугольник, то заметь, что чем больше высота (дальность зрения кастера), тем уже становится треугольник (боковое зрение становится меньше), т.е. кастер смотрит дальше, но исключительно вперед. Так что совет - юзай круг - более реалистично.
Миниатюры
Кликните на картинку для увеличения
Название:  Безымянный.JPG
Просмотров: 48
Размер:  18.3 Кбайт  

Отредактировано Vampirrr, 08.01.2009 в 02:25.
Старый 08.01.2009, 01:52
Death of God
Задрот
offline
Опыт: 988
Активность:
Vampirrr, Спасибо! Я догадывался, что просто не будет =)
Если я правильно понял, то плучится следующее:

Нажимаешь на иконку, выбираешь цель. Дальше идет:

Юнит использует абилку
Алибка = таму-то
По формуле идет высчитывание площади взгляда кастера, положение цели на площади взгляда кастера, а так же высчитывается площадь разрешенного каста (куда можно кастовать).
После чего идет проверка, находится ли точка полжения цели на разрешенной для каста площади.
Если да - каст
Если нет - вывод сообщения о невозможости.

PS:
Если добавить к этому возможность, что за время каста спелла, цель выйдет из доступной площади, то отменить каст - получится:
запустить цикл проверки положение цели относительно площади (пересчет площади не нужен, т.к. во время каста кастер не двигается)
Если добро - пересчитать заного
Если нет - отменить каст.
А так же отключить цикл если каст был завершен.

Я правильно понял? =)
И мне придется для каждого спелла писать отдельно, или можно использовать один код? Или хотя бы фрагментарно дописывать?
И выдержит ли такое издевательство движок, если так будет высчитываться одновременно 10 юнитов? =)
Старый 08.01.2009, 04:04
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Death of God, товарищи из близарда любят прямоуголники и про круги они забыли..следовательно все выходит совсем не так, как хотелось бы..а верней никак не выходит, вообще..

Отредактировано Vampirrr, 08.01.2009 в 22:24.
Старый 08.01.2009, 10:23
Death of God
Задрот
offline
Опыт: 988
Активность:
=(((( И никак нельзя сделать хотя бы подобное? Может что - то с прямоугольником получится? Что бы хотя бы запретить кастовать из зада.
Старый 09.01.2009, 01:24
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Death of God, это уже только завтра буду пытаться, на седня моск отключен..
Старый 09.01.2009, 01:42
Death of God
Задрот
offline
Опыт: 988
Активность:
Ок. Спасибо.
Старый 09.01.2009, 01:52
Death of God
Задрот
offline
Опыт: 988
Активность:
Vampirrr, странно, что вар не воспренимает круги, ведь площадь физической модели он считает как раз по кругу =/. Да и аое спеллы дамагают вокруг героя и чпеллы с целью земля тоже дамагают по кругу... Может вар пойемт круг через радиус с началом от кастера?

Может попробовать сделать тоже самое но с квадратом? Или треугольником, основание которого будет означать максимальную дальность заклинания?
Миниатюры
Кликните на картинку для увеличения
Название:  1.JPG
Просмотров: 16
Размер:  4.5 Кбайт  Кликните на картинку для увеличения
Название:  2.JPG
Просмотров: 16
Размер:  4.8 Кбайт  Кликните на картинку для увеличения
Название:  3.JPG
Просмотров: 11
Размер:  4.3 Кбайт  

Отредактировано Death of God, 09.01.2009 в 17:53.
Старый 09.01.2009, 17:32
Death of God
Задрот
offline
Опыт: 988
Активность:
Вопрос все еще в силе...
Старый 10.01.2009, 20:07
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
Death of God,
Цитата:
P.S.: если по твоей картинке, то там не круг должен быть, а треугольник, ибо у человека боковое зрение идет по прямой, а не по окружности. А делать так же, через площадь, но треугольника..у тебя 2 стороны будут равны, высота треугольника будет равна максимальному расстоянию, на сколько кастер может смотреть. Высчитаешь площадь, проверишь если юнит находится в этой области, сделаешь что надо.


=) а по поводу вопроса твоего все еще думаю, не было времени пока сделать..
Старый 10.01.2009, 21:16
vinny

offline
Опыт: 39
Активность:
Цитата:
Сообщение от Death of God
аое спеллы дамагают вокруг героя и чпеллы с целью земля тоже дамагают по кругу....

они дамажат прямоугольниками
Старый 11.01.2009, 06:11
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
vinny, ага, и области типа "оффсет 500 вокруг юнита" - тоже прямоугольник?
Старый 11.01.2009, 07:13
vinny

offline
Опыт: 39
Активность:
Vampirrr
насчет этого точно не знаю
ты сам попробуй юзани большой аое спелл в игре, там все четко видно, что за кругом выделяются юниты.
Старый 12.01.2009, 05:20
Vampirrr
O_o
offline
Опыт: 19,286
Активность:
vinny, ладно, поверю..но проблему это не решает( пока что-то ничего путевого не выходит..
Старый 12.01.2009, 05:41
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы можете скачивать файлы

BB-коды Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход



Часовой пояс GMT +3, время: 04:07.