Referenz › Funktionsreferenz › Platform

Platform.spells.IsSpellReady

öffentlich

Aufruf als

addon.Platform:IsSpellReady(spell, now)

Direkt über addon verfügbar; keine Abhängigkeit nötig.

Was sie bewirkt

Prüft, ob ein Zauber jetzt empfohlen werden kann, wobei ein Zauber zugelassen wird, dessen verbleibende Abklingzeit mit der aktuellen globalen Abklingzeit endet. In Retail und Forever, wo Abklingzeiten im Kampf geheim sind, ergibt sich die Bereitschaft stattdessen aus den nie geheimen Flags isEnabled, isActive und isOnGCD. Geprüft wird nur die Bereitschaft der Abklingzeit, nicht der Lernstatus, die Reichweite oder ob genug Ressourcen vorhanden sind. Übergeben Sie die Auswertungszeit aus evalStart oder GetTime().

Argumente

NameTypWas sie bewirkt
selfRMPlatformPlattformadapter von Rotation Master. Ein Punktaufruf erfordert addon.Platform als erstes Argument; ein Doppelpunktaufruf übergibt ihn implizit.
spellnumber | stringZauber-ID oder vom Client erkannter Zaubername, dessen Abklingzeit geprüft werden soll.
nownumberAktuelle Auswertungszeit in Sekunden aus GetTime(), normalerweise evalStart.

Rückgabewerte

1boolean | nilTrue, wenn bis zum Ende der globalen Abklingzeit bereit; false, wenn die eigene Abklingzeit eine Empfehlung verhindert; nil, wenn der Client kein lesbares Ergebnis liefern kann.
2string | nilVerfügbarkeits- oder Validierungsgrund, wenn das Ergebnis nil ist.

Editionen

Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.

  • Auf dieser Edition nicht verfügbar (den Grund nennt der Tooltip)
  • Nur, solange Blizzards Ersatz für veraltete Funktionen aktiv ist
Spiel-APIClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GetTimeClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Geheime Werte (Retail und Forever)

Auf Retail und Forever übergibt das Spiel Addons geheime Werte. Diese Hilfsfunktion prüft, was sie liest (addon.Platform:CanReadValue), und gibt statt eines geheimen Werts, den sie nicht vergleichen kann, nil mit einem Grund wie restricted-value zurück. Behandeln Sie nil als nicht verfügbar, nicht als false.

Beispiel

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

Abhängigkeiten

Quelle

Platform/spells.lua, Zeile 575. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.

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

Zurück zu Funktionsreferenz