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

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

Ответ
 
felix_ff

offline
Опыт: 757
Активность:
Абилка Multy arrows на JASS
Доброго времени суток.
Делаю абилку мульти-стрел на джассе... суть просто при атаке герой атакует сразу несколько целей. конечно я бы мог не гемороится и взять за основу "Ракеты" но: мне надо что бы урон наносимый всем целям мульти стрел, кроме юнита которого я непосредственно дал приказ атаковать, наносился меньше. допустим на 1 уровне 20% от наносимого урона , на 2 24%, на 3 27% и.т.д.
вообщем это пока реализовать я смог...но одна довольно большая загвоздка.. я никак не могу высчитать время через которое мне надо наносить урон "целям"... т.е. сейчас у меня наносится урон всем целям за время равное DistanceBetweenPoints(l1,l2)/900
l1 - GetUnitLoc(GetAttacker()); l2 - GetUnitLoc(GetTriggerUnit())
экак видите выглядеть это красиво просто не может.. потому как некоторые юниты могут находится дальше атакованного юнита, следовательно стрела до них не долетает а урон они получают...
я думал замутить чтонибудь с таймерами и даже начал.. но потом понял что нифига не могу выстроить алгоритм что я буду делать.... если в таймере даже заносить всех целей в кеш и создавать 4 таймера (целей всего 4.. и ни на грамм больше :) ) и сравнивать позиции атакера с их позициями я все равно не пойму как мне узнать когда стрела попадет по ним...
Вообщем если у кого есть идея то высказывайтесь.
Старый 16.05.2006, 15:29
dk

offline
Опыт: 60,293
Активность:
А если найти наименьшее расстояние, наибольшее и автоматически средние. Потом ждем наименьшее наносим урон, ждем разность между средним и наименьшим, атакуем и ждем разность между наибольшим и средним и опять атакуем. Только получается wait с короткими промежутками а это может глючить.
Вобщем попробуй!
Старый 16.05.2006, 15:43
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
felix_ff можно на базе ракет сделать, но главной цели по больше наносить... Т.е. ждать каста, смотреть кто стал целью и ему в нагрузку еще 60% дамагов...
Старый 16.05.2006, 17:10
felix_ff

offline
Опыт: 757
Активность:
ммм... кстати а это выход :) сенкс
Старый 16.05.2006, 17:45
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
felix_ff если ето не автокаст то легко а если автокаст то разве что так как "сказал" exploder.
Старый 16.05.2006, 18:10
felix_ff

offline
Опыт: 757
Активность:
MrSmiLe нет это не автокаст.. это пассивка.. наподобие критикал страйка или баша.. ну ты понял я думаю. :)
Старый 16.05.2006, 18:13
exploder
iOS zealot
offline
Опыт: 19,394
Активность:
Цитата:
пассивка

Тогда надо отлавливать событие атаки...
Старый 16.05.2006, 18:16
exAres
I love magic :)
offline
Опыт: 7,788
Активность:
felix_ff пассивка в етом случае, почти, то же ,что и автокаст : (. Я пробовал с автокастом, если не с помощю "ракет" то невозможно из-за тупости близзов(т.е. невозможно узнать запустил юнит снаряд или нет).
Старый 16.05.2006, 20:21
felix_ff

offline
Опыт: 757
Активность:
я конечно сделал.. и вроде работает.. но помоему там какие то баги возникают... :mad:
щяс буду мутить с помощью ракет
Старый 16.05.2006, 21:36
NETRAT

offline
Опыт: 83,712
Активность:
А не проще ли взять реализацию, к примеру, с Доты?
Старый 17.05.2006, 11:10
0pJl9lTa

offline
Опыт: 3,397
Активность:
хз, я бы отлавливал атаку на юнита, после чего создавал бы триг - юнит поврежден, и в нем бы наносил дамаг.
Старый 17.05.2006, 14:06
felix_ff

offline
Опыт: 757
Активность:
ну я и так знаю как там сделанно... принцип довольно простой: у юнита есть "переделанная" способность пехотинца "укрыться за щитом" при активации абилки он "режет" дамаг юниту и добавляет ракеты НО: в доте 1 минус... там при сплитшоте дамаг равный... т.е. всем трем целям наносится дамаг урезанный... а мне надо что бы 3 целям наносился дамаг урезанный а той цели по которой герой получил команду атаковать наносился полный дамаг... вот в чем пробла... я вообщем уже замутил этот спелл.. сделан практически как в доте тока я тригерно еще наношу урон атакованному юниту (главному)...как и советовал exploder
Старый 17.05.2006, 16:25
Toadcop

offline
Опыт: 54,313
Активность:
NETRAT у меня система иакая есть я типа пишу:
call UnitAddTcAttackEnhancerBR(...) и всё =) даю свои Custom Func (как в ТРС) для двух евентов могу и не давать =) ! короче так надо это делать ! ;)
Старый 17.05.2006, 16:49
0pJl9lTa

offline
Опыт: 3,397
Активность:
felix_ff см мой вариант. Имхо для твоего типа это самое лучшее. Хотя не точна.
Старый 17.05.2006, 19:01
Ответ

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

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

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

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



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