Как ускорять восстановление способностей?

Алексей1488

Пользователь
2 Авг 2023
17
3
Никак не могу понять как ускорять время восстановление способностей (НЕ уменьшать перезарядку, как это делает октарин, а именно ускорять. То есть чтобы 15 сек перезарядки прошли за 7 секунд, к примеру).
Я вызвал интервал, который раз в 0.3 секунду вызывает функцию.
Функция:
function modifier_Buff_ability:Cooldown()
local arrow = self:GetCaster():FindAbilityByName("mirana_sacred_arrow_lua")
local cooldarrow = arrow:GetCooldownTime() - 1
return cooldarrow
end
Но ничего не работает. Помогите решить данный вопрос. Нигде не нашел ответ на данный вопрос.
 
я в создании абилок мало смыслю, возможно, решение есть в исходнике Time Dilation, но не уверен
Попробуй добавить строку arrow:StartCooldown(cooldarrow), мб заработает
 
Последнее редактирование:
Lua:
local ability = ищешь абилку
local abil_cd = ability:GetCooldownTimeRemaining()    -- ищешь её текущую перезарядку
local cdr = значение снижения за интервал
if abil_cd > 0 then
    ability:SetCooldown(abil_cd - cdr)
end


-- Собственно сама функция
function CDOTABaseAbility:SetCooldown(cooldown)
    self:EndCooldown()
    self:StartCooldown(cooldown)
end
 
Lua:
local ability = ищешь абилку
local abil_cd = ability:GetCooldownTimeRemaining()    -- ищешь её текущую перезарядку
local cdr = значение снижения за интервал
if abil_cd > 0 then
    ability:SetCooldown(abil_cd - cdr)
end


-- Собственно сама функция
function CDOTABaseAbility:SetCooldown(cooldown)
    self:EndCooldown()
    self:StartCooldown(cooldown)
end
Спасибки, всё работает
 
я в создании абилок мало смыслю, возможно, решение есть в исходнике Time Dilation, но не уверен
Попробуй добавить строку arrow:StartCooldown(cooldarrow), мб заработает
Вопрос про исходник TimeWalk
Чёт я не пойму как именно он вычисляет полученный за последние 2 секунды урон.
Там какая-то функция Time() используется. Это аналог GetGameTime(), или что-то устаревшее?
 
Вопрос про исходник TimeWalk
Чёт я не пойму как именно он вычисляет полученный за последние 2 секунды урон.
Там какая-то функция Time() используется. Это аналог GetGameTime(), или что-то устаревшее?
GetGameTime() возвращает игровое время, а Time() возвращает время сервера)
 
Реклама: