GroupService

非推奨を表示

*このコンテンツは、ベータ版のAI(人工知能)を使用して翻訳されており、エラーが含まれている可能性があります。このページを英語で表示するには、 こちら をクリックしてください。

作成できません
サービス
複製されていません

GroupService は、開発者がゲーム内の Roblox グループから情報を取得できるサービスです。

グループの名前、説詳細、所有者、役割、エンブレムなどの基本情報は、GroupService:GetGroupInfoAsync() を使用して取得できます。グループのアリーや敵のリストは、GroupService:GetAlliesAsync() および GroupService:GetEnemiesAsync() を使用して取得できま

GroupService は、GroupService:GetGroupsAsync() を使用して、プレイヤーがグループのメンバーであるかを取得することもできます。注意、グループに参加しているかどうかを確認したい開発者は、Player:IsInGroup() 機能を使用する必要があります、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

概要

方法

  • イールド

    Class.StandardPages オブジェクトを返し、指定されたグループの全てのアリーに関する情報を含みます。

  • イールド

    指定されたグループのすべての敵に関する情報を含む StandardPages オブジェクトを返します。

  • GetGroupInfoAsync(groupId : number):Variant
    イールド

    与えられたグループに関する情報を含むテーブルを返します。

  • イールド

    指定されたプレイヤーがメンバーであるすべてのグループの情報を含むテーブルのリストを返します。

プロパティ

方法

GetAlliesAsync

イールド

Class.StandardPages オブジェクトを返し、指定されたグループの全てのアリーに関する情報を含みます。

このページには、グループ ID のリストは含まれていませんが、代わりにグループ情報テーブルのリストが含まれています。これらのテーブルの構造は、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

グループのID。


戻り値

コードサンプル

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 オブジェクトを返します。

このページには、グループ ID のリストは含まれていませんが、代わりにグループ情報テーブルのリストが含まれています。これらのテーブルの構造は、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 オブジェクトを返すため、アレイではなく、簡単に使用できるアレイに変換することを開発者は望むかもしれません (例の例参照)。

この関数には、プレイヤーが敵のグループのメンバーであるかどうかを検出するなどといった便利なアプリケーションがあります。

For allies, use GroupService:GetAlliesAsync() .

パラメータ

groupId: number

グループのID。


戻り値

コードサンプル

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

注意、グループに所有者がいない場合は、所有者フィールドは nulo に設定されます。

この機能には、グループベースで表示するために最新のグループ説明とロゴを読み込むなど、便利なアプリケーションがいくつかあります。

パラメータ

groupId: number

グループのグループ ID。


戻り値

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 プロパティは常に false を返し、バックコンバージョンのために存在します。クラン機能は 2016年にRoblox プラットフォームからサンセットされました。

この関数は、Class.Player が所属するグループのすべての情報を含むテーブルのリストを返します。

返されたリストには、プレイヤーがメンバーであるグループのすべてのエントリが含まれます。これらのエントリには、次のフィールドが含まれています。


<tbody>
<tr>
<td><b>名前</b></td>
<td>グループの名前</td>
</tr>
<tr>
<td><b>ID</b></td>
<td>グループ ID</td>
</tr>
<tr>
<td><b>エンブレム URL</b></td>
<td>グループのサムネイルにリンクするアセット URL (たとえば: http://www.roblox.com/asset/?id=276165514)</td>
</tr>
<tr>
<td><b>エンブレムId</b></td>
<td>エンブレムのアセットID、EmblemUrl で使用されているものと同じ</td>
</tr>
<tr>
<td><b>ランク</b></td>
<td>プレイヤーが持っているランクID (たとえば、所有者の場合: 255)</td>
</tr>
<tr>
<td><b>ロール</b></td>
<td>プレイヤーのグループランクの名前 (例: グループ所有者)</td>
</tr>
<tr>
<td><b>イスプライマリ</b></td>
<td>プレイヤーのメイングループであるかを示すブールーン</td>
</tr>
<tr>
<td><b>IsInClan</b></td>
<td>プレイヤーがこのグループのクランに入っているかを示すブールーン</td>
</tr>
</tbody>
名前説明

Class.GroupService:GetAlliesAsync() と GroupService:GetEnemiesAsync() との違い、StandardPages は、1>Class.StandardPages1> オブジェクトではなく、4>Class.GroupService:GetGroupsAsync4> テーブルを返します。

パラメータ

userId: number

ユーザーの 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

イベント