學習
引擎類別
GroupService
無法建立
服務
未複製

*此內容是使用 AI(Beta 測試版)翻譯,可能含有錯誤。若要以英文檢視此頁面,請按一下這裡


概要
繼承成員
範例程式碼
群組盟友/敵人檢查器
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- 在此定義組織 ID
local GROUP_ID = 271454
-- 處理頁面的實用函數
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
-- 獲取盟友和敵人的列表
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- 轉換為數組
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- 檢查玩家是否在組織中
if player:IsInGroupAsync(GROUP_ID) then
print(player.Name .. " 是一名成員!")
else
local isAlly, isEnemy = false, false
-- 檢查玩家是否在任何盟友組織中
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isAlly = true
break
end
end
-- 檢查玩家是否在任何敵人組織中
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " 是盟友!")
elseif isEnemy and not isAlly then
print(player.Name .. " 是敵人!")
elseif isEnemy and isAlly then
print(player.Name .. " 是盟友和敵人!")
else
print(player.Name .. " 既不是盟友也不是敵人!")
end
end
end
-- 監聽新玩家加入
Players.PlayerAdded:Connect(playerAdded)
-- 處理已在遊戲中的玩家
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end

API 參考
方法
GetAlliesAsync
暫停
功能: Groups
GroupService:GetAlliesAsync(groupId:number):StandardPages
參數
groupId:number
範例程式碼
群組服務:GetAlliesAsync
local Players = game:GetService("Players")
local GroupService = game:GetService("GroupService")
local GROUP_ID = 57
-- 創建給定群組的所有盟友的表
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:IsInGroupAsync(group.Id) then
print("玩家是盟友!")
break
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
-- 處理在盟友列表仍在加載時加入的玩家
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
群組盟友/敵人檢查器
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- 在此定義組織 ID
local GROUP_ID = 271454
-- 處理頁面的實用函數
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
-- 獲取盟友和敵人的列表
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- 轉換為數組
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- 檢查玩家是否在組織中
if player:IsInGroupAsync(GROUP_ID) then
print(player.Name .. " 是一名成員!")
else
local isAlly, isEnemy = false, false
-- 檢查玩家是否在任何盟友組織中
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isAlly = true
break
end
end
-- 檢查玩家是否在任何敵人組織中
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " 是盟友!")
elseif isEnemy and not isAlly then
print(player.Name .. " 是敵人!")
elseif isEnemy and isAlly then
print(player.Name .. " 是盟友和敵人!")
else
print(player.Name .. " 既不是盟友也不是敵人!")
end
end
end
-- 監聽新玩家加入
Players.PlayerAdded:Connect(playerAdded)
-- 處理已在遊戲中的玩家
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end

GetEnemiesAsync
暫停
功能: Groups
GroupService:GetEnemiesAsync(groupId:number):StandardPages
參數
groupId:number
範例程式碼
GroupService:獲取敵人Async
local Players = game:GetService("Players")
local GroupService = game:GetService("GroupService")
local GROUP_ID = 57
-- 創建給定群組的所有敵人的列表
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:IsInGroupAsync(enemyGroup.Id) then
print("玩家是敵人!")
break
end
end
end
Players.PlayerAdded:Connect(onPlayerAdded)
-- 處理在敵人列表仍在加載時加入的玩家
for _, player in pairs(Players:GetPlayers()) do
onPlayerAdded(player)
end
群組盟友/敵人檢查器
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
-- 在此定義組織 ID
local GROUP_ID = 271454
-- 處理頁面的實用函數
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
-- 獲取盟友和敵人的列表
local alliesPages = GroupService:GetAlliesAsync(GROUP_ID)
local enemiesPages = GroupService:GetEnemiesAsync(GROUP_ID)
-- 轉換為數組
local allies = pagesToArray(alliesPages)
local enemies = pagesToArray(enemiesPages)
local function playerAdded(player)
-- 檢查玩家是否在組織中
if player:IsInGroupAsync(GROUP_ID) then
print(player.Name .. " 是一名成員!")
else
local isAlly, isEnemy = false, false
-- 檢查玩家是否在任何盟友組織中
for _, groupInfo in ipairs(allies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isAlly = true
break
end
end
-- 檢查玩家是否在任何敵人組織中
for _, groupInfo in ipairs(enemies) do
local groupId = groupInfo.Id
if player:IsInGroupAsync(groupId) then
isEnemy = true
break
end
end
if isAlly and not isEnemy then
print(player.Name .. " 是盟友!")
elseif isEnemy and not isAlly then
print(player.Name .. " 是敵人!")
elseif isEnemy and isAlly then
print(player.Name .. " 是盟友和敵人!")
else
print(player.Name .. " 既不是盟友也不是敵人!")
end
end
end
-- 監聽新玩家加入
Players.PlayerAdded:Connect(playerAdded)
-- 處理已在遊戲中的玩家
for _, player in ipairs(Players:GetPlayers()) do
playerAdded(player)
end

GetGroupInfoAsync
暫停
功能: Groups
GroupService:GetGroupInfoAsync(groupId:number):Variant
參數
groupId:number
返回
Variant
範例程式碼
群組服務:取得群組資訊異步
-- 取得群組資訊
local GroupService = game:GetService("GroupService")
local GROUP_ID = 377251
local group = GroupService:GetGroupInfoAsync(GROUP_ID)
print(group.Name .. " 擁有以下角色:")
for _, role in ipairs(group.Roles) do
print("等級 " .. role.Rank .. ": " .. role.Name)
end
載入群組徽章
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.ColorMapContent = Content.fromUri(getEmblemAsync(377251))

GetGroupsAsync
暫停
功能: Groups
GroupService:GetGroupsAsync(userId:User):{any}
參數
userId:User
返回
範例程式碼
獲取用戶所屬的群組
local GroupService = game:GetService("GroupService")
local Players = game:GetService("Players")
local function playerAdded(player)
-- 加載玩家所屬所有群組的資訊列表
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)
-- 遍歷現有玩家
for _, player in pairs(Players:GetPlayers()) do
playerAdded(player)
end

GetRolesInGroupAsync
暫停
功能: Groups
GroupService:GetRolesInGroupAsync(
userId:User, groupId:number
):Variant
參數
userId:User
groupId:number
返回
Variant

PromptJoinAsync
暫停
功能: Groups
GroupService:PromptJoinAsync(groupId:number):Enum.GroupMembershipStatus
參數
groupId:number
範例程式碼
提示玩家加入團體
local GroupService = game:GetService("GroupService")
local GROUP_ID = 377251
-- 這應該在客戶端運行的腳本中執行
local success, result = pcall(function()
return GroupService:PromptJoinAsync(GROUP_ID)
end)
if success then
if result == Enum.GroupMembershipStatus.Joined then
print("玩家已加入該群組!")
elseif result == Enum.GroupMembershipStatus.JoinRequestPending then
print("玩家有一個未處理的加入請求")
elseif result == Enum.GroupMembershipStatus.AlreadyMember then
print("已經是成員")
else
print("未加入或不符合資格")
end
else
warn("提示失敗:", result)
end

©2026 Roblox Corporation、Roblox、Roblox 標誌及 Powering Imagination 是我們在美國及其他國家地區的部分註冊與未註冊商標。