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

Platform.zone_pvp.GetZonePVPObservation

pública

Chame como

addon.Platform:GetZonePVPObservation()

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

O que faz

Observa o primeiro resultado de classificação JxJ da zona com uma única chamada com ponto protegida e sem argumentos. Prefere a função invocável C_PvP.GetZonePVPInfo e usa a função global apenas quando a moderna não existe. Um nil bem-sucedido ou nenhum valor retornado produz um registro vazio conhecido; observações ausentes, com falha, restritas ou malformadas continuam indisponíveis. Textos legíveis vazios e futuros mantêm o significado exato, e campos de retorno não usados não determinam a disponibilidade. Nunca troca de backend após um resultado ou falha da moderna.

Argumentos

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

Retornos

1table | nilRegistro de observação bem-sucedida com o texto pvpType ou nil; registro nil significa indisponível.
2string | nilMotivo de disponibilidade da política do cliente, da capacidade, da chamada ou da observação para um registro 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_PvPClassic EraTBC AnniversaryClassic ProgressionForeverRetail
GetZonePVPInfoClassic 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 zone = addon.Platform:GetZonePVPObservation()
if not zone then return nil end
return zone.pvpType == "sanctuary"

Código-fonte

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

Platform.zone_pvp.GetZonePVPObservation(self)
    local family=self:GetClientFamily()
    if family~='retail' and family~='forever' and family~='era' and family~='tbc' and family~='progression' then return nil,'unsupported-policy' end
    local namespace=C_PvP
    if not self:CanReadValue(namespace) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(namespace) then return nil,'restricted-value' end
    local api
    if type(namespace)=='table' then api=namespace.GetZonePVPInfo end
    if not self:CanReadValue(api) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(api) then return nil,'restricted-value' end
    if type(api)~='function' then
        api=GetZonePVPInfo
        if not self:CanReadValue(api) then return nil,'restricted-value' end
        if canaccessvalue and not canaccessvalue(api) then return nil,'restricted-value' end
        if type(api)~='function' then return nil,'missing-api' end
    end
    local ok,pvpType=pcall(api)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(pvpType) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(pvpType) then return nil,'restricted-value' end
    if pvpType==nil then return {} end
    if type(pvpType)~='string' then return nil,'invalid-api-result' end
    return {pvpType=pvpType}

Voltar para Referência de funções