Appel
addon:GetConditionPointResource(unit, cache)
Disponible directement via addon ; aucune dépendance n'est nécessaire.
Ce qu'elle fait
Résout le sélecteur de ressource à points de l'unité sélectionnée à l'aide de la table classe-ressource en direct et du repli ComboPoints. Une absence connue renvoie false ; des données d'identité ou de sélecteur requises indisponibles renvoient nil avec un motif. Les observations d'identité complètes sont partagées au sein de la passe d'évaluation. Seules les observations réussies de la classe du joueur persistent dans le cache à long terme actuel, liées à l'identité native UnitClass ; l'existence est actualisée à chaque passe. Cela sélectionne une ressource sans lire sa quantité actuelle ou maximale.
Arguments
| Nom | Type | Ce qu'elle fait |
|---|---|---|
self | RMAddon | Instance de l'addon Rotation Master (implicite avec un appel par deux-points). |
unit | string | Identifiant d'unité sélectionné exact ; seule la classe du joueur peut utiliser le cache à long terme des réussites. |
cache | table | nil | Cache de passe d'évaluation, ou nil pour observer l'identité directement. La correspondance des ressources est résolue en direct à chaque appel. |
Retours
| 1 | number | boolean | nil | Sélecteur de ressource explicite (entier non négatif), false pour une unité connue comme absente, ou nil si des données requises sont indisponibles. |
|---|---|---|
| 2 | string | nil | Motif de politique, de validation de la requête ou de disponibilité de l'identité ou du sélecteur pour un sélecteur nil. |
Éditions
Les fonctions utilitaires intégrées sont enregistrées sur toutes les éditions. Ce qui diffère, c'est l'API du jeu qu'elles lisent ; quand l'une manque, la fonction utilitaire se rabat sur une alternative ou renvoie nil avec une raison.
- Indisponible sur cette édition (la raison figure dans l'infobulle)
- Uniquement tant que les solutions de repli de Blizzard pour les fonctions obsolètes sont actives
| API du jeu | |||||
|---|---|---|---|---|---|
Enum |
Valeurs secrètes (Retail et Forever)
Sur Retail et Forever, le jeu transmet aux addons des valeurs secrètes. Cette fonction utilitaire vérifie ce qu'elle lit (addon.Platform:CanReadValue) et renvoie nil avec une raison telle que restricted-value au lieu d'une valeur secrète qu'elle ne peut pas comparer. Traitez nil comme indisponible, pas comme false.
Exemple
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) >= 4Dépendances
playerClassCacheKey(builtin:Core/point_conditions.lua:playerClassCacheKey)pointIdentity→Core.point_conditions.pointIdentity
Source
Core/point_conditions.lua, ligne 58. En lecture seule dans le jeu ; Dupliquer crée une copie modifiable.
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




