Referenz › Funktionsreferenz › Core

Core.class_group_conditions.GetClassGroupCount

öffentlich

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

NameTypWas sie bewirkt
selfRMAddonAddon-Instanz von Rotation Master (bei Doppelpunktaufrufen implizit).
cachetable | nilCache des Auswertungsdurchlaufs oder nil für frische Beobachtungen.
classstringZu zählende nichtleere Klassen-Dateinamen-Kennung; es gilt keine Positivliste für Klassenkennungen.
raidboolean | nilTrue erlaubt die Schlachtzugsliste, wenn die Schlachtzugszugehörigkeit bekanntermaßen true ist; false oder nil verwendet die Solo- oder Gruppenliste.

Rückgabewerte

1number | nilVollständige Anzahl passender Klassen, einschließlich null, oder nil, wenn nicht verfügbar.
2string | nilGrund 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

Zurück zu Funktionsreferenz