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

Platform.health_forecast.GetHealthForecastValueObservation

pública

Chame como

addon.Platform:GetHealthForecastValueObservation(unit, kind)

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

O que faz

Lê um valor escalar de vida preguiçoso após uma verificação de identidade separada. O tipo current usa exatamente UnitHealth(unit); maximum usa exatamente UnitHealthMax(unit). Clientes com política de sondagem ou restrita aceitam números finitos legíveis não negativos, incluindo zero. Nenhuma chamada repetida de existência/GUID nem alternativa de tupla é adicionada.

Argumentos

NomeTipoO que faz
selfRMPlatformAdaptador de plataforma do Rotation Master (implícito nas chamadas com dois-pontos).
unitstringToken de unidade selecionado não vazio; esta chamada por si só não estabelece a presença.
kindstringTipo escalar fechado: current ou maximum.

Retornos

1number | nilValor escalar de vida nativo finito e não negativo, ou nil quando indisponível.
2string | nilMotivo de disponibilidade da política, da validação ou de uma observação necessária.

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
UnitHealthClassic EraTBC AnniversaryClassic ProgressionForeverRetail
UnitHealthMaxClassic 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 current = addon.Platform:GetHealthForecastValueObservation("target", "current")
local maximum = addon.Platform:GetHealthForecastValueObservation("target", "maximum")
if not current or not maximum or maximum == 0 then return nil end
return current / maximum <= 0.35

Dependências

Código-fonte

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

Platform.health_forecast.GetHealthForecastValueObservation(self, unit, kind)
    local policy=self:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    if not self:CanReadValue(unit) or not self:CanReadValue(kind) then return nil,'restricted-value' end
    if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
    local api
    if kind=='current' then api=UnitHealth
    elseif kind=='maximum' then api=UnitHealthMax
    else return nil,'invalid-health-forecast-query' end
    if type(api)~='function' then return nil,'missing-api' end
    local ok,value=pcall(api,unit)
    if not ok then return nil,'api-error' end
    if not self:CanReadValue(value) then return nil,'restricted-value' end
    if canaccessvalue and not canaccessvalue(value) then return nil,'restricted-value' end
    if value==nil then return nil,'health-data-unavailable' end
    if not finite(value) or value<0 then return nil,'invalid-api-result' end
    return value

Voltar para Referência de funções