Можно ли захватить или внести в переменную минимальный и/или максимальный текущий урон от простой атаки юнита, включая бонусы? Средний урон с бонусами тоже подойдет.
DamageTaken не подходит, так как он захватывает урон после модификаторов типа и количества брони, а также хватает любой урон юнитом (огненный плащ и т.д.).
Текущий вариант от мейнстата+базовый, но он не включает бонусы на чисто урон, типа аур, когтей и т.д.

бд
иначе никак

added by Clamp: пример базы данных по броне, по урону логика абсолютно такая же, только надо ещё основную характеристику учитывать (она тоже в базе данных хранится).
`
ОЖИДАНИЕ РЕКЛАМЫ...

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
Суть критов была каждый 5й удар 100% крит.
Делал через AttackingUnit, но там настроить убирание спелбука с критом тяжело, так как для юнита с долгим замахом (тот же блейдмастер, у него от события Attacking до нанесения урона 1.15 сек) спелбук убирается до собственно нанесения урона и крита нет. Ставить вейты можно, но ненужно+влияет скорость атаки, будет успевать сделать по 2 крита при статичном вейте.
16GB:
ну вот допустим это 1.8-х крит из моей карты. Думаю тут ясно, что где
А Dm чему равен? Вне куска кода, сама суть вопроса)
28
Impertus,
ну это урон отловленный
Я не скидывал всё потому что там 100500 проверок разных, например урон нанесён с руки , урон нанесём не даммиком для критического удара и т .д
11
И чистый урон, у самого так сделано, но не нравится что все портит Огненный плащ, например, а ломать орбы не хочется юниту, он милишный.
И отображается крит неполный, попробую с GetEventDamage()
28
Impertus,
как ты отлавливаешь урон с руки? Я не понял вообще причём тут орбы и огненный плащ.
11
nvc123:
создаём в ро способность на основе отравляющей атаки/сферы льда/любого другого орба с бафом со временем действия 0,01 сек
пихаем её в спелбук
запрещаем этот спелбук и даём его всем юнитам
если при получении урона на юните есть баф нашего орба значит урон нанесён рукой
иначе не рукой
Вот тут про орбы
16GB:
как ты отлавливаешь урон с руки? Я не понял вообще причём тут орбы и огненный плащ.
Сейчас у меня счетчик срабатывает от любого урона через DamageTaken, в том числе и от огненного плаща, чего я хочу избежать. Через AttackingUnit работает криво-косо.
З.Ы. В ГУИ по быстрому посмотрел, нет условий на переменную с типом атаки, а сама переменная-то есть.
28
Impertus,
чтобы отловить урон именно с руки юзай яд (если при получении урона на юните баф яда то это урон с руки, ну и потом удаляешь баф тут же), правда в дальнем бою яд перекрываться как минимум критом, но можно триггерный сделать
11
Нашел вот такой подобный кусок, правда он основан на библиотеках и с- или vJass и для предмета, но буду на его основе чего-то думать.
function OnAttack takes Item itm returns nothing 
    local Tower tower = itm.getCarrier() 
    set itm.userInt = itm.userInt +1 
    if itm.userInt == 5 then 
        call tower.addAttackCrit() 
        set itm.userInt = 0 
    endif 
endfunction
28
Impertus,
я тебе сказал как реализовать. В чём проблема?
32
Криты раз в N сек, изи же, курите доту там у бх вроде норм сделана Джинада.
Узнать ударил ли юнит цель или нет можно благодаря всяким клифам, сплешам, отлавливая урон полученный дамми юнитом рядом с целью атаки, при этом сплшеши и клифы не портят орб эффекты.
30
можно определить урон нанесённый атакой но тогда перестанут работать орбы
Если все способности наносят урон через код, то вводится глобальная boolean IsSpellDamage = false и в нанесении урона образуется такая конструкция:
IsSpellDamage = true
DOTONSOFDAMAGE(9001)
IsSpellDamage = false
Теперь при событии "юнит получает урон" проверка IsSpellDamage показывает, спелами нанесён урон, или автоатакой.

А простой способ ловить урон безо всяких буферов и таймеров тут.
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.