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

Platform.form.GetPlayerFormObservation

pública

Chame como

addon.Platform:GetPlayerFormObservation()

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

O que faz

Observa a forma atual do jogador com uma única chamada protegida a GetShapeshiftForm sem argumentos. Preserva todos os resultados numéricos finitos legíveis, incluindo zero e valores com sinal e fracionários; nenhum domínio de índice nativo mais estrito é deduzido. Dados ausentes, com falha, nil, restritos ou não finitos continuam indisponíveis. Nenhuma contagem de formas, classe, ID de feitiço, unidade ou argumento opcional é adicionado.

Argumentos

NomeTipoO que faz
selfRMPlatformAdaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos).

Retornos

1number | nilObservação finita e legível da forma atual, incluindo zero para a comparação atual sem metamorfose; nil quando indisponível.
2string | nilMotivo de disponibilidade da política do cliente, da capacidade, da chamada ou da observação para uma forma 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
GetShapeshiftFormClassic EraTBC AnniversaryClassic ProgressionForeverRetail
canaccessvalueClassic 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 form = addon.Platform:GetPlayerFormObservation()
if form == nil then return nil end
return form == 0 -- not shapeshifted

Código-fonte

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

Platform.form.GetPlayerFormObservation(self)
    local policy=self:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    if type(GetShapeshiftForm)~='function' then return nil,'missing-api' end
    local ok,result=pcall(GetShapeshiftForm)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(result) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(result) then return nil,'restricted-value' end
    if result==nil then return nil,'form-unavailable' end
    if type(result)~='number' or result~=result or result==math.huge or result==-math.huge then return nil,'invalid-api-result' end
    return result

Voltar para Referência de funções