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

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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
11
И отследить, чем юнит наносит урон (атака, предмет, спелл, если он не прописан триггерно) тоже нельзя?(
28
Impertus, можно определить урон нанесённый атакой но тогда перестанут работать орбы
придётся писать их триггерную замену
11
С помощью какой строки? И не переводить ли весь урон атак на триггерную основу?
(Можно из DamageTaken + Attacking unit мб?)
28
Impertus, с помощью нескольких строк
создаём в ро способность на основе отравляющей атаки/сферы льда/любого другого орба с бафом со временем действия 0,01 сек
пихаем её в спелбук
запрещаем этот спелбук и даём его всем юнитам
если при получении урона на юните есть баф нашего орба значит урон нанесён рукой
иначе не рукой
11
А, не, не критично.
Хотел сделать триггерные криты, а откуда цифири базового дамага для них брать - хз. Будет значит рандом между мин.дмг+стат и макс.дмг+стат * множитель.
А по дамагтайпу не отследить? У обычной атаки вроде тип Физ-обычный, у других такого нет вроде.
28
Impertus, а как ты дамагтайп узнаешь?
Хотел сделать триггерные криты, а откуда цифири базового дамага для них брать - хз
зачем базовый?
цифры у крита идут с учётом резиста брони и прочего
то есть просто урон выводи
GetEventDamage()
в статьях даже пример на гуи есть вроде
11
Делал с DamageTaken*X, только при таком расчете крит сильно занижается.
Допустим, крит х3, дамаг 100. У цели снижение получаемого урона на 50%. Т.е. крит будет считаться от 50 дмг = 150 дамага всего будет наноситься триггерно, а получать - 150*0.5=75 урона всего. Вместо (100*3)/50=150. И цифирь крита будет отображаться не 300!, а 150!. Хотя базовые криты отображаются как раз в виде 300!.
28
if GetUnitAbilityLevel(dc,'B00P') > 0 and IsCritTarget(t,dc) and Dm > 0. and GetRandomInt(1,100) <= 50 and cl == false and (GetUnitAbilityLevel(t,'A086') > 0 or GetUnitTypeId(s) == 'h00B') then
call Crit(dc,Dm*1.8) texttag
call UnitDamageTarget(udg_NDCD[q+1],t,Dm*.8,true,false,ATTACK_TYPE_HERO,DAMAGE_TYPE_DEMOLITION,WEAPON_TYPE_WHOKNOWS)
endif
ну вот допустим это 1.8-х крит из моей карты. Думаю тут ясно, что где
11
Суть критов была каждый 5й удар 100% крит.
Делал через AttackingUnit, но там настроить убирание спелбука с критом тяжело, так как для юнита с долгим замахом (тот же блейдмастер, у него от события Attacking до нанесения урона 1.15 сек) спелбук убирается до собственно нанесения урона и крита нет. Ставить вейты можно, но ненужно+влияет скорость атаки, будет успевать сделать по 2 крита при статичном вейте.
16GB:
ну вот допустим это 1.8-х крит из моей карты. Думаю тут ясно, что где
А Dm чему равен? Вне куска кода, сама суть вопроса)
28
Impertus,
ну это урон отловленный
Я не скидывал всё потому что там 100500 проверок разных, например урон нанесён с руки , урон нанесём не даммиком для критического удара и т .д
11
И чистый урон, у самого так сделано, но не нравится что все портит Огненный плащ, например, а ломать орбы не хочется юниту, он милишный.
И отображается крит неполный, попробую с GetEventDamage()
Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
Чтобы оставить комментарий, пожалуйста, войдите на сайт.