Базовая скорость атаки. Странное поведение модификатора скорости атаки.

  • Автор темы Автор темы Bacchus
  • Дата начала Дата начала

Bacchus

Пользователь
25 Ноя 2021
25
1
Проект
Gods&Avatars
1. Как изменить базовую скорость атаки у героя? Например, у джага - 128, а у лины -91 (без учета ловкости)?

2. Создал свой модификатор скорости атаки, MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT.

Lua:
modifier_attack_speed = modifier_attack_speed or class({
    IsHidden                = function(self) return true end,
    IsPurgable              = function(self) return false end,
    IsDebuff                = function(self) return false end,
    IsBuff                  = function(self) return false end,
    RemoveOnDeath           = function(self) return false end,
    DeclareFunctions        = function(self)
        return {
            MODIFIER_PROPERTY_ATTACKSPEED_BONUS_CONSTANT
        }
    end,
})

function modifier_attack_speed:GetAttributes()
    return MODIFIER_ATTRIBUTE_PERMANENT + MODIFIER_ATTRIBUTE_IGNORE_INVULNERABLE
end

function modifier_attack_speed:GetModifierAttackSpeedBonus_Constant()
    return 100
end

Смотрю фактическую скорость атаки героя - и она отличается от расчетной. Например, у джаггернаута без модификатора скорость атаки - 128. Даю через модификатор бонус скорости атаки 100, ожидаю увидеть у джага скорость атаки 228, а по факту вижу у него 246, то есть больше чем должно быть. А для лины - наоборот начисляет меньше, чем должно быть.
Что еще более странно - у джаггернаута максимальная скорость атаки - 820, а у лины - 643, хотя должно быть 700.

0100200300400500600700
lina91183275367459551643643
jug128246363480597715820820
 
Возможно у этих героев различный Base Attack Time(BAT), интерфейс в тултипе не учитывает, то что у героев может быть различный BAT, и рассчитывает скорость атаки иcходя из значения BAT = 1.7.
Попробуй эту функцию https://moddota.com/api/#!/vscripts/CDOTA_BaseNPC#GetDisplayAttackSpeed
 
Последнее редактирование:
  • Нравится
Реакции: Bacchus

 
Реклама: