Aufruf als
addon:GetClassGroupCount(cache, class, raid)
Direkt über addon verfügbar; keine Abhängigkeit nötig.
Was sie bewirkt
Passende Klassenkennungen in der aktuellen festen Mitgliederliste zählen. Zuerst die Gruppenzugehörigkeit lesen; auf Anforderung wählt die Schlachtzugszugehörigkeit raid1 bis raid40 ohne separaten Spielerfakt. Solo- und Gruppenpfade lesen zuerst player, dann bei Gruppenzugehörigkeit party1 bis party4. Eine vollständig bekannte Mitgliederliste ergibt eine Anzahl, auch null; jeder erforderliche nicht verfügbare Fakt ergibt nil mit einem Grund. Vollständige Beobachtungen teilen sich den Cache des Auswertungsdurchlaufs; keine Spielerklasse bleibt über Durchläufe hinweg erhalten. Archivierte rohe Callbacks behalten ihre ursprüngliche Klasse zur Ladezeit separat.
Argumente
| Name | Typ | Was sie bewirkt |
|---|---|---|
self | RMAddon | Addon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit). |
cache | table | nil | Cache des Auswertungsdurchlaufs oder nil für frische Beobachtungen. |
class | string | Zu zählende nichtleere Klassen-Dateinamen-Kennung; es gilt keine Positivliste für Klassenkennungen. |
raid | boolean | nil | True erlaubt die Schlachtzugsliste, wenn die Schlachtzugszugehörigkeit bekanntermaßen true ist; false oder nil verwendet die Solo- oder Gruppenliste. |
Rückgabewerte
| 1 | number | nil | Vollständige Anzahl passender Klassen, einschließlich null, oder nil, wenn nicht verfügbar. |
|---|---|---|
| 2 | string | nil | Grund aus Validierung, Richtlinie oder Verfügbarkeit erforderlicher Fakten für eine nil-Anzahl. |
Editionen
Integrierte Hilfsfunktionen werden auf jeder Edition registriert. Unterschiedlich ist die Spiel-API, die sie lesen; fehlt eine, weicht die Hilfsfunktion aus oder gibt nil mit einem Grund zurück.
Sie liest keine Spiel-API direkt.
Geheime Werte (Retail und Forever)
Auf Retail und Forever übergibt das Spiel Addons geheime Werte. Diese Hilfsfunktion prüft, was sie liest (addon.Platform:CanReadValue), und gibt statt eines geheimen Werts, den sie nicht vergleichen kann, nil mit einem Grund wie restricted-value zurück. Behandeln Sie nil als nicht verfügbar, nicht als false.
Wie das Addon sie aufruft
- Klasse in der Gruppe (evaluate)
local count,reason=addon:GetClassGroupCount(cache,value.class,value.raid)
Quelle
Core/class_group_conditions.lua, Zeile 23. Im Spiel schreibgeschützt; Duplizieren erstellt eine bearbeitbare Kopie.
Core.class_group_conditions.GetClassGroupCount(self, cache, class, raid)
local platform=self.Platform
if not platform:CanReadValue(class) or not platform:CanReadValue(raid) then return nil,'restricted-value' end
if type(class)~='string' or class=='' then return nil,'invalid-class-group-query' end
if raid~=nil and type(raid)~='boolean' then return nil,'invalid-class-group-query' end
local grouped,reason=self.Functions.cache.getCached(cache,platform.GetGroupMembership,platform,false)
if grouped==nil then return nil,reason end
local prefix,size='party',4
if grouped and raid then
local inRaid,why=self.Functions.cache.getCached(cache,platform.GetGroupMembership,platform,true)
if inRaid==nil then return nil,why end
if inRaid then prefix,size='raid',40 end
end
local count=0
if not grouped or prefix=='party' then
local player,why=self.Functions.cache.getCached(cache,platform.GetRosterClassObservation,platform,'player')
if player==nil then return nil,why end
if player==class then count=1 end
if not grouped then return count end
end
for index=1,size do
local observed,why=self.Functions.cache.getCached(cache,platform.GetRosterClassObservation,platform,prefix..tostring(index))
if observed==nil then return nil,why end
if observed==class then count=count+1 end
end
return count