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
| Nome | Tipo | Cosa fa |
|---|---|---|
self | RMAddon | Istanza dell'addon Rotation Master (implicita nelle chiamate con due punti). |
unit | string | Identificativo esatto dell'unità selezionata; solo la classe del giocatore può usare la cache a lungo termine dei risultati riusciti. |
cache | table | nil | Cache 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
| 1 | number | boolean | nil | Selettore di risorsa esplicito intero non negativo, false per un'unità accertata come assente, oppure nil quando i dati richiesti non sono disponibili. |
|---|---|---|
| 2 | string | nil | Motivo 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 gioco | |||||
|---|---|---|---|---|---|
Enum |
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) >= 4Dipendenze
playerClassCacheKey(builtin:Core/point_conditions.lua:playerClassCacheKey)pointIdentity→Core.point_conditions.pointIdentity
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




