Referenz › Funktionsreferenz › Platform

Platform.spells.IsAutoRepeatActive

öffentlich

Aufruf als

addon.Platform:IsAutoRepeatActive(spellID)

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

Was sie bewirkt

Den Status der automatischen Wiederholung des Spielers für einen Zauber wie Schießen oder Automatischer Schuss lesen. Dies unterscheidet sich von einem aktuellen oder eingereihten Zauber. Moderne Clients erhalten die exakte Zauber-ID; eine alte Abfrage löst zuerst den Platz im Zauberbuch des Spielers auf. Eingeschränkte Client-Richtlinien, unlesbare Ergebnisse und nicht verfügbare Zauberbuchplätze ergeben nil mit einem Grund. Dies beobachtet nur den Zustand und startet oder stoppt nie einen Zauber.

Argumente

NameTypWas sie bewirkt
selfRMPlatformPlattformadapter von Rotation Master (bei Doppelpunktaufrufen implizit).
spellIDnumberPositive ganzzahlige Zauber-ID, kein Platz im Zauberbuch.

Rückgabewerte

1boolean | nilTrue, wenn der Client meldet, dass sich dieser Zauber automatisch wiederholt; false, wenn er ihn als inaktiv meldet; nil, wenn nicht verfügbar.
2string | nilValidierungs- oder Verfügbarkeitsgrund für ein nil-Ergebnis.

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
C_Spell.IsAutoRepeatSpellClassic EraTBC AnniversaryClassic ProgressionForeverRetail
FindSpellBookSlotBySpellIDClassic EraTBC AnniversaryClassic ProgressionForeverRetail
IsAutoRepeatSpellClassic 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 shooting = addon.Platform:IsAutoRepeatActive(75) -- Auto Shot
if shooting == nil then return nil end
return not shooting

Abhängigkeiten

Quelle

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

Platform.spells.IsAutoRepeatActive(self, spellID)
    local policy=self:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    local valid,reason=identifier(spellID,true)
    if not valid then return nil,reason end
    local native=C_Spell and C_Spell.IsAutoRepeatSpell
    local ok,active
    if type(native)=='function' then
        ok,active=pcall(native,spellID)
    else
        if type(IsAutoRepeatSpell)~='function' or type(FindSpellBookSlotBySpellID)~='function' then return nil,'missing-api' end
        local found,slot=pcall(FindSpellBookSlotBySpellID,spellID,false)
        if not found then return nil,'api-error' end
        if not self:CanReadValue(slot) then return nil,'restricted-value' end
        if slot==nil then return nil,'spell-not-in-book' end
        if type(slot)~='number' or slot<1 or slot==math.huge or slot%1~=0 then return nil,'invalid-api-result' end
        ok,active=pcall(IsAutoRepeatSpell,slot,BOOKTYPE_SPELL or 'spell')
    end
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(active) then return nil,'restricted-value' end
    if type(native)~='function' then
        if active==0 then active=false elseif active==1 then active=true end
    end
    if type(active)~='boolean' then return nil,'invalid-api-result' end
    return active

Zurück zu Funktionsreferenz