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

Platform.spells.IsSpellReady

pública

Chame como

addon.Platform:IsSpellReady(spell, now)

Disponível diretamente por meio de addon; nenhuma dependência é necessária.

O que faz

Verifica se um feitiço pode ser recomendado agora, permitindo um feitiço cujo tempo de recarga restante termina junto com o tempo de recarga global atual. No Retail e no Forever, onde os tempos de recarga são secretos em combate, a prontidão vem das flags isEnabled, isActive e isOnGCD, que nunca são secretas. Verifica apenas a prontidão do tempo de recarga; não verifica se o feitiço foi aprendido, o alcance nem se há recursos para usá-lo. Passe o tempo de avaliação a partir de evalStart ou GetTime().

Argumentos

NomeTipoO que faz
selfRMPlatformAdaptador de plataforma do Rotation Master. Uma referência com ponto exige addon.Platform como primeiro argumento; uma chamada com dois-pontos o fornece implicitamente.
spellnumber | stringID de feitiço ou nome de feitiço reconhecido pelo cliente cujo tempo de recarga deve ser verificado.
nownumberMomento de avaliação atual em segundos a partir de GetTime(), normalmente evalStart.

Retornos

1boolean | nilTrue quando estiver pronto ao fim do tempo de recarga global; false quando o próprio tempo de recarga impede a recomendação; nil quando o cliente não consegue fornecer um resultado legível.
2string | nilMotivo de disponibilidade ou de validação quando o resultado é 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
GetTimeClassic 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.

Exemplo

local ready = addon.Platform:IsSpellReady(value.spell, evalStart)
if ready == nil then return nil end
return ready

Dependências

Código-fonte

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

Platform.spells.IsSpellReady(self, spell, now)
    if not self:CanReadValue(now) then return nil, "restricted-value" end
    if type(now)~="number" or now~=now or now==math.huge or now==-math.huge then
        return nil, "invalid-time"
    end
    local start,duration,enabled,reason,active,onGCD=cooldownValues(self,spell)
    if start==nil then
        if active==nil then return nil,reason end
        return flagReadiness(self,enabled,active,onGCD,now)
    end
    if not enabled then return false end
    local expires=start+duration
    if duration==0 or expires<=now then return true end

    if not gcdSpell then self:GetGlobalCooldown() end
    local gcdStart,gcdDuration,gcdEnabled,why,gcdActive=cooldownValues(self,gcdSpell)
    if gcdStart==nil then
        -- The GCD's times are hidden: one known not to be running cannot
        -- cover this spell's own, still running, cooldown.
        if gcdActive~=nil and (not gcdEnabled or not gcdActive) then return false end
        return nil,why
    end
    if not gcdEnabled or gcdDuration==0 then return false end
    -- modRate controls cooldown animation; API timestamps/duration already
    -- describe expiration in GetTime seconds, so do not divide them by it.
    local gcdExpires=gcdStart+gcdDuration
    return gcdExpires>now and expires<=gcdExpires+0.001

Voltar para Referência de funções