GroupService

แสดงที่เลิกใช้งานแล้ว

*เนื้อหานี้แปลโดยใช้ AI (เวอร์ชัน Beta) และอาจมีข้อผิดพลาด หากต้องการดูหน้านี้เป็นภาษาอังกฤษ ให้คลิกที่นี่

ไม่สามารถสร้าง
บริการ
ไม่ซ้ำ

GroupService เป็นบริการที่ช่วยให้ผู้พัฒนาสามารถดึงข้อมูลเกี่ยวกับกลุ่ม Roblox จากภายในเกม

ข้อมูลพื้นฐานเกี่ยวกับกลุ่ม รวมถึงชื่อ คำอธิบาย เจ้าของ บทบาท และเหรียญของกลุ่มสามารถดึงได้โดยใช้ GroupService:GetGroupInfoAsync() ลิสต์ของพันธมิตรแ

GroupService ยังสามารถใช้เพื่อดึงรายการของกลุ่มที่ผู้เล่นเป็นสมาชิกของได้โดยใช้ GroupService:GetGroupsAsync() หมายเหตุผู้พัฒนาที่ต้องการตรวจสอบว่าผู้เล่นอยู่ใ

บริการมีตัวแปรที่มีประโยชน์หลายอย่างเช่นตรวจสอบว่าผู้เล่นเป็นพันธมิตรหรือศัตรูเมื่อเข้าร่วมเกม

ตัวอย่างโค้ด

Group Ally/Enemy Checker

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

สรุป

วิธีการ

  • ผลตอบแทน

    กลับมาเป็นวัตถุ StandardPages ที่รวมถึงข้อมูลเกี่ยวกับพรรคพวกทั้งหมดของกลุ่มที่ระบุ

  • ผลตอบแทน

    กลับมาเป็นวัตถุ StandardPages ที่รวมถึงข้อมูลเกี่ยวกับศัตรูทั้งหมดของกลุ่มที่ระบุ

  • GetGroupInfoAsync(groupId : number):Variant
    ผลตอบแทน

    กลับตารางที่มีข้อมูลเกี่ยวกับกลุ่มที่ให้

  • ผลตอบแทน

    กลับรายการโต๊ะที่มีข้อมูลเกี่ยวกับกลุ่มทั้งหมดที่ผู้เล่นให้ไว้

คุณสมบัติ

วิธีการ

GetAlliesAsync

ผลตอบแทน

กลับมาเป็นวัตถุ StandardPages ที่รวมถึงข้อมูลเกี่ยวกับพรรคพวกทั้งหมดของกลุ่มที่ระบุ

หน้าเว็บนี้ไม่รวมรายการของรหัสกลุ่ม แต่แทนที่ด้วยรายการโต๊ะข้อมูลกลุ่ม ซึ่งเป็นการสะท้อนรูปแบบของการตอบกลับโดย GroupService:GetGroupInfoAsync() ดูด้านล่างสำหรับโครงสร้างของตารางเหล่านี้


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
}
}
}

หมายเหตุ, เนื่องจากคุณสมบัตินี้กลับส่งค่า StandardPages เป็นตัวอักษรรายการ ไม่ใช่รายการ ผู้พัฒนาอาจต้องการแปลงมันเป็นรายการเพื่อความสะดวกในการใช้งาน (ดูตัวอย่าง)

ฟังก์ชันนี้มีตัวแปรที่มีประโยชน์หลายอย่างรวมถึงการตรวจสอบว่าผู้เล่นเป็นสมาชิกของกลุ่มพันธมิตรหรือไม่

สำหรับศัตรูใช้ GroupService:GetEnemiesAsync()

พารามิเตอร์

groupId: number

รหัสกลุ่ม


ส่งค่ากลับ

ตัวอย่างโค้ด

GroupService:GetAlliesAsync

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
Group Ally/Enemy Checker

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

ผลตอบแทน

กลับมาเป็นวัตถุ StandardPages ที่รวมถึงข้อมูลเกี่ยวกับศัตรูทั้งหมดของกลุ่มที่ระบุ

หน้าเว็บนี้ไม่รวมรายการของรหัสกลุ่ม แต่แทนที่ด้วยรายการโต๊ะข้อมูลกลุ่ม ซึ่งเป็นการสะท้อนรูปแบบของการตอบกลับโดย GroupService:GetGroupInfoAsync() ดูด้านล่างสำหรับโครงสร้างของตารางเหล่านี้


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
}
}
}

หมายเหตุ, เนื่องจากคุณสมบัตินี้กลับส่งค่า StandardPages เป็นตัวอักษรรายการ ไม่ใช่รายการ ผู้พัฒนาอาจต้องการแปลงมันเป็นรายการเพื่อความสะดวกในการใช้งาน (ดูตัวอย่าง)

ฟังก์ชันนี้มีตัวแปรที่มีประโยชน์หลายอย่างรวมถึงการตรวจสอบว่าผู้เล่นเป็นสมาชิกของกลุ่มศัตรูหรือไม่

สำหรับพันธมิตรใช้ GroupService:GetAlliesAsync()

พารามิเตอร์

groupId: number

รหัสกลุ่ม


ส่งค่ากลับ

ตัวอย่างโค้ด

GroupService:GetEnemiesAsync

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
Group Ally/Enemy Checker

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

Variant
ผลตอบแทน

กลับตารางที่มีข้อมูลเกี่ยวกับกลุ่มที่ให้

ตารางที่กลับมาเป็นรูปแบบเดียวกับที่กลับมาใน GroupService:GetAlliesAsync() และ GroupService:GetEnemiesAsync() นี้ รูปแบบนี้สามารถดูได้ด้านล่าง


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
}
}
}

หมายเหตุ, หากกลุ่มไม่มีเจ้าของ ตัวเลขผู้เป็นเจ้าของจะถูกตั้งไว้เป็น zero

ฟังก์ชันนี้มีตัวแปรที่มีประโยชน์หลายรายการ รวมถึงการโหลดคำอธิบายและโลโก้ของกลุ่มล่าสุดเพื่อแสดงในฐานกลุ่ม

พารามิเตอร์

groupId: number

รหัสกลุ่มของกลุ่ม


ส่งค่ากลับ

Variant

พจนานุกรมของข้อมูลเกี่ยวกับกลุ่ม

ตัวอย่างโค้ด

GroupService:GetGroupInfoAsync

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
Load Group 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

ผลตอบแทน

คำเตือน: สมบัติ IsInClan ในตารางที่กลับมาจะเสมอจะกลับมาเป็น ปลอม และมีอยู่สำหรับความเข้ากันได้ก่อนหน้านี้ สมบัติ Clans ถูกปิดใช้งานจากแพลตฟอร์ม Roblox ในปี 2016

ฟังก์ชันนี้กลับรายการโต๊ะที่มีข้อมูลเกี่ยวกับกลุ่มทั้งหมดที่ Player เป็นสมาชิก

รายการที่ได้รับจะรวมถึงรายการสำหรับแต่ละกลุ่มที่ผู้เล่นเป็นสมาชิก รายการเหล่านี้เป็นตารางที่มีข้อมูลต่อไปนี้


<tbody>
<tr>
<td><b>ชื่อ</b></td>
<td>ชื่อของกลุ่ม</td>
</tr>
<tr>
<td><b>รหัส</b></td>
<td>รหัสกลุ่ม</td>
</tr>
<tr>
<td><b>EmblemUrl เอมเล็ต</b></td>
<td>ลิงค์ไปยังไอเท็มของกลุ่ม (เช่น: http://www.roblox.com/asset/?id=276165514)</td>
</tr>
<tr>
<td><b>EmblemId</b></td>
<td>รหัสสัญลักษณ์ ซึ่งเป็นรหัสเดียวกันที่ใช้ใน EmblemUrl</td>
</tr>
<tr>
<td><b>อันดับ</b></td>
<td>รหัสอันดับที่ผู้เล่นมี (เช่น: 255 สําหรับเจ้าของ)</td>
</tr>
<tr>
<td><b>บทบาท</b></td>
<td>ชื่อของกลุ่มผู้เล่น (เช่น: เจ้าของกลุ่ม)</td>
</tr>
<tr>
<td><b>เป็นหลักฐานปืนยาว</b></td>
<td>บูลีนที่ระบุว่านี่คือกลุ่มหลักของผู้เล่น</td>
</tr>
<tr>
<td><b>อยู่ในแคลน</b></td>
<td>บูเลียนที่แสดงว่าผู้เล่นอยู่ในกลุ่มนี้หรือไม่</td>
</tr>
</tbody>
ชื่อคำอธิบาย

หมายเหตุในขณะที่ไม่ใช่ GroupService:GetAlliesAsync() และ GroupService:GetEnemiesAsync() ตาราง GetGroupsAsync จะกลับมาเป็นตารางแทนที่จะเป็น StandardPages อัน

พารามิเตอร์

userId: number

Class.Player.UserId ของผู้ใช้


ส่งค่ากลับ

รายการของจิตรามีข้อมูลเกี่ยวกับกลุ่ม Player เป็นสมาชิก

ตัวอย่างโค้ด

Getting the Groups that a User is A Member Of

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

อีเวนต์