GroupService
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
GroupService ist ein Service, der es Entwicklern ermöglicht, Informationen über eine Roblox-Gruppe aus einem Spiel heraus abzurufen.
Grundlegende Informationen über die Gruppe, einschließlich Name, Beschreibung, Eigentümer, Rollen und Emblem können mit GroupService:GetGroupInfoAsync() abgerufen werden.Listen von Verbündeten und Feinden einer Gruppe können mit GroupService:GetAlliesAsync() und GroupService:GetEnemiesAsync() abgerufen werden.
GroupService kann auch verwendet werden, um eine Liste der Gruppe zu beschaffen, der ein Spieler Mitglied ist, indem GroupService:GetGroupsAsync() verwendet wird.Beachten Sie, dass Entwickler, die überprüfen möchten, ob ein Spieler in einer Gruppe ist, die Player:IsInGroup() -Funktion verwenden sollten, anstatt GroupService:GetGroupsAsync().
Der Service hat eine Reihe nützlicher Anwendungen, wie das Erkennen, ob ein Spieler ein Verbündeter oder Feind ist, wenn er dem Spiel beitritt.
Code-Beispiele
This code sample demonstrates how GroupService and Player:IsInGroup() can be used to determine whether a player is a member of a group, or any of its allies or enemies.
Note as GroupService:GetAlliesAsync() and GroupService:GetEnemiesAsync() use StandardPages objects a utility function is used to convert them to allies.
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- Define group ID here
local GROUP_ID = 271454
-- Utility function for dealing with pages
local function pagesToArray(pages)
local array = {}
while true do
for _, v in ipairs(pages:GetCurrentPage()) do
table.insert(array, v)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
return array
end
-- Get lists of allies and enemies
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- Convert to array
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- Check to see if the player is in the group
if player:IsInGroup(GROUP_ID) then
print(player.Name .. " is a member!")
else
local isAlly, isEnemy = false, false
-- Check to see if the player is in any ally groups
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isAlly = true
break
end
end
-- Check to see if the player is in any enemy groups
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " is an ally!")
elseif isEnemy and not isAlly then
print(player.Name .. " is an enemy!")
elseif isEnemy and isAlly then
print(player.Name .. " is both an ally and an enemy!")
else
print(player.Name .. " is neither an ally or an enemy!")
end
end
end
-- Listen for new players being added
Players.PlayerAdded:Connect(playerAdded)
-- Handle players already in game
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end
Zusammenfassung
Methoden
Gibt ein StandardPages Objekt zurück, das Informationen über alle Verbündeten der angegebenen Gruppe enthält.
Gibt ein StandardPages Objekt zurück, das Informationen über alle Feinde der angegebenen Gruppe enthält.
Gibt eine Tabelle mit Informationen über die angegebene Gruppe zurück.
Gibt eine Liste von Tabellen zurück, die Informationen über alle Gruppen enthalten, von denen ein bestimmter Spieler Mitglied ist.
Eigenschaften
Methoden
GetAlliesAsync
Gibt ein StandardPages Objekt zurück, das Informationen über alle Verbündeten der angegebenen Gruppe enthält.
Diese Seite enthält keine Liste von Gruppen-IDs, sondern stattdessen eine Liste von Gruppeninformationstabellen, die das Format jener wiedergeben, die von GroupService:GetGroupInfoAsync() zurückgegeben wurden.Siehe unten für die Struktur dieser Tabellen.
group = {Name = "Knights of the Seventh Sanctum",Id = 377251,Owner = {Name = "Vilicus",Id = 23415609},EmblemUrl = "http://www.roblox.com/asset/?id=60428602",Description = "We fight alongside the balance to make sure no one becomes to powerful",Roles = {[1] = {Name = "Apprentice",Rank = 1},[2] = {Name = "Warrior",Rank = 2},[3] = {Name = "Earth Walker",Rank = 255}}}
Beachten Sie, da diese Funktion ein StandardPages zurückgibt, anstatt ein Array, möchten Entwickler es möglicherweise in ein Array umwandeln, um die Benutzung zu erleichtern (siehe Beispiele).
Diese Funktion hat eine Reihe nützlicher Anwendungen, darunter die Erkennung, ob ein Spieler Mitglied einer verbündeten Gruppe ist.
Für Feinde verwende GroupService:GetEnemiesAsync().
Parameter
Die ID der Gruppe.
Rückgaben
Code-Beispiele
local Players = game:GetService("Players")
local GroupService = game:GetService("GroupService")
local GROUP_ID = 57
-- creates a table of all of the allies of a given group
local allies = {}
local pages = GroupService:GetAlliesAsync(GROUP_ID)
while true do
for _, group in pairs(pages:GetCurrentPage()) do
table.insert(allies, group)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
function onPlayerAdded(player)
for _, group in pairs(allies) do
if player:IsInGroup(group.Id) then
print("Player is an ally!")
break
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
-- handle players who joined while the allies list was still loading
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
This code sample demonstrates how GroupService and Player:IsInGroup() can be used to determine whether a player is a member of a group, or any of its allies or enemies.
Note as GroupService:GetAlliesAsync() and GroupService:GetEnemiesAsync() use StandardPages objects a utility function is used to convert them to allies.
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- Define group ID here
local GROUP_ID = 271454
-- Utility function for dealing with pages
local function pagesToArray(pages)
local array = {}
while true do
for _, v in ipairs(pages:GetCurrentPage()) do
table.insert(array, v)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
return array
end
-- Get lists of allies and enemies
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- Convert to array
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- Check to see if the player is in the group
if player:IsInGroup(GROUP_ID) then
print(player.Name .. " is a member!")
else
local isAlly, isEnemy = false, false
-- Check to see if the player is in any ally groups
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isAlly = true
break
end
end
-- Check to see if the player is in any enemy groups
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " is an ally!")
elseif isEnemy and not isAlly then
print(player.Name .. " is an enemy!")
elseif isEnemy and isAlly then
print(player.Name .. " is both an ally and an enemy!")
else
print(player.Name .. " is neither an ally or an enemy!")
end
end
end
-- Listen for new players being added
Players.PlayerAdded:Connect(playerAdded)
-- Handle players already in game
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end
GetEnemiesAsync
Gibt ein StandardPages Objekt zurück, das Informationen über alle Feinde der angegebenen Gruppe enthält.
Diese Seite enthält keine Liste von Gruppen-IDs, sondern stattdessen eine Liste von Gruppeninformationstabellen, die das Format jener wiedergeben, die von GroupService:GetGroupInfoAsync() zurückgegeben wurden.Siehe unten für die Struktur dieser Tabellen.
group = {Name = "Knights of the Seventh Sanctum",Id = 377251,Owner = {Name = "Vilicus",Id = 23415609},EmblemUrl = "http://www.roblox.com/asset/?id=60428602",Description = "We fight alongside the balance to make sure no one becomes to powerful",Roles = {[1] = {Name = "Apprentice",Rank = 1},[2] = {Name = "Warrior",Rank = 2},[3] = {Name = "Earth Walker",Rank = 255}}}
Beachten Sie, da diese Funktion ein StandardPages zurückgibt, anstatt ein Array, möchten Entwickler es möglicherweise in ein Array umwandeln, um die Benutzung zu erleichtern (siehe Beispiele).
Diese Funktion hat eine Reihe nützlicher Anwendungen, darunter die Erkennung, ob ein Spieler Mitglied einer feindlichen Gruppe ist.
Für Verbündete verwende GroupService:GetAlliesAsync().
Parameter
Die ID der Gruppe.
Rückgaben
Code-Beispiele
local Players = game:GetService("Players")
local GroupService = game:GetService("GroupService")
local GROUP_ID = 57
-- creates a list of all of the enemies of a given group
local enemies = {}
local pages = GroupService:GetEnemiesAsync(GROUP_ID)
while true do
for _, group in pairs(pages:GetCurrentPage()) do
table.insert(enemies, group)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
function onPlayerAdded(player)
for _, enemyGroup in pairs(enemies) do
if player:IsInGroup(enemyGroup.Id) then
print("Player is an enemy!")
break
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
-- handle players who joined while the enemies list was still loading
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
This code sample demonstrates how GroupService and Player:IsInGroup() can be used to determine whether a player is a member of a group, or any of its allies or enemies.
Note as GroupService:GetAlliesAsync() and GroupService:GetEnemiesAsync() use StandardPages objects a utility function is used to convert them to allies.
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- Define group ID here
local GROUP_ID = 271454
-- Utility function for dealing with pages
local function pagesToArray(pages)
local array = {}
while true do
for _, v in ipairs(pages:GetCurrentPage()) do
table.insert(array, v)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
end
return array
end
-- Get lists of allies and enemies
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- Convert to array
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- Check to see if the player is in the group
if player:IsInGroup(GROUP_ID) then
print(player.Name .. " is a member!")
else
local isAlly, isEnemy = false, false
-- Check to see if the player is in any ally groups
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isAlly = true
break
end
end
-- Check to see if the player is in any enemy groups
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroup(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " is an ally!")
elseif isEnemy and not isAlly then
print(player.Name .. " is an enemy!")
elseif isEnemy and isAlly then
print(player.Name .. " is both an ally and an enemy!")
else
print(player.Name .. " is neither an ally or an enemy!")
end
end
end
-- Listen for new players being added
Players.PlayerAdded:Connect(playerAdded)
-- Handle players already in game
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end
GetGroupInfoAsync
Gibt eine Tabelle mit Informationen über die angegebene Gruppe zurück.
Die zurückgegebene Tabelle hat das gleiche Format wie die in GroupService:GetAlliesAsync() und GroupService:GetEnemiesAsync() zurückgegebene. Dieses Format kann unten gesehen werden.
group = {Name = "Knights of the Seventh Sanctum",Id = 377251,Owner = {Name = "Vilicus",Id = 23415609},EmblemUrl = "http://www.roblox.com/asset/?id=60428602",Description = "We fight alongside the balance to make sure no one becomes to powerful",Roles = {[1] = {Name = "Apprentice",Rank = 1},[2] = {Name = "Warrior",Rank = 2},[3] = {Name = "Earth Walker",Rank = 255}}}
Beachten Sie, wenn eine Gruppe keinen Eigentümer hat, wird das Eigentümerfeld auf nil festgelegt.
Diese Funktion hat eine Reihe nützlicher Anwendungen, darunter das Laden der neuesten Beschreibung und des Logos einer Gruppe für die Anzeige in einer Gruppenbasis.
Parameter
Die Gruppen-ID der Gruppe.
Rückgaben
Ein Wörterbuch mit Informationen über die Gruppe.
Code-Beispiele
local GroupService = game:GetService("GroupService")
local GROUP_ID = 377251
local group = GroupService:GetGroupInfoAsync(GROUP_ID)
print(group.Name .. " has the following roles:")
for _, role in ipairs(group.Roles) do
print("Rank " .. role.Rank .. ": " .. role.Name)
end
The code in this sample spawns a Part in the Workspace that includes a texture of the given group's emblem.
local GroupService = game:GetService("GroupService")
local function getEmblemAsync(groupId)
local groupInfo = GroupService:GetGroupInfoAsync(groupId)
return groupInfo.EmblemUrl
end
local part = Instance.new("Part")
part.Anchored = true
part.CanCollide = false
part.Size = Vector3.new(5, 5, 1)
part.Position = Vector3.new(0, 5, 0)
local decal = Instance.new("Decal")
decal.Parent = part
part.Parent = workspace
decal.Texture = getEmblemAsync(377251)
GetGroupsAsync
Warnung: Die IstInClan Eigenschaft in der zurückgegebenen Tabelle wird immer falsch zurückkehren und existiert für die Rückwärtskompatibilität.Die Clans-Funktion war 2016 Sonnenuntergang von der Roblox-Plattform.
Diese Funktion gibt eine Liste von Tabellen zurück, die Informationen über alle Gruppen enthalten, von denen ein bestimmtes Player ist.
Die zurückgegebene Liste wird einen Eintrag für jede Gruppe enthalten, der Mitglied des Spielers ist. Diese Einträge sind Tabellen mit den folgenden Feldern.
<th>Beschreibung</th></tr></thead><tbody><tr><td><b>Namen</b></td><td>Der Name der Gruppe</td></tr><tr><td><b>Id</b></td><td>Die Gruppen-ID</td></tr><tr><td><b>EmblemUrl</b></td><td>Ein Asset-URL-Link, der auf das Miniaturbild der Gruppe verweist (z. B.: http://www.roblox.com/asset/?id=276165514)</td></tr><tr><td><b>EmblemId</b></td><td>Die assetId des Emblems, das gleiche, das in der EmblemUrl verwendet wird</td></tr><tr><td><b>Rang</b></td><td>Die Rang-ID, die der Spieler hat (zum Beispiel: 255 für den Eigentümer)</td></tr><tr><td><b>Rolle</b></td><td>Der Name des Gruppenrangs des Spieler:in(z. B. Gruppenbesitzer)</td></tr><tr><td><b>Ist primär</b></td><td>Ein boolescher, der anzeigt, ob dies die primäre Gruppe des Spieler:inist</td></tr><tr><td><b>Ist im Clan</b></td><td>Ein boolescher Indikator, der anzeigt, ob der Spieler im Clan der Gruppe ist</td></tr></tbody>
Namen |
---|
Im Gegensatz zu GroupService:GetAlliesAsync() und GroupService:GetEnemiesAsync() gibt GetGroupsAsync eine Tabelle zurück, anstatt ein StandardPages Objekt.
Parameter
Das Player.UserId des Benutzers.
Rückgaben
Code-Beispiele
This code sample will print information on all of the groups a player is a member of when they join the game, using GroupService:GetGroupsAsync().
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
local function playerAdded(player)
-- load a list of info on all groups the player is a member of
local groups = GroupService:GetGroupsAsync(player.UserId)
for _, groupInfo in pairs(groups) do
for key, value in pairs(groupInfo) do
print(key .. ": " .. tostring(value))
end
print("--")
end
end
Players.PlayerAdded:Connect(playerAdded)
-- go through existing players
for _, player in pairs(Players:GetPlayers()) do
playerAdded(player)
end