GroupService
*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.
GroupService, geliştiricilerin bir Roblox grubundan oyun içindeki bilgi almasını sağlayan bir hizmettir.
Grubun ismi, açıklaması, sahibi, rol ve emblemi dahil olmak üzere temel bilgileri GroupService:GetGroupInfoAsync() kullanılarak alınabilir. Bir grup'un müttefikleri ve düşmanlarının listeleri GroupService:GetAlliesAsync() ve GroupService:GetEnemiesAsync() kullan
GroupService ayrıca bir oyuncunun bir üyesi olduğunu listelemek için kullanılabilir, kullanıcının GroupService:GetGroupsAsync() kullanıyor. Not, bir oyuncu gruba katılmak istiyorsa Player:IsInGroup() işlevini kullanın, GroupService:GetGroupsAsync() işlevini k
Hizmete, bir oyuncunun oyuna katıldığında müttefik veya düşman olduğunu tespit etme gibi yararlı uygulamalar sayılır.
Kod Örnekleri
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
Özet
Özellikler
Yöntemler
Tüm belirtilen grup'un müttefikleri hakkında bilgi içeren bir StandardPages nesnemi içerir.
Tüm belirtilen grupun düşmanları hakkında bilgi içeren bir StandardPages nesnemi içerir.
Verilen grupbilgilerini içeren bir tabloyu döndürür.
Verilen oyuncunun üyesi olduğu tüm gruplar hakkında bilgi içeren bir liste döndürür.
Özellikler
Yöntemler
GetAlliesAsync
Tüm belirtilen grup'un müttefikleri hakkında bilgi içeren bir StandardPages nesnemi içerir.
Bu sayfalar grubu ID'leri değil, aksine grubu bilgisi tablolarını içerir, GroupService:GetGroupInfoAsync() tarafından iade edilen formatını yansıtır. Aşağıda bu tabloların yapısı için aşağıdaki bağlantıyı görüntüleyin.
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}}}
Not, bu işlev bir StandardPages nesnemi döndürür, bir matris değil, kullanım kolaylığı için bir matris olarak dönüştürmek isteyebilir. (örnekleri görün).
Bu işlevin bir dizi faydalı uygulaması vardır, bir oyuncunun bir müttefik grup üyesi olup olmadığını tespit etmek gibi.
Düşmanlar için, GroupService:GetEnemiesAsync() kullanın.
Parametreler
grup'un ID'si.
Dönüşler
Kod Örnekleri
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
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
Tüm belirtilen grupun düşmanları hakkında bilgi içeren bir StandardPages nesnemi içerir.
Bu sayfalar grubu ID'leri değil, aksine grubu bilgisi tablolarını içerir, GroupService:GetGroupInfoAsync() tarafından iade edilen formatını yansıtır. Aşağıda bu tabloların yapısı için aşağıdaki bağlantıyı görüntüleyin.
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}}}
Not, bu işlev bir StandardPages nesnemi döndürür, bir matris değil, kullanım kolaylığı için bir matris olarak dönüştürmek isteyebilir. (örnekleri görün).
Bu işlevin bir dizi faydalı uygulaması vardır, bir oyuncunun bir düşman grupbir üyesi olup olmadığını tespit etmek gibi.
Müttefikler için, GroupService:GetAlliesAsync() kullanın.
Parametreler
grup'un ID'si.
Dönüşler
Kod Örnekleri
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
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
Verilen grupbilgilerini içeren bir tabloyu döndürür.
Döndürülen tablo, GroupService:GetAlliesAsync() ve GroupService:GetEnemiesAsync() ile döndürülen tabelle ile aynı biçimdedir. Bu biçim dưới şekilde görüntülenebilir.
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}}}
Not, bir grubun sahibi yoksa, Sahip alanı sıfıra ayarlanır.
Bu işlevin bir dizi yararlı uygulaması vardır, bir grup içinde görüntülenmesi için bir grupun en son açıklamasını ve logosunu yüklemek dahil.
Parametreler
Grup'un ID'grup.
Dönüşler
gruphakkında bilgi içinde bulunan bir sözlük.
Kod Örnekleri
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
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
Uyarı:: Geri döndürülen tablodaki IsInClan özelliği her zaman yanlış döndürür ve geri dönüştürülür. Klan özelliği 2016'dan Roblox platformundan günbatımı oldu.
Bu işlev, verilen Player ile ilgili tüm grupların içindeki tabloları bir liste olarak döndürür.
Döndürülen liste, oyuncunun üyesi olduğu her gruba bir giriş içerecek. Bu girişler aşağıdaki alanlarla tablodur.
<tbody><tr><td><b>İsim</b></td><td>grupadı</td></tr><tr><td><b>Kimlik Numarası</b></td><td>Grup ID'si</td></tr><tr><td><b>EmblemUrl</b></td><td>grupbaşlığına bağlanan bir varlık resmi (örneğin: http://www.roblox.com/asset/?id=276165514)</td></tr><tr><td><b>EmblemId</b></td><td>Emblem'in kullanıldığı gibi aynı varlık kimliği</td></tr><tr><td><b>Rütbe</b></td><td>Oyuncunun sahip olduğu rütbe (örneğin: sahibi için 255)</td></tr><tr><td><b>Rol</b></td><td>oyuncugrup rütbesinin adı (örneğin: Grubun Sahibi)</td></tr><tr><td><b>Öncelikli</b></td><td>oyuncuana grupolduğunu gösteren bir booleti</td></tr><tr><td><b>IsInClan</b></td><td>Oyuncunun bu grupklanında olup olmadığını gösteren bir boole</td></tr></tbody>
İsim | Açıklama |
---|
Not, GroupService:GetAlliesAsync() ve GroupService:GetEnemiesAsync() ile aynı değildir, GetGroupsAsync bir tabloyu içerir, bir StandardPages nesnesi değil.
Parametreler
Kullanıcının Player.UserId kullanıcısı.
Dönüşler
Kod Örnekleri
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