Как сделать процентное лечение со временем?

Нужно например чтоб при применении зелья юнит получал по 5% от максимального здоровья в течении 10 сек. В итоге 50%. Как это сделать? Альтернатива: (Я пробовал использовать ауру источника жизни для восстановления но она действует ещё несколько секунд после удаления способности у юнита, кто нибудь знает сколько именно и можно ли расчитать восстановленное здоровье? Второй вопрос это как быть с таймерами, функция ждать вроде неточная, но я использую локалку и поэтому незнаю как прикрутить таймер вместо ожидания.)

Ответ

Steal nerves, Я сделал с детектором бафа обычного лечение, здоровье восстанавливаю триггерно, забил на ауру.


Views: 1 748

» Лучшие комментарии


quq_CCCP #1 - 4 years ago 3
Голосов: +5 / -2
quq_CCCP #3 - 4 years ago 3
Голосов: +7 / -4
И че мы молчим и минусуем? Ждем чтобы кто то все сделал за вас? Ну вам ни сюда тогда, шуруем отсюда в "заклинания на заказ" или в другое место.
МрачныйВорон #5 - 4 years ago (изм. ) 4
Голосов: +4 / -0
» Ауры:
У аур есть проблемы. Бонусы от одинаковых баффов аур не стакаются друг с другом. Чаще самая сильная аура подавляет слабую (точнее не аура, а бонус). Например, два скила "доспехи веры" с разными значениями бонуса, но одинаковыми баффами:
Доспехи веры +5 защиты (buff "Доспехи веры")
Доспехи веры +10 защиты (buff "Доспехи веры") - эта аура подавляет ауру "доспехи веры +5"
Точно такая же проблема и с отрицательными значениями (действует на врагов), подавляет та аура, у которой значение больше:
Доспехи веры -10 защиты (buff "Доспехи веры")
Доспехи веры -5 защиты (buff "Доспехи веры") - эта аура подавляет ауру "доспехи веры -10 (что в принципе рушит идею, на врага аура должна сильнее снижать, но так не получится)"
Как будет работать с аурами со многочисленными характеристиками, например аура выносливости дает бонусы на скорость атаки AS, и на скорость движения MS, пример:
Аура выносливости-1: 10% AS, 5% MS (AS=0.1, MS=0.05) (buff "Аура выносливости")
Аура выносливости-2: 5% AS, 10% MS (AS=0.05, MS=0.1) (buff "Аура выносливости")
Что будет если на юнита будут работать две ауры с одинаковыми баффами? Какая из них будет подавлять? Дебагом с помощью мем хака выяснил, что юнит будет брать только лучшие бонусы, то есть там не аура подавляет, а бонус. Чем сильнее бонус, тот и будет стоять. На юните получились таким бонусы:
10% AS - бонус от первой ауры
10% MS - бонус от второй ауры
Главное: две ауры с одинаковым баффом не отображают иконки от двух баффов, показывается лишь одна иконка. Дело в том, что одна аура подавляется другой аурой. Нужно каждой ауре указать разные баффы, тогда и эффекты складываются от аур, пример:
аура +5 защиты (buff 1)
аура +10 защиты (buff 2)
Получается: В сумме бонус от аур получается +15 защиты. И при этом различные иконки баффов будут сочетаться (показываться), а это, несомненно, плюс.
Доспехи веры 'AHad'/'ACav'/'AIad' - повышает защиту на фиксированное число (можно поставить процент повышения. При процентном повышений вычисляется по такой формуле: Бонусная защита = (защита * коэффициент). При нулевой защите бонус не дается ).
Боевой марш 'Aakb' (аура) - повышает силу атаки всех воинов на фиксированное значение. Можно настроить, поставив галочку: так для воинов ближнего боя, так и для воинов дальнего боя. Можно назначить процентно или количественно (галочка "Общее преимущество" - кривой перевод, значит, разрешить количественно повышать или процентно от силы атаки. )
Аура меткости 'AEar'/'AСat'/'AIar' - повышает силу атаки воинов дальнего боя (ренжей) на фиксированное значение. Можно настроить, поставив галочку: так для воинов ближнего боя, так и для воинов дальнего боя. Можно назначить процентно или количественно (галочка "Общее преимущество" - кривой перевод, значит, разрешить количественно повышать или процентно от силы атаки). В точь-точь похожа на абилу "Боевой марш" 'Aakb'
Боевой дух 'ACac'/'AIcd' (аура) - повышает силу атаки всех воинов на фиксированное значение. Можно настроить, поставив галочку: так для воинов ближнего боя, так и для воинов дальнего боя. Можно назначить процентно или количественно (галочка "Общее преимущество" - кривой перевод, значит, разрешить количественно повышать или процентно от силы атаки). В точь-точь похожа на абилу "Боевой марш" 'Aakb'
» повышение процентно боевой марш, аура меткости, боевой дух
Все мы знаем, что у юнитов атака варьируется от минимальной до максимальной атаки:
Min = Damage Base + Number of Dice (количество костей)
Max = Damage Base + Number of Dice * Sides per Die (кол-во костей*урона с каждой кости)
Если не стоит галочка "Общее преимущество", то вычисляется по такой формуле (нужно найти среднее значение между минимальным и максимальным):
Бонусная сила атаки=((Min+Max)/2)*k
Если поставить повышение процента "Общее преимущество", то вычисляется по такой формуле (эта формула ниже может быть не работать. Во время второго теста выяснил, что работает по-другому. Хотя недавно на 20 юнитов тестировал. Короче не знаю, видимо неверно тестил. Для меня загадка почему тогда это работало, сейчас не работает):
Бонусная сила атаки = Min + (Max*(1-k))+(Max*k) - где k - значение в абилке
Чародейская аура 'AHab'/'ACba' - повышает регенерацию маны на фиксированное значение, короче дает n-ое количество маны в секунду (можно поставить процент повышения, значит восстанавливать будет процентно от запаса маны. Например, у юнита запас маны = 1000, восстанавливает 0.05 (5%). Вычисление: 1000*0.05=50 единиц маны. Получается каждую секунду восстанавливаем 50 единиц маны. )
Дух-целитель (дух-целитель) 'Aoar'/Аура восстановления здоровья (предмет) 'AIgx' - аура, испускаемая духом-целителем. Лечит всех вокруг с процентом, в зависимости от объема здоровья. (стоит галочка процент, значит регенит процентно. Например, запас здоровья лучницы = 245, лечит 0.02 (2%). Вычисление: 245*0.02=4.9 единиц здоровья. Получается каждую секунду восстанавливает 4.9 единиц здоровья. Может регенить не процентно, достаточно снять галочку, тогда восстанавливает фиксированное число здоровья в секунду ). Кстати, у этой ауры не высвечиваются иконка и описания на панеле у носителя ауры.
Аура выносливости 'AOea'/'AOr2'/'Scae'/'AIae' - аура, повышающая скорость атаки и перемещения в %. Повышает по такой формуле: Скорость = Текущая скорость + (Текущая скорость * k), где k - коэффициент скорости. Скорость атаки юнита изначально берется за 1.00 (если нету никаких бонусов, там от перчаток и др), и высчитывается точно по такой же формуле.
Аура замедления (торнадо) 'Aasl' - аура, снижающая скорость атаки и перемещения в %. Особенность это ауры в том, что не отображается иконка способности. В абилке стоят отрицательные коэффициенты. Повышает по такой формуле: Скорость = Текущая скорость + (Текущая скорость * k), где k - коэффициент скорости. Скорость атаки юнита изначально берется за 1.00 (если нету никаких бонусов, там от перчаток и др), и высчитывается точно по такой же формуле. Здесь также есть подавление аур, но работает немного по-другому (чем слабее аура, та и займет место сильнейшей).
» Например:
Аура -10% скорости (-0.1)
Аура -40% скорости (-0.4) - эта будет подавлять "ауру -10% скорости" (здесь наоборот работает в отличии от привычных аур)
Эту ауру советуют использовать в качестве пустышки для добавления баффа, так как эта аура не имеет иконки, то ее проще добавить юниту. Неизвестно на что реагирует галочка "Скрыть кнопку", так как у ауры не отображается иконка изначально, хоть ставь галочку, хоть не ставь. Это также может быть что-то другое, например, у волшебниц Альянса есть автокастовый скилл "Замедление" или у друидов-ветра "Волшебный огонь" - есть похожая с названием "Скрыть кнопку" галочка. Там перевод кривой, включает автоприменение на всех (по стандарту на всех не кидает, только при агрессий).
Аура порчи 'Aabr' - аура, повышающая здоровье процентно дружественной нежити. (можно назначить "восстанавливать процентное HP от здоровья в секунду" или "восстанавливать фиксированное число здоровья в секунду", по стандарту галочка стоит, что значит повышение идет процентно. Формула: hp=MaxHP*k, где MaxHP - максимальный запас здоровья, k - коэффициент множитель (k не равен 0). Но в этой ауре значение коэффициента установлено на ноль!!! По идее не должен восстанавливать, так как обнуляет. На деле же, варкрафт обнулить не может, регулировка какая есть, подправляет с нуля на другое значение. Дебагом с помощью мем хака проверял, значение 0.5 единиц здоровья в секунду восстанавливает). Эта аура работает на нежити. Подавляет эффект порчи - так написано в описаний ауры. На порченной земле нежить восстанавливается быстрее - это понятно, такая механика. Если заглянуть в РО у войск нежити есть:
  1. указан тип восстановления здоровья "Только на порченной земле" - это значит регенерация здоровья юнита работает на порченной земле. Не от способностей, не от предметов, а собственная.
  2. у юнитов в редакторе объектов в разделе юниты "скорость восстановления здоровья" - вот эта графа работает у нежити на порченной земле. Если сравнить, у нежити намного больше здоровья в секунду восстанавливает, чем у живых. Если отойти юнитам нежити от порченной земли, то регенерация прервется.
Пишут "Подавляет эффект порчи", подавляет порча ауру порчи, а не аура. Аура порчи перестает работать на порченной земле.
Аура восстановления здоровья 'ACnr' - аура фонтана (источника жизни), восстанавливающая только здоровье. Лечит всех вокруг с процентом, в зависимости от объема здоровья. (стоит галочка процент, значит регенит процентно. Например, запас здоровья лучницы = 245, лечит 0.01 (1%). Вычисление: 245*0.01=2.45 единиц здоровья. Получается каждую секунду восстанавливает 2.45 единиц здоровья. Может регенить не процентно, достаточно снять галочку, тогда восстанавливает фиксированное число здоровья в секунду ). Кстати, у этой ауры не высвечиваются иконка и описания на панеле у носителя ауры. Можно сказать, аура от духа-целителя и аура фонтана одинаковы
Аура восстановления маны 'ANre' - аура фонтана (источника маны), восстанавливающая только ману. Восстанавливает всем маны вокруг с процентом, в зависимости от запаса маны. (стоит галочка процент, значит регенит ману процентно. Например, запас маны героя = 300, восстанавливает 0.01 (1%). Вычисление: 300*0.01=3 единиц маны. Получается каждую секунду восстанавливает 3 единиц маны. Может регенить не процентно, достаточно снять галочку, тогда восстанавливает фиксированное число маны в секунду ) Не имеет иконки. Похожа на чародейскую ауру, только иконки нет
Аура повреждения зданий (торнадо) 'Atdg' - аура урона. Ежесекундно вокруг героя аура наносит всем урона. Можно задать полный, средний, малый уроны. А также задать радиус полного урона = область воздействия, радиус среднего урона, радиус малого урона. Полный урон (поле "Урона в секунду") доминирует над малым и средним уронами, а средний над малым (это значит, что в радиусе действия полного урона средний и малый уроны не действуют или в радиусе среднего урона не действует малый урон). Полный, средний, малый уроны относятся к типу атаки "заклинание", не понижается защитой, является магическим уроном. Эта аура не имеет иконки. Аура с сильным уроном подавляет ауру с слабым уроном, у них одинаковый дебафф:
Аура +100 урона в секунду (buff "Торнадо: урон")
Аура +300 урона в секунду (buff "Торнадо: урон") - эта аура подавляет ауру +100 урона в секунду
Если указать двум аурам разные баффы, то урон суммируется, но хоть выводится отдельно (+100 и +300 = в сумме +400)
Эта аура не отображает иконки баффов и эффекты баффов на юнитах. Эти баффы, видимо, помечают юнита, чтобы нанести урона. А как же предмет из доты "Radiance", там как раз отображается некое свечение? Свечение - эффект. Этот спецэффект настраивается прямо в абилке: ставите в поле "Графика - цель" эффект, в поле "Графика - Воздействие на цель 1" аттач типа "origin".
Аура Смерти 'AUau'/'ACua'/'AIau' - повышает скорость перемещения в процентах (Формула: скорость = текущая + (текущая * k), где k - процент), + повышает скорость регенерации здоровья. По стандарту восстанавливает фиксированное n-число здоровья в секунду (можно поставить процент повышения, этот процент действует только на скорость регенерации здоровья. Восстанавливает процент от объема здоровья. Например, у рабочего запас здоровья = 190, процент восстанавления = 25% (0.25), 190*0.25=47.5 единиц здоровья в секунду. Получается 47.5 единиц здоровья в секунду восстанавливает здоровье)
Вампиризм 'AUav'/'ACvp'/'AIav' - аура, которая наделяет ближайщих юнитов возможностью воровать здоровье в %. То есть берется процент в зависимости от урона, типа какая-то часть нанесенного урона юнитом вернет ему в виде количества здоровья. Наделяет аурой юнитов ближнего боя, на дальневиков не работает
Аура возмездия 'AEah'/'ACah' - аура, наделяющая юнитов возвращать часть урона назад противнику. Процент % урона возвращается обратно врагу. (можно снять процент повышения, по стандарту стоит галочка. Если снять, то обратно вражеским юнитам будет возврать фиксированно одно и то же число). Возвращенный урон относится к типу атаки "заклинание", не понижается защитой. Является магическим уроном.
Вихрь торнадо 'Atsp' - что-то типа торнадо. Автоматически выбирает одного ближайщего противника и поднимает в воздух. Потом задержка, а затем ищет новую цель. Можно снизить задержку, тогда всех одновременно поднимает. Иногда не всегда гладко работает как хотелось, то поднимает, то не поднимает сразу (хотя задержка убрана). Когда юнита поднимают, он ввертится в воздухе, и в этом состояний становится неуязвимым (этот как в скиле "смерч"). Не отображается иконка у ауры на панеле команд.
у дебаффа есть спецэффект, который поднимает вверх = тема xgm.guru/forum/showthread.php?t=58030
Пронзающая смерть
Abilities\Spells\Undead\Impale\ImpaleHitTarget.mdl
Смерч
Abilities\Spells\NightElf\Cyclone\CycloneTarget.mdl
Торнадо (аура)
Abilities\Spells\Other\Tornado\TornadoElementalSmall.mdl
Жар Преисподней (посстоянное, пасивка) 'ANpi'/'Apig'/Пламя феникса (летает) 'Apmf' - это пассивки, эффект тот же самый, что и у щита "Жар Преисподней", отличие только в том, что это пассивка, и эффект постоянный. Можно триггерно дать, и юнит окутается пламенем, обжигающий противников поблизости. Пламени никакого не видно, так как применяется огненными големами. Еще отличие от щита Иллидана в том, что каждую секунду не отбирает ману (щит Иллидана, когда маны нет, отключается). Характеристики те же (но ставил "Украдено маны в секунду", маны не забирало). Еще можно задать радиус действия в поле "Область воздействия". Ежесекундный урон от щита относится к типу атаки "заклинание", не понижается защитой. Является магическим уроном. Пишут, что жар преисподней багается с уровнями.
косвенная аура
Ядовитое облако (Дух Чумы) 'Aap2'/'Aap4' - аура, которая отравляет всех ежесекудно.
Ядовитое облако (мясник) 'Aap1'/'Aap3' - аура, которая отравляет всех юнитов ежесекудно.
эффекты аур (баффы) пропадают не сразу после удаления. И сменяют не сразу баффы и бонусы тоже
Alexey103 #6 - 4 years ago 0
Голосов: +2 / -2

Steal nerves, Я сделал с детектором бафа обычного лечение, здоровье восстанавливаю триггерно, забил на ауру.