Referencia › Referencia de funciones › Platform

Platform.health_forecast.GetHealthForecastProviderObservation

pública

Llamar como

addon.Platform:GetHealthForecastProviderObservation(unit)

Disponible directamente a través de addon; no hace falta ninguna dependencia.

Qué hace

Lee el addon opcional RealMobHealth con su llamada con punto exacta de un argumento. Un espacio de nombres ausente, nil o false devuelve un registro vacío. Normaliza current y maximum de forma independiente: los campos nil/false permiten la alternativa nativa y el cero numérico sigue presente. Los datos del proveedor consumidos que están mal formados, fallan, están restringidos, son negativos o no finitos no están disponibles. No se usa ninguna caché del proveedor ni alternativa obsoleta.

Argumentos

NombreTipoQué hace
selfRMPlatformAdaptador de plataforma de Rotation Master (implícito en las llamadas con dos puntos).
unitstringToken de unidad seleccionado que se pasa como único argumento del proveedor.

Retornos

1table | nilRegistro parcial de current/maximum, vacío si el proveedor está ausente, o nil si no está disponible.
2string | nilMotivo de disponibilidad del proveedor, la validación o la observación.

Ediciones

Las funciones auxiliares integradas se registran en todas las ediciones. Lo que cambia es la API del juego que leen; donde falta alguna, la función auxiliar recurre a una alternativa o devuelve nil con un motivo.

No lee directamente ninguna API del juego.

Valores secretos (Retail y Forever)

En Retail y Forever, el juego entrega a los addons valores secretos. Esta función auxiliar comprueba lo que lee (addon.Platform:CanReadValue) y, en lugar de un secreto que no puede comparar, devuelve nil con un motivo como restricted-value. Trata nil como no disponible, no como falso.

Ejemplo

local record = addon.Platform:GetHealthForecastProviderObservation("target")
if not record or not record.current or not record.maximum then return nil end
if record.maximum == 0 then return nil end
return record.current / record.maximum < 0.2

Dependencias

Código fuente

Platform/health_forecast.lua, línea 107. Solo lectura en el juego; Duplicar crea una copia editable.

Platform.health_forecast.GetHealthForecastProviderObservation(self, unit)
    local policy=self:GetCombatDataPolicy()
    if policy~='probe' and policy~='restricted' then return nil,'unsupported-policy' end
    if not self:CanReadValue(unit) then return nil,'restricted-value' end
    if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
    local provider=_G.RealMobHealth
    if not self:CanReadValue(provider) then return nil,'restricted-value' end
    if provider==nil or provider==false then return {} end
    local api,why=readField(self,provider,'GetUnitHealth')
    if why then return nil,why end
    if type(api)~='function' then return nil,'missing-api' end
    local ok,current,maximum=pcall(api,unit)
    if not ok then return nil,'api-error' end
    local value,reason=providerValue(self,current)
    if reason then return nil,reason end
    local max,maxReason=providerValue(self,maximum)
    if maxReason then return nil,maxReason end
    return {current=value,maximum=max}

Volver a Referencia de funciones