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
| Nome | Tipo | O que faz |
|---|---|---|
self | RMPlatform | Adaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos). |
spellID | number | ID de feitiço inteiro positivo, não um espaço do grimório. |
Retornos
| 1 | boolean | nil | True quando o cliente informa que este feitiço está em repetição automática; false quando informa que está inativo; nil quando indisponível. |
|---|---|---|
| 2 | string | nil | Motivo 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
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 shootingDependências
identifier→Platform.spells.identifier
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




