Riferimento › Riferimento delle funzioni › Core

Core.point_conditions.GetConditionPointResource

pubblica

Chiamala come

addon:GetConditionPointResource(unit, cache)

Disponibile direttamente tramite addon; non serve alcuna dipendenza.

Cosa fa

Risolve il selettore delle risorse a punti dell'unità selezionata usando la mappa attuale classe-risorsa e il ripiego su ComboPoints. Un'assenza accertata restituisce false; dati di identità o del selettore richiesti non disponibili restituiscono nil con un motivo. Condivide le osservazioni complete dell'identità all'interno del passaggio di valutazione. Solo le osservazioni riuscite della classe del giocatore persistono nella cache a lungo termine attuale, legate all'identità nativa di UnitClass; l'esistenza viene aggiornata a ogni passaggio. Seleziona una risorsa senza leggerne la quantità attuale o massima.

Argomenti

NomeTipoCosa fa
selfRMAddonIstanza dell'addon Rotation Master (implicita nelle chiamate con due punti).
unitstringIdentificativo esatto dell'unità selezionata; solo la classe del giocatore può usare la cache a lungo termine dei risultati riusciti.
cachetable | nilCache del passaggio di valutazione, oppure nil per osservare direttamente l'identità. La corrispondenza delle risorse viene risolta in tempo reale a ogni chiamata.

Valori restituiti

1number | boolean | nilSelettore di risorsa esplicito intero non negativo, false per un'unità accertata come assente, oppure nil quando i dati richiesti non sono disponibili.
2string | nilMotivo di policy, di convalida della query o di indisponibilità dell'identità/del selettore quando il selettore è nil.

Edizioni

Le funzioni di supporto integrate sono registrate su ogni edizione. Ciò che cambia è l'API di gioco che leggono; dove ne manca una, la funzione di supporto ripiega su un'alternativa o restituisce nil con un motivo.

  • Non disponibile su quell'edizione (il motivo è nel suggerimento)
  • Solo mentre sono attivi i ripieghi di Blizzard per le API deprecate
API di giocoClassic EraTBC AnniversaryClassic progressionForeverRetail
EnumClassic EraTBC AnniversaryClassic progressionForeverRetail

Valori segreti (Retail e Forever)

Su Retail e Forever il gioco fornisce agli addon valori segreti. Questa funzione di supporto controlla ciò che legge (addon.Platform:CanReadValue) e restituisce nil con un motivo come restricted-value invece di un valore segreto che non può confrontare. Considera nil come non disponibile, non come false.

Esempio

local power, reason = addon:GetConditionPointResource("player", cache)
if power == nil then return nil, reason end
if power == false then return false end
return UnitPower("player", power) >= 4

Dipendenze

Sorgente

Core/point_conditions.lua, riga 58. Nel gioco è in sola lettura; Duplica crea una copia modificabile.

Core.point_conditions.GetConditionPointResource(self, unit, cache)
    local platform=self.Platform
    if platform:GetCombatDataPolicy()~='probe' then return nil,'unsupported-policy' end
    if not platform:CanReadValue(unit) then return nil,'restricted-value' end
    if type(unit)~='string' or unit=='' then return nil,'invalid-unit' end
    local record,reason=addon.Functions.cache.getCached(cache,pointIdentity,self,unit,playerClassCacheKey)
    if not record then return nil,reason end
    if not record.exists then return false end
    local points=self.points
    if not platform:CanReadValue(points) then return nil,'restricted-value' end
    if type(points)~='table' then return nil,'invalid-point-resource-map' end
    local ok,selected=pcall(function() return points[record.class] end)
    if not ok then return nil,'api-error' end
    if not platform:CanReadValue(selected) then return nil,'restricted-value' end
    if selected==nil or selected==false then
        local enum=Enum
        if not platform:CanReadValue(enum) then return nil,'restricted-value' end
        if type(enum)~='table' then return nil,'point-resource-unavailable' end
        local typesOK,types=pcall(function() return enum.PowerType end)
        if not typesOK then return nil,'api-error' end
        if not platform:CanReadValue(types) then return nil,'restricted-value' end
        if type(types)~='table' then return nil,'point-resource-unavailable' end
        local fallbackOK,fallback=pcall(function() return types.ComboPoints end)
        if not fallbackOK then return nil,'api-error' end
        selected=fallback
        if not platform:CanReadValue(selected) then return nil,'restricted-value' end
    end
    if selected==nil then return nil,'point-resource-unavailable' end
    if type(selected)~='number' or selected~=selected or selected<0 or selected==math.huge or selected%1~=0 then return nil,'invalid-point-resource' end
    return selected

Torna a Riferimento delle funzioni