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

Platform.spells.IsAutoRepeatActive

pública

Chame como

addon.Platform:IsAutoRepeatActive(spellID)

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

O que faz

Lê o estado de repetição automática do jogador para um feitiço como Atirar ou Disparo Automático. Isso é diferente de um lançamento atual ou na fila. Clientes modernos recebem o ID de feitiço exato; uma consulta antiga resolve primeiro o espaço do grimório do jogador. Políticas restritas do cliente, resultados ilegíveis e espaços do grimório indisponíveis retornam nil com um motivo. Isso observa o estado e nunca inicia nem interrompe um feitiço.

Argumentos

NomeTipoO que faz
selfRMPlatformAdaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos).
spellIDnumberID de feitiço inteiro positivo, não um espaço do grimório.

Retornos

1boolean | nilTrue quando o cliente informa que este feitiço está em repetição automática; false quando informa que está inativo; nil quando indisponível.
2string | nilMotivo de validação ou disponibilidade para um 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
C_Spell.IsAutoRepeatSpellClassic EraTBC AnniversaryClassic ProgressionForeverRetail
FindSpellBookSlotBySpellIDClassic EraTBC AnniversaryClassic ProgressionForeverRetail
IsAutoRepeatSpellClassic 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 shooting = addon.Platform:IsAutoRepeatActive(75) -- Auto Shot
if shooting == nil then return nil end
return not shooting

Dependências

Código-fonte

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

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

Voltar para Referência de funções