Referência › Referência de funções › Platform

Platform.spells.cooldownValues

dependência

Chame como

Platform.spells.cooldownValues(self, spell)

Registre a dependência Platform.spells.cooldownValues e depois chame-a por esse nome. Uma chamada com namespace não passa self: use uma chamada com dois-pontos ou passe o objeto você mesmo.

O que faz

Reads a spell cooldown as separate values for the readiness checks. When the platform is marked secretsUnrestricted and the legacy GetSpellCooldown exists it calls that directly; otherwise it uses addon.Platform:GetSpellCooldown, passing along its never-secret flags when the times are restricted.

Argumentos

NomeTipoO que faz
selfRMPlatformRotation Master platform adapter (normally addon.Platform), used for its CanReadValue check.
spellnumber | stringSpell ID or client-recognized spell name.

Retornos

1number | nilCooldown start time in GetTime() seconds; nil when unavailable.
2number | nilCooldown duration in seconds; nil when unavailable.
3boolean | nilWhether the cooldown is enabled; when the times are unavailable, the never-secret isEnabled flag if it could be read.
4string | nilReason when the times are unavailable.
5boolean | nilWith restricted-value from GetSpellCooldown only: isActive.
6boolean | nilWith restricted-value from GetSpellCooldown only: isOnGCD; may be nil.

Edições

As funções auxiliares integradas são registradas em todas as edições. O que muda é a API do jogo que elas leem; quando uma está ausente, a função auxiliar recorre a uma alternativa ou retorna nil com um motivo.

  • Indisponível nessa edição (o motivo está na dica)
  • Só enquanto as alternativas da Blizzard para APIs obsoletas estiverem ativas
API do jogoClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GetSpellCooldownClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valores secretos (Retail e Forever)

No Retail e no Forever, o jogo entrega valores secretos aos addons. Esta função auxiliar verifica o que lê (addon.Platform:CanReadValue) e retorna nil com um motivo como restricted-value em vez de um valor secreto que não consegue comparar. Trate nil como indisponível, não como false.

Como o addon a chama

Dependências

Código-fonte

Platform/spells.lua, linha 507. Somente leitura no jogo; Duplicar cria uma cópia editável.

Platform.spells.cooldownValues(self, spell)
    local legacy=self.secretsUnrestricted and GetSpellCooldown
    if type(legacy)~="function" then
        local cooldown,reason,enabled,active,onGCD=self:GetSpellCooldown(spell)
        if not cooldown then return nil,nil,enabled,reason,active,onGCD end
        return cooldown.startTime,cooldown.duration,cooldown.isEnabled
    end
    local valid,reason=identifier(spell)
    if not valid then return nil,nil,nil,reason end
    local ok,start,duration,enabled=pcall(legacy,spell)
    if not ok then return nil,nil,nil,"api-error" end
    if not self:CanReadValue(start) or not self:CanReadValue(duration) or not self:CanReadValue(enabled) then
        return nil,nil,nil,"restricted-value"
    end
    if start==nil then return nil,nil,nil,"spell-data-unavailable" end
    if enabled~=0 and enabled~=1 and enabled~=true and enabled~=false then return nil,nil,nil,"invalid-api-result" end
    if not finiteNonNegative(start) or not finiteNonNegative(duration) then return nil,nil,nil,"invalid-api-result" end
    return start,duration,enabled==1 or enabled==true

Voltar para Referência de funções