Référence › Référence des fonctions › Platform

Platform.spells.IsAutoRepeatActive

publique

Appel

addon.Platform:IsAutoRepeatActive(spellID)

Disponible directement via addon ; aucune dépendance n'est nécessaire.

Ce qu'elle fait

Lit l'état de répétition automatique du joueur pour un sort tel que Tir ou Tir automatique. Cet état est distinct d'une incantation en cours ou en file d'attente. Les clients modernes reçoivent l'ID de sort exact ; une requête à l'ancienne résout d'abord l'emplacement du grimoire du joueur. Les politiques client restreintes, les résultats illisibles et les emplacements de grimoire indisponibles renvoient nil avec un motif. Cela observe l'état et ne lance ni n'arrête jamais un sort.

Arguments

NomTypeCe qu'elle fait
selfRMPlatformAdaptateur de plateforme Rotation Master (implicite avec un appel par deux-points).
spellIDnumberID de sort entier positif, et non un emplacement du grimoire.

Retours

1boolean | niltrue si le client indique que ce sort se répète automatiquement ; false s'il l'indique inactif ; nil si indisponible.
2string | nilMotif de validation ou de disponibilité pour un résultat nil.

Éditions

Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.

  • Indisponible sur cette édition (la raison figure dans l'infobulle)
  • Uniquement tant que les solutions de repli de Blizzard pour les fonctions obsolètes sont actives
API du jeuClassic EraTBC AnniversaryClassic ProgressionForeverRetail
C_Spell.IsAutoRepeatSpellClassic EraTBC AnniversaryClassic ProgressionForeverRetail
FindSpellBookSlotBySpellIDClassic EraTBC AnniversaryClassic ProgressionForeverRetail
IsAutoRepeatSpellClassic EraTBC AnniversaryClassic ProgressionForeverRetail

Valeurs secrètes (Retail et Forever)

Sur Retail et Forever, le jeu transmet aux addons des valeurs secrètes. Cette fonction utilitaire vérifie ce qu'elle lit (addon.Platform:CanReadValue) et renvoie nil avec une raison telle que restricted-value au lieu d'une valeur secrète qu'elle ne peut pas comparer. Traitez nil comme indisponible, pas comme false.

Exemple

local shooting = addon.Platform:IsAutoRepeatActive(75) -- Auto Shot
if shooting == nil then return nil end
return not shooting

Dépendances

Source

Platform/spells.lua, ligne 697. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.

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

Retour à Référence des fonctions