Прочел кучу-кучу тем, по поводу отлова этакого урона( ну чет мне не понравились системки) Не суть тяжести(c/v jass). Я попросту не придумал, как все-таки реализовать на их основе спелл. Самый обычный спелл возврата урона ( и милии и РЕНДЖ юнитам.
Я понимаю всю суть, что нужно отловить только физ урон.
Мб кто-то реализовывал такое
P.S. Орбы не катят
P.P.S Я так понимаю ивент Юнит получил дмг срабатывает раньше, чем дмг нанесен по факту. Т.Е. Есть Вариант Давать герою 101% резиста к магии(браслетами). Чекать сколько дмг нанеслось, если дмг<0 то это маг спелл и мы просто приказом бабахаем чистым(конечно же учесть всякие астралы, худы и т.п и т.д.) . Если дмг>0 то это физ урон и его вернуть, но тут у меня в голове возникла проблема, а чистый дмг от спеллов, его резист не режет( че делать?
Наболело уже.

ОП, спелы все триггерные?

Если да, то заводишь глобальную переменную bool IsSpell = false, перед нанесением урона в коде даёшь ей true, после - обратно false. В триггере, который срабатывает на получение урона, первым действием ставишь локалку булёвую, которая ==IsSpell. Вуаля, ты отслеживаешь весь урон с абилок, а что не урон с абилок, то есть урон с руки.

Сам так всегда делал, никогда не понимал пляски с бубнами и прочими орбами. Оно, конечно, проще идеологически, но по факту намного геморройнее: добавлять орб, проверять орб, удалять орб, подменять реальный орб триггерно...

Кстати, можно по такой же схеме через логические переменные указывать тип урона, например, чистый, физический (почему бы и не давать с абилок физический урон?) или магический, от этого вообще что угодно можно пилить, хоть кучу видов брони, хоть цветовые индикаторы разного типа урона.
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
28
дмг определяется до того как отнимаются хп
насколько я помню надо запомнить дмг и хп юнита
дать браслеты
запустить таймер на 0 секунд
в таймере сверить хп юнита с предыдущим значением
если оно не уменьшилось значит урон магический
но лучше всего юзать орбы
15
Физ дамаг отлавливается орбом. А все орбы из оригинала можно легко сделать триггерно.
7
Т.е. мне нужно выдать орб всем юнитам?( выдавать орб юниту который атакует на n сек) и при получении дмг таргетом, убирать орб у атакующего юнита? ибо мне нужен эффект от шипов только еще и для ранджи
Tobi123:
Физ дамаг отлавливается орбом. А все орбы из оригинала можно легко сделать триггерно.
По подробней с триггерными орбами, я такого нигде не видел
15
M1n3rva, ну смотря какие орбы тебе нужно заменить триггерными.
28
M1n3rva, тот же отлов урона
прописываем в бд абилки/предметы которые должны давать якобы орб эффект(на самом деле это пустышки так как орб уже есть)
и при наличие якобы орба у юнита нанёсшего урон делать необходимые действия
например вампиризм
при получении урона проверяем есть ли у источника урона маска вампиризма
если есть то увеличиваем текущий уровень хп источника урона на процент от полученного урона
сама маска вампиризма не содержит никаких орбов т.к. у юнита уже есть атака ядом
так же насколько я помню атака ядом стакается с некоторыми орбами так что их заменять не придётся
таким способом можно сделать любой орб как оригинальные так и свои (например стрелы лишающие противника возможности атаковать/применять заклинания)
7
Опять же, мне попросту нужен return damage при этом идёт на простой абилке панцырь с шипами, вариант выдавать орб юниту, который атакует не к чему хорошему не приведёт, ибо у атакующего может быть другой орб
Мне больше нравится мой/твой первый вариант~nvc123:
дмг определяется до того как отнимаются хп
насколько я помню надо запомнить дмг и хп юнита
дать браслеты
запустить таймер на 0 секунд
в таймере сверить хп юнита с предыдущим значением
если оно не уменьшилось значит урон магический
но лучше всего юзать орбы
Если создавать БД, то проще создать БД на все скиллы с чистым дмг, чем мудохаться с орбами
28
M1n3rva, написать орбы 5 минут времени
с браслетами больше возни
13
насколько я помню надо запомнить дмг и хп юнита
Не важно какой реген у юнита?
15
NekoriDes, сомневаюсь, что за 0.0 сек что-то может отрегенить.
28
Tobi123, вроде может
но если у юнита настолько большой реген что за 0 секунд перевешивает урон то в карте чтото не так
30
ОП, спелы все триггерные?

Если да, то заводишь глобальную переменную bool IsSpell = false, перед нанесением урона в коде даёшь ей true, после - обратно false. В триггере, который срабатывает на получение урона, первым действием ставишь локалку булёвую, которая ==IsSpell. Вуаля, ты отслеживаешь весь урон с абилок, а что не урон с абилок, то есть урон с руки.

Сам так всегда делал, никогда не понимал пляски с бубнами и прочими орбами. Оно, конечно, проще идеологически, но по факту намного геморройнее: добавлять орб, проверять орб, удалять орб, подменять реальный орб триггерно...

Кстати, можно по такой же схеме через логические переменные указывать тип урона, например, чистый, физический (почему бы и не давать с абилок физический урон?) или магический, от этого вообще что угодно можно пилить, хоть кучу видов брони, хоть цветовые индикаторы разного типа урона.
Принятый ответ
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.