RSQR
offline
Опыт:
29,316Активность: |
Получение урона сзади(хз как обозвать)
Народ. Научите наконец, Как расчитать чтоб Если юнит получает урон сзади то он получает х2 урон?(как ето полярные координаты называются или что?) |
17.01.2011, 07:04 | #1
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Rescuer, динамически узнаешь кто наносит урон юнит, смотришь его положение по отношению к атакованному юниту и если получается, что он стоит сзади - наноси 2х урон. |
17.01.2011, 07:09 | #2
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
RSQR
offline
Опыт:
29,316Активность: |
Vampirrr, эм.
Отсюдова поподробней можно? |
17.01.2011, 07:25 | #3
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Vampirrr
O_o
offline
Опыт:
19,286Активность: |
Rescuer, ну в теории, если у тебя нет юнитов бьющих задом, то достаточно будет сверить facing angle атакующего и атакуемого юнита. Если они более-менее совпадают (скажем +/- 50 градусов), то все офигенно.
Vampirrr добавил: а доп. урон можно будет нанести триггерно от лица атакующего.. |
17.01.2011, 07:29 | #4
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
RSQR
offline
Опыт:
29,316Активность: |
Vampirrr, К, попробую. Не получится отпишусь ещё |
17.01.2011, 07:55 | #5
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
granderpro
offline
Опыт:
12,165Активность: |
Rescuer, если что , то вот - xgm.ru/forum/showthread.php?t=16332
granderpro добавил: там и на гуи есть |
17.01.2011, 07:57 | #6
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
DioD
offline
Опыт:
45,134Активность: |
стреляющий юнит может повернуться после выстрела и такая проверка пойдёт боком.
|
17.01.2011, 08:01 | #7
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
RyoTsubaki
Отпустит - убегу :3
offline
Опыт:
3,686Активность: |
Это называется backstab и это Рикимару из опендоты. |
17.01.2011, 08:04 | #8
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
скоре надо смотреть бристбека и доты там как раз получение урона в спину отслеживается |
17.01.2011, 08:08 | #9
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
39,512Активность: |
более точным было бы приравнивать два направления:
Вопрос: как именно приравникать? (точнее что к чему и с каким значением в модуле)
Extremator добавил:
RyoTsubaki, Рики может быть лицом в спину и спиной в лицо... это как бы не логично... 16GB, отслеживать урона если угол совпадает... Vampirrr, что бы нанести 2x урона в спину надо просто нанести этот же урон второй раз если удар совершён со спины... Extremator добавил: granderpro, тьфу... это гуи поймёт только тот кто знает джасс |
17.01.2011, 12:24 | #10
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
39,512Активность: |
Vampirrr, я прочто жду пока кто нить покажет как ститать градусы хддд просто у меня угол имеет градус -112 с доспустимыми рамками в 0-360 ну или жертва отворачивается на 400-900 градусов и я тупо не погу прощупать спину хдддд |
17.01.2011, 13:28 | #11
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
16GB
GhostOne User
offline
Опыт:
60,317Активность: |
вот из опен доты от бриста проверка урона в спину
Отредактировано 16GB, 17.01.2011 в 14:20. |
17.01.2011, 14:12 | #12
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
Rescuer:
Дети этож просто! Берем, отслеживаем атакера, смотрим, если разница угла между атакером и жертвой и углом фейса жертвы меньше 90(т.е. он стоит сзади), то нанесём ещё урона
Обьясню на примере: Допустим вы стоите смотрите рекламный банер, а сзади вас едет автобус, отсюда вопрос, а как мы узнали что автобус сзади, а не спереди(Увидели в отражение не в счёт!!! =) )? А очень просто, ваше тело повёрнуто к баннеру, а так как угол между нормалью поворота вашего тела и положения автобуса больше 90 градусов, то мы и говорим, что автобус сзади! А проще говоря разница угла вашего зрения(тела) и углом между вами и автобусом больше 90 градусов!
Т.к. разница может быть меньше нуля, обязательно используйте модуль найденной разницы(функция RAbsBJ, на гуи - Математика - Abs), ах да чуть не забыл(Экстрематору сенкс, напомнил), угол между точками имеет рамки (-180; 180), отсюда следует сместить его на 180 градусов в право, проще говоря прибавить 180 градусов.
Честно говоря сейчас проверил, вродебы всё работает исправно, но когда фейс жертвы ближе к нулю, т.е. смотрит на север, кароче смотрит вправо, то позиция атакера не очень прямо определяется, примерно на 45 градусов правее взгляда жертвы позиция атакера определяется, как сзади жертвы.
Если я криво объяснил, вот код, который сложно не понять!
Разбираться что к чему и почему, сейчас впадлу!
Я расказал и показал принцип, а остальное сами докурите Icy добавил:
О, 16GB, крутяк! Афтар, вот тебе и принцип правильного определения позиции
|
17.01.2011, 14:22 | #13
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Пикс
offline
Опыт:
2,405Активность: |
Extremator, 1)если угол между жертва и атакующий >=0 то условие: -2)если модуль((угол между жертва и атакующий)-(угол поворота жертва))>=90 3)если угол между жертва и атакующий <0 то условие: -4)если модуль((угол между жертва и атакующий)+360)-(угол поворота жертва))>=90 Итак общее условие (через И, ИЛИ): ЕСЛИ (1 И 2) ИЛИ (3 И 4) ТО делать действия |
17.01.2011, 14:25 | #14
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
39,512Активность: |
Icy:
у меня выпадает больше 180 проверял выводя на экран angle unit'а если юнит A в точке X (0000;0000) повёрнут на 45 грудусов, а юнит B в точек Y (0100;0100) повёрнут на 45 градусов, то во время вычисления вектора XY его градус не равен 45,а когда 135, когда 120, когда -30. и при этом юниты не двигаются... |
17.01.2011, 14:57 | #15
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
Extremator, не знаю не знаю, у меня фикс в этих рамках, позырь мб где накосячил... |
17.01.2011, 15:02 | #16
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
39,512Активность: |
какого фига градус вектора считается через (-180 ; 180) а градую юнита через (0 ; 360) ???
|
17.01.2011, 15:08 | #17
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
Extremator:
Extremator, вот такая жестокая жызнь! =)
Extremator:
На вот тебе (_)(_) =) Показал =)))
Ну а если серьёзно то я тебя не понимаю =) |
17.01.2011, 15:13 | #18
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Extremator
offline
Опыт:
39,512Активность: |
Icy, если брать за градусы повороты самих юнитов, то нужно просто проверять на разницу в направлениях... и всё... А иное исчисление векторов совсем убивает... |
17.01.2011, 15:19 | #19
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|
Icy
Это Я!
offline
Опыт:
1,785Активность: |
Extremator, нене, тут ты нипапал!
Получается тогда юнит огребёт лопатой только когда атакер стоит на ровно противоположном угле, углу фейса жертвы |
17.01.2011, 15:35 | #20
+0/−0
Профиль |
Приват |
Поиск |
Цитата |
IP: Записан
|