Riferimento › Riferimento delle funzioni › Platform

Platform.spells.IsSpellReady

pubblica

Chiamala come

addon.Platform:IsSpellReady(spell, now)

Disponibile direttamente tramite addon; non serve alcuna dipendenza.

Cosa fa

Verifica se un incantesimo può essere consigliato ora, ammettendo un incantesimo il cui tempo di recupero residuo termina con il tempo di recupero globale in corso. Su Retail e Forever, dove i tempi di recupero sono segreti in combattimento, la disponibilità deriva invece dai flag isEnabled, isActive e isOnGCD, che non sono mai segreti. Verifica solo la disponibilità rispetto al tempo di recupero; non verifica se l'incantesimo è appreso, la portata o la disponibilità di risorse. Passa il tempo di valutazione da evalStart o GetTime().

Argomenti

NomeTipoCosa fa
selfRMPlatformAdattatore di piattaforma di Rotation Master. Un riferimento con punto richiede addon.Platform come primo argomento; una chiamata con due punti lo fornisce implicitamente.
spellnumber | stringID dell'incantesimo o nome riconosciuto dal client di cui controllare il tempo di recupero.
nownumberTempo di valutazione attuale in secondi da GetTime(), di norma evalStart.

Valori restituiti

1boolean | nilTrue quando è pronto entro la fine del tempo di recupero globale; false quando il suo tempo di recupero ne impedisce la raccomandazione; nil quando il client non può fornire un risultato leggibile.
2string | nilMotivo di indisponibilità o di convalida quando il risultato è nil.

Edizioni

Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.

  • Non disponibile su quell'edizione (il motivo è nel suggerimento)
  • Solo mentre sono attivi i ripieghi di Blizzard per le API deprecate
API di giocoClassic EraTBC AnniversaryClassic progressionForeverRetail
GetTimeClassic EraTBC AnniversaryClassic progressionForeverRetail

Valori segreti (Retail e Forever)

Su Retail e Forever il gioco fornisce agli addon valori segreti. Questa funzione di supporto controlla ciò che legge (addon.Platform:CanReadValue) e restituisce nil con un motivo come restricted-value invece di un valore segreto che non può confrontare. Considera nil come non disponibile, non come false.

Esempio

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

Dipendenze

Sorgente

Platform/spells.lua, riga 575. Nel gioco è in sola lettura; Duplica crea una copia modificabile.

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

Torna a Riferimento delle funzioni