Здравствуйте. Столкнулся с одной проблемкой. У героя со временем уменьшается скорость атаки. Герой имеет врожденную способность благодаря которой они может сделать несколько очень быстрых ударов после чего скорость атаки становиться обычной. Скорость я повышаю добавляя способность перчаток скорости со значение 9999, а когда она выполнит нужное количество ударов я отбираю эту способность а так по новой когда пройдет перезарядка.
Так же в карте есть система которая повышает зеленые статы с помощью плюсов. Система использует 4 способности со значениями от 1-9, 10-90, 100-900. 1000-9000. Каждый тик система обнуляет у юнита эти способности удаляя их а потом добовляет и устанавливает на нужное значение.
Так вот на сколько я понял когда герой получает баф ловкости ( а ловкость дает скорость ) и бьет цели получая и теряя бонус к скорости 9999 он теряет свою врожеднную скорость. С каждым разом он бьет все медленее пока не перестает бить вообще.
Подскажите что я делаю не так) Я не совсем разбираюсь в системе расчета скорости атаки так что возможно где-то допустил ошибку. Или это связано с изменение значения ловкости.

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

ответ
не стоит использовать ждать
создаём для юнита целочисленную переменную time
1 триггер
 Событие 
 	периодическое событие - каждые 0.1 сек.-
 Условие 
	time > 0
Действие  
	set time = time - 1
	если time == 0 то понизить уровень способности "незаметность" для "герой" до 1
	
2 триггер
 Событие
	боевая единица - юнит атакован
 Условие
	Атакующий юнит=герой или Атакованный юнит=герой
 Действие
	set time=30
	боевая единица - повысить уровень способности "незаметность" для "герой" до 2
не забудь закрыть вопрос (для этого выбери лучший ответ)
ответ
Steal nerves:
а почему так? отравленное оружие настраивает на сколька понизить в %. а сколько не ставь, все одно. мб что-то не правильное. абилка что ли бракованная

все врубился, понял формулу:
скорость = Текущая скорость - (Текущая скорость * процент снижения)
слишком большие проценты ставил, в результате не видел, и выходило ниже скорость. А так как стоят ограничения в скорости (мин = 150, макс = 400 в константах), то упиралась в минималку, и не видел изменения, из-за чего ошибочно начал теории строить.

в абилках "отравленное оружие" и "яд" дриады - поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки .
ответ
Steal nerves:
Отравленное оружие 'Aven'/'ACvs'/Яд 'Aspo' - Buff Placer, позволяющая замедлять противника при атаке, и наносить ему урон каждую секунду. При атаке накидывает на противника дебафф (яд). Этот дебафф остается на противнике несколько секунд, повторная атака ядом продлевает длительность дебаффа. Этот дебафф наносит ежесекундный урон, и понижает скорости атак, движения. Характеристики:
"Данные - Урона в секунду" - ежесекудно наносит урона.
ВНИМАНИЕ: поля "Данные - Фактор скорости атаки" и "Данные - Фактор скорости перемещения" - перепутаны, в "фактор скорости атаки" указывают понижение в процентах скорости движения, а в "фактор скорости перемещения" указывают понижение в процентах скорости атаки (1.00 = 100%, 0.5 = 50%, 1.5 = 150%, 100% или 0% - не будет понижать). Понижение скорости идет по формуле:
скорость = текущая скорость - (текущая скорость * процент понижения).
раскрыть
скорость движения юнита меняется от текущей скорости, и может упереться в ограничение установленных констант (мин = 150, макс = 400, если будет ниже скажем 100, то автоматом игра подправляет на 150). Скорость атаки изначально равняется 1 (100%), может по такой же формуле снижаться. например, снижение на 0.3. 1-(1*0.3)=0.7 - скорость атаки. или можно просто вычесть 1-0.3=0.7
У отравленного оружия есть два типа дебаффа: "Яд (не буферизуется)", "Яд (буферизуется)". Что это значит? Буферизация связана с настройкой "Тип буфера" (Тип буфера: здесь можно указать несколько галочек, всего их 4: "Урон" - суммирует ли ежесекудный эффект отравление, "Скорость боя" - удваивается ли коэффициент-множитель от скорости атаки (будет в несколько раз больше снижена скорость боя врага), "Движение" - удваивается ли коэффициент-множитель от скорости движения (будет в несколько раз понижена скорость противника), "Убить юнита" - при отравлении, типа может убить ядом). Эффекты от буфера складываются не повторной атакой одного юнита, а двух юнитов (если второй юнит с такой же абилкой нанесет атаку, то будут складываться эффекты). При буферизации урон суммируется, и коэффициенты скоростей складываются. Ежесекундный урон от отравления относится к типу атаки "заклинание", не понижается защитой, можно отнести к магическому урону

13
Покажи, пожалуйста, как именно ты добавляешь и удаляешь статы
32
Ну вопервых статы и скорость нужно вручать до удара а не вовремя или после, во вторых сначала удалять модификаторы а потом статы вручать, после вновь, то бывают баги при пересчете бонусов, обычно такое просиходило при морфах героев, поэтому в норм каратх у юнита перед мофром убирают все предметы из инвенторя, а за тем загружают их обратно, помогает избавится от неправильных бонусов.
12
quq_CCCP, попробую сделать и отпишусь о результатах
quq_CCCP, статы и так вручаются до удара)
26
Я делал обновление уровня абилки (-AS) при каждом замахе, в зависимости от наличия на нём баффа. Высчитывался уровень абилки (уровень замедляющего скилла, как основы, а не уровень самой замедляшки от перчаток скорости) и КАЖДЫЙ раз абилка отнималась и добавлялась снова, и выставлялся новый уровень (высчитанный из проверки).
В итоге получалось так что результатом этой регулировки стала потеря этого отрицательного бонуса замедления.
18
посмотри как у урсы сделано
Там и скорость атаки (со счетчиком ударов) есть и алгоритм добавления зеленого урона
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.