Riferimento › Riferimento delle funzioni › Core

Core.point_conditions.GetConditionPointResourceV2

pubblica

Chiamala come

addon:GetConditionPointResourceV2(unit, cache)

Disponibile direttamente tramite addon; non serve alcuna dipendenza.

Cosa fa

Risolve le risorse a punti usando la corrispondenza originale attuale delle classi e la cache dell'identità, con una policy di trasporto esplicita di ripiego su ComboPoints per il giocatore di TBC. Un ripiego del giocatore che corrisponde alla tabella grezza leggibile Enum.PowerType e al valore ComboPoints acquisiti al caricamento del modulo seleziona target-combo; le voci esplicite della mappa delle classi, gli altri attori e le altre famiglie mantengono power. Un ripiego sostituito, ereditato o di provenienza non dimostrabile mantiene power. Questa policy versionata non afferma che UnitPower nativo sia difettoso o equivalente. Un'unità accertata come assente restituisce false; osservazioni richieste non disponibili restituiscono nil con un motivo. Qui non viene interrogata alcuna quantità attuale o massima.

Argomenti

NomeTipoCosa fa
selfRMAddonIstanza dell'addon Rotation Master (implicita nelle chiamate con due punti).
unitstringIdentificativo esatto dell'unità selezionata; solo l'identificativo letterale player può selezionare il trasporto dei punti combo di TBC.
cachetable | nilCache del passaggio di valutazione, oppure nil per osservare direttamente l'identità. Le osservazioni riuscite della classe del giocatore possono usare la cache esistente dell'identità a lungo termine; la corrispondenza delle risorse resta in tempo reale.

Valori restituiti

1number | boolean | nilSelettore 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.
3string | nilSolo su una risorsa selezionata: target-combo per il ripiego esplicito del giocatore di TBC oppure power per il trasporto esistente dell'unità selezionata.

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
canaccessvalueClassic 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.

Come la chiama l'addon

  • Punti (evaluate)
    local point,reason,transport=addon:GetConditionPointResourceV2(value.unit,cache)

Dipendenze

Sorgente

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

Core.point_conditions.GetConditionPointResourceV2(self, unit, cache)
    local platform=self.Platform
    local info=platform:GetClientInfo()
    local policy=info.combatDataPolicy
    if policy~='probe' and policy~='restricted' 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 family=info.family
    if policy=='probe' and (family=='era' or family=='progression') then return editionPointResource(platform,info,unit,record.class,cache) 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 fallbackEnum,fallbackTypes
    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
        fallbackEnum,fallbackTypes=enum,types
    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
    if policy=='restricted' and not platform:IsNeverSecretPointPower(selected) then return nil,'unsupported-policy' end
    local transport='power'
    if unit=='player' and fallbackTypes then
        local rawTypes,rawCombo=rawget(fallbackEnum,'PowerType'),rawget(fallbackTypes,'ComboPoints')
        if platform:CanReadValue(pointComboTypes) and (not canaccessvalue or canaccessvalue(pointComboTypes))
            and platform:CanReadValue(rawTypes) and (not canaccessvalue or canaccessvalue(rawTypes))
            and rawequal(fallbackTypes,pointComboTypes) and rawequal(rawTypes,fallbackTypes)
            and platform:CanReadValue(rawCombo) and (not canaccessvalue or canaccessvalue(rawCombo)) and rawCombo==selected
            and platform:CanReadValue(pointComboValue) and (not canaccessvalue or canaccessvalue(pointComboValue))
            and pointComboValue==selected then
            local family
            if platform:CanReadValue(info) and type(info)=='table' then family=rawget(info,'family') end
            if platform:CanReadValue(family) and (not canaccessvalue or canaccessvalue(family)) and family=='tbc' then transport='target-combo' end
        end
    end
    return selected,nil,transport

Torna a Riferimento delle funzioni