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

  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

Алексей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() возвращает время сервера)
 
Реклама: