Players

Artık kullanılmayanları göster

*Bu içerik, yapay zekâ (beta) kullanılarak çevrildi ve hatalar içerebilir. Sayfayı İngilizce görüntülemek için buraya tıkla.

Oluşturulamaz
Hizmet

The Players hizmeti, şu anda bağlı müşterilere bir Roblox sunucusuna Player nesneler içeriyor.Ayrıca bir dünyayapılandırılmasıyla ilgili bilgiler de içerir.Karakter görünümleri, arkadaşlar ve avatar küçük resimleri gibi sunucuya bağlı olmayan oyuncularla ilgili bilgileri alabilir.

Özet

Özellikler

Yöntemler

Etkinlikler

Özellikler

BanningEnabled

Çoğaltılmamış
Betiklenemez
Paralel oku

Yasaklama API'sini oluşturan üç Players yöntemini etkinleştirir veya devre dışı bırakır (BanAsync() , UnbanAsync() ve GetBanHistoryAsync() )Bu özellik kodlanabilir değildir ve yalnızca Studio'da değiştirilebilir.

BubbleChat

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu özellik, balon sohbetinin etkin olup olmadığını gösterir. Players:SetChatStyle() yöntemi kullanılarak Enum.ChatStyle enumerasyonu ile ayarlanır.

Bu sohbet modu etkinleştirildiğinde, oyun sohbet kullanıcı arayüzünü ekranın sol üst kısmındaki gösterir.

Diğer iki sohbet modu var, Players.ClassicChat ve her ikisi de klasik ve balon sohbeti etkinleştirilen bir sohbet modu.

CharacterAutoLoads

Çoğaltılmamış
Paralel oku

Bu özellik, characters 'nin otomatik olarak yeniden doğup doğmayacağını gösterir. Varsayılan değer true'dir.

Bu özellik devre dışı bırakıldığında (yanlış), oyuncu characters , oyuncular deneyime katıldığında her Player:LoadCharacter() için Player fonksiyonu çağrılana kadar oluşmayacaktır, oyuncular deneyime katıldığında da dahil.

Bu, oyuncuların sınırlı hayatları olduğu deneyimlerde yararlı olabilir, örneğin oyuncular bir oyun turu bitene kadar yeniden doğmayana kadar rekabetçi oyunlarda.

Kod Örnekleri

This example demonstrates one possible usage of the Players.CharacterAutoLoads property.

The example below respawns all players in the game, if dead, once every 10 seconds. This means that players who die 1 second after all players respawn must wait 9 seconds until the script loads all Player.Character again.

First, this script removes a player's character when they die and the Humanoid.Died function fires. This is done so that the respawn loop that executes every 10 seconds reloads that player when it does not find the player's character in the Workspace.

To work as expected, this example should be run within a Script.

Player Respawn Timer

local Players = game:GetService("Players")
-- Set CharacterAutoLoads to false
Players.CharacterAutoLoads = false
-- Remove player's character from workspace on death
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Respawn all dead players once every 10 seconds
while true do
local players = Players:GetChildren()
-- Check if each player is dead by checking if they have no character, if dead load that player's character
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacter()
end
end
-- Wait 10 seconds until next respawn check
task.wait(10)
end

ClassicChat

Salt Okunur
Çoğaltılmamış
Paralel oku

Klasik sohbetin etkin olup olmadığını gösterir. Bu özellik, Players:SetChatStyle() yöntemi kullanılarak Enum.ChatStyle enum tarafından ayarlanır.

Bu sohbet modu etkinleştirildiğinde, oyun gönderenin başının üzerinde bir balon içinde sohbetleri görüntüler.

Diğer iki sohbet modu var, Players.BubbleChat ve her ikisi de klasik ve balon sohbeti etkinleştirilen bir sohbet modu.

LocalPlayer

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu okuma-sadece özelliği, deneyimi yürüten Player müşteriye işaret eder.

Bu özellik yalnızca sunucuüzerinde çalıştıkları için LocalScripts ve ModuleScripts gerektirenler için tanımlanır, çünkü onlar tarafından gerekli.Sunucu üzerinde, Script nesnelerin kodunu çalıştırdığı, bu özellik nil dir.

MaxPlayers

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu özellik, bir sunucuda olabilecek maksimum oyuncu sayısını belirler.Bu özellik yalnızca Yaratıcı Panosu üzerindeki belirli bir dünyaayarları veya Oyun Ayarları aracılığıyla ayarlanabilir.

PreferredPlayers

Salt Okunur
Çoğaltılmamış
Paralel oku

Bu özellik, Roblox'un maç yapıcısının sunucuları dolduracağı oyuncu sayısını gösterir.Bu sayı, deneyim tarafından desteklenen maksimum oyuncu sayısından daha az olacaktır ( Players.MaxPlayers ).

RespawnTime

Paralel oku

Bu özellik, bir oyuncunun Players.CharacterAutoLoads gerçek olduğunda yeniden doğması için gereken süreyi, saniyelerle kontrol eder.Varsayılan olarak 5.0 saniye.

Deneyim türüne dayalı olarak yeniden doğmaya ne kadar süre gerektiğini değiştirmek istediğinizde faydalıdır, ancak oyuncuları tek başına ele almak istemezsiniz.

Bu özellik bir içinde ayarlanabilir olmasına rağmen, Studio'nun Gezgini penceresinde doğrudan ayarlayabilirsiniz.

UseStrafingAnimations

Betiklenemez
Paralel oku

Yöntemler

Chat

()
Eklenti Güvenliği

Bu işlev, yerel oyuncunun verilen mesajı sohbet etmesini sağlar.Bu öğe korunduğundan, bir Script veya LocalScript içinde kullanmaya çalışmak bir hata verecektir.

Bunun yerine, özel bir sohbet sistemi veya sohbete erişim gerektiren bir sistem oluştururken, Chat servisinin Chat:Chat() fonksiyonunu yerine kullanabilirsiniz.

Parametreler

message: string

Mesaj sohbet edildi.

Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

This example demonstrates that the Players:Chat() function executes without error if using the Command Bar or a Plugin (assuming the local player can chat freely) and errors if executed in a Script.

Players:Chat

-- Command bar
game:GetService("Players"):Chat("Hello, world!") --Results in 'Hello, world!' appearing in the Chat log under your Player's name.
-- Script
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --Errors

GetPlayerByUserId

Paralel yaz

Bu işlev, verilen KullanıcıID'ye uyan birinin her ını içinde arar.Eğer böyle bir oyuncu mevcut değilse, basitçe nil döndürür.Aşağıdaki işlevle eşdeğerdir:


local Players = game:GetService("Players")
local function getPlayerByUserId(userId)
for _, player in Players:GetPlayers() do
if player.UserId == userId then
return player
end
end
end

Bu yöntem, satıcının bir geliştirici ürününü satın alanı bulmak için MarketplaceService.ProcessReceipt kullanarak geliştirici ürününün satıcısını bulmak için yararlıdır, ki bunun içinde satıcının KullanıcıId'si ve Oyuncu nesnesinin referansı yoktur.Çoğu oyun, ürünleri vermek için oyuncuya bir referans gerektirecektir.

Parametreler

userId: number

Oyuncunun belirtilmesi. Player.UserId Oyuncunun belirtilmesi.

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Players:GetPlayerByUserId

local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end

The following code sample:

  • Sets up the ProcessReceipt callback function to handle the purchase of two developer products for an experience.
  • Checks for and records purchases using a GlobalDataStore called PurchaseHistory.
  • Properly returns PurchaseGranted if the transaction completes successfully, or if the function detects that the purchase has already been granted using the PurchaseHistory data store.

After the receipt processing routine, it's possible that the purchase was granted but recording it as granted failed due to a data store error. This is one unavoidable scenario that leads to duplicate granting of the purchase, because processReceipt() will be called for the purchase again. You can mitigate this by keeping another in-memory record of purchases so that the same server will not grant the same purchase twice, but you'll need a session locking implementation around your data store to avoid the potential of duplicate grants across servers.

ProcessReceipt Callback

local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Data store setup for tracking purchases that were successfully processed
local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
local productIdByName = {
fullHeal = 123123,
gold100 = 456456,
}
-- A dictionary to look up the handler function to grant a purchase corresponding to a product ID
-- These functions return true if the purchase was granted successfully
-- These functions must never yield since they're called later within an UpdateAsync() callback
local grantPurchaseHandlerByProductId = {
[productIdByName.fullHeal] = function(_receipt, player)
local character = player.Character
local humanoid = character and character:FindFirstChild("Humanoid")
-- Ensure the player has a humanoid to heal
if not humanoid then
return false
end
-- Heal the player to full Health
humanoid.Health = humanoid.MaxHealth
-- Indicate a successful grant
return true
end,
[productIdByName.gold100] = function(_receipt, player)
local leaderstats = player:FindFirstChild("leaderstats")
local goldStat = leaderstats and leaderstats:FindFirstChild("Gold")
if not goldStat then
return false
end
-- Add 100 gold to the player's gold stat
goldStat.Value += 100
-- Indicate a successful grant
return true
end,
}
-- The core ProcessReceipt callback function
-- This implementation handles most failure scenarios but does not completely mitigate cross-server data failure scenarios
local function processReceipt(receiptInfo)
local success, result = pcall(
purchaseHistoryStore.UpdateAsync,
purchaseHistoryStore,
receiptInfo.PurchaseId,
function(isPurchased)
if isPurchased then
-- This purchase was already recorded as granted, so it must have previously been handled
-- Avoid calling the grant purchase handler here to prevent granting the purchase twice
-- While the value in the data store is already true, true is returned again so that the pcall result variable is also true
-- This will later be used to return PurchaseGranted from the receipt processor
return true
end
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- Avoids granting the purchase if the player is not in the server
-- When they rejoin, this receipt processor will be called again
return nil
end
local grantPurchaseHandler = grantPurchaseHandlerByProductId[receiptInfo.ProductId]
if not grantPurchaseHandler then
-- If there's no handler defined for this product ID, the purchase cannot be processed
-- This will never happen as long as a handler is set for every product ID sold in the experience
warn(`No purchase handler defined for product ID '{receiptInfo.ProductId}'`)
return nil
end
local handlerSucceeded, handlerResult = pcall(grantPurchaseHandler, receiptInfo, player)
if not handlerSucceeded then
local errorMessage = handlerResult
warn(
`Grant purchase handler errored while processing purchase from '{player.Name}' of product ID '{receiptInfo.ProductId}': {errorMessage}`
)
return nil
end
local didHandlerGrantPurchase = handlerResult == true
if not didHandlerGrantPurchase then
-- The handler did not grant the purchase, so record it as not granted
return nil
end
-- The purchase is now granted to the player, so record it as granted
-- This will later be used to return PurchaseGranted from the receipt processor
return true
end
)
if not success then
local errorMessage = result
warn(`Failed to process receipt due to data store error: {errorMessage}`)
return Enum.ProductPurchaseDecision.NotProcessedYet
end
local didGrantPurchase = result == true
return if didGrantPurchase
then Enum.ProductPurchaseDecision.PurchaseGranted
else Enum.ProductPurchaseDecision.NotProcessedYet
end
-- Set the callback; this can only be done once by one script on the server
MarketplaceService.ProcessReceipt = processReceipt

GetPlayerFromCharacter

Bu işlev, verilen Player ile ilişkili olan Player.Character veya nil bulunamıyorsa geri döner.Aşağıdaki işlevle eşdeğerdir:


local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end

Bu yöntem genellikle oyuncunun karakterindeki bir olay ateşlendiğinde kullanılır (örneğin onların Class.Humanoid``Class.Humanoid.Died|dying ).Böyle bir olay doğrudan Oyuncu nesnesini referanslamayabilir, ancak bu yöntem kolay erişim sağlar.Bu işlevin tersi, bir oyuncunun karakterini almak olarak tanımlanabilir.Bunu yapmak için, sadece Karakter özelliğine erişin.

Parametreler

character: Model

Oyuncudan almak istediğiniz bir karakter örneği.

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

Players:GetPlayerFromCharacter

Players:GetPlayerFromCharacter

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`Player {player.Name} ({player.UserId}) is in the game`)
else
print(`Player {PLAYER_NAME} is not in the game!`)
end

GetPlayers

Instances
Paralel yaz

Bu yöntem, şu anda bağlı tüm Player nesnelerin bir tablosunu döndürür.Aynı şekilde çalışır Instance:GetChildren() sadece Player nesnelerini döndürür, ancak sadece Players altında bulunan nesneleri döndürür.Bir for döngüsü ile kullanıldığında, bir oyundaki tüm oyuncuları dolaşmak için yararlıdır.


local Players = game:GetService("Players")
for _, player in Players:GetPlayers() do
print(player.Name)
end

Players.PlayerAdded 'ye bağlanan senaryolar genellikle oyuna bağlanan her oyuncuyu işlemeye çalışıyor.Bu yöntem, çalışmayan zaten bağlı oyuncuları döngüye sokmak için yararlıdır PlayerAdded .Bu yöntemi kullanmak, hiçbir oyuncunun kaçırılmadığını garanti eder!


local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player: " .. player.Name)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)

Dönüşler

Instances

Sunucudaki tüm oyuncuları içeren bir sunucu.

Kod Örnekleri

This code sample listens for players spawning and gives them Sparkles in their head. It does this by defining two functions, onPlayerSpawned and onPlayerAdded.

Give Sparkles to Everyone

local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Give them sparkles on their head if they don't have them yet
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Check if they already spawned in
if player.Character then
onCharacterAdded(player.Character)
end
-- Listen for the player (re)spawning
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)

SetChatStyle

()
Eklenti Güvenliği

Bu işlev, BubbleChat ve ClassicChat'in kullanılıp kullanılmadığını ayarlar ve TakımChat ve Sohbet'e Enum.ChatStyle enum kullanarak ne yapmaları gerektiğini söyler.Bu öğe korunduğundan, bir Script veya LocalScript içinde kullanmaya çalışmak bir hata verecektir.

Bu işlev, sohbet modu oyun tarafından ayarlanırken içeride kullanılır.

Parametreler

Belirtilen sohbet stili ayarlanıyor.

Varsayılan değer: "Classic"

Dönüşler

()

Kod Örnekleri

This example demonstrates that the Players:SetChatStyle() function executes without error if using the Command Bar or a Plugin and errors if executed in a LocalScript.

When executed in the Command Bar, this code sets the chat style to Classic using the Enum.ChatStyle enum.

Setting a Player's Chat Style

-- Command bar
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Set's chat style to Classic
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors

TeamChat

()
Eklenti Güvenliği

Bu işlev, Players.LocalPlayer sohbetin verilen mesajı yapar, ki bu sadece aynı takımdaki kullanıcılar tarafından görülebilir.Bu öğe korunduğundan, bir Script veya LocalScript içinde kullanmaya çalışmak bir hata verecektir.

Bu işlev, Players.LocalPlayer ekibine bir mesaj gönderdiğinde içeriden kullanılır.

Parametreler

message: string

Mesaj sohbet ediliyor.

Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

This example demonstrates that the Players:TeamChat() function executes without error if using the Command Bar or a Plugin and errors if executed in a LocalScript.

When executed in the Command Bar, the function sends the specified message to all players on the same Team as the Players.LocalPlayer.

Sending Team Chat

-- Command bar
game.Players:TeamChat("Hello World") -- Sends a "Hello World" message to all players on the local player's team
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors

BanAsync

()
Bekletir

The Players:BanAsync() yöntemi, deneyiminizin yönergelerini ihlal eden kullanıcıları kolayca yasaklayabilmenizi sağlar.Yasak süresini belirleyebilir, şüpheli alternatif hesaplara yayılmasına izin veren yasağı etkinleştirebilir ve Kullanım İpuçları 'ya uygun olarak yasaklanmış kullanıcıya bir mesaj sağlayabilirsiniz.Deneyim kurallarınızı da tüm kullanıcılara erişebilecek bir yere yayınlamalı ve itiraz etmeleri için bir yol sağlamalısınız.Bu yöntem, Studio'da değiştirebileceğiniz Players.BanningEnabled özelliği tarafından etkinleştirilmiş ve devre dışı bırakılmıştır.

Yasaklama ve Mesajlaşma

Yasaklanmış kullanıcılar derhal tahliye edilecek ve deneyimlerinize yeniden katılmaları engellenecek.Yasaklarında ve senin DisplayReason kaldığı süre gösteren bir hata modu ile sunulacaklar.Roblox'un arka plan sistemleri, belirttiğiniz dünyatüm sunuculardan oyuncuları kovacaktır.DisplayReason maksimum 400 karakter uzunluğuna sahip olabilir ve bir metin filtresine tabidir.Kabul edilebilir mod metni hakkında daha fazla bilgi için, yasak mesajlaşma bakın.

Yerler ve Evren

Varsayılan olarak, yasaklar bu evrenin herhangi bir yerine genişletilir.Yasağı sadece bu API'nin çağrıldığı yere sınırlandırmak için, ApplyToUniverse 'yi false 'ya yapılandırın.Ancak, bir kullanıcı evrenin başlangıç ​​yerinde yasaklanırsa, evrenin bütününden kullanıcının dışlanması etkili olur, evrensel bir yasağın var olup olmadığına bakılmaksızın.

Alternatif Hesaplar

Kullanıcılar genellikle alternatif hesaplar veya alt hesaplar olarak bilinen çok sayıda farklı hesap altında oynarlar, bazen hesap yasağını atlamak için kullanılırlar.Yasaklanmış kullanıcıları dışarıda tutmanıza yardımcı olmak için, bu API'nin varsayılan davranışı, tahmin edilen alt hesaplarından herhangi birine yasakladığınız kaynak hesabından tüm yasakları yayacaktır.Ban propagasyonlarını alt hesaplara kapatabilirsiniz, bunun için ExcludeAltAccounts ile true 'yi yapılandırabilirsiniz.

Yasak Süresi

Tüm ihlaller aynı değildir, bu nedenle tüm yasaklar aynı uzunlukta olmak zorunda değildir.Bu API, yasağın süresini, saniyeler içinde, Duration alanıyla yapılandırmanıza izin verir.Kalıcı bir yasağı belirtmek için, alanı -1 olarak ayarlayın.Ayrıca, Players:GetBanHistoryAsync().Örneğin, yasak sayısını, önceki yasakların süresini veya PrivateReason altında kaydettiğiniz notların mantığını incelemek isteyebilirsiniz, ki bu 1000 karaktere kadar olabilir ve metin filtrelenmiş değildir.PrivateReason notlar asla müşteriyle paylaşılmaz ve saldırganlardan güvenli olarak kabul edilebilir.

Hatalar ve Hızlandırma

Bu yöntem, sınırlamaya tabi olan ve başarısız olabilecek arka plandaki HTTP çağrısını çağırır.Bu API'yi birden fazla UserId ile çağırıyorsanız, bu yöntem her bir kimlik için HTTP çağrısı yapmaya çalışacaktır.Ardından herhangi bir hata mesajını birleştirir ve onları virgülle ayrılmış bir listeden katılır.Örneğin, bu yöntem beş kullanıcı için çağrılır ve UserIds 2 ve 4 ile isteyenler için istekler başarısız olursa, aşağıdaki hata mesajı görünür:

HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception

Mesaj daima bir HTTP hatası ise failure for UserId {} içerecektir.

Müşteri Tarafı Gereksinimi

Kullanıcıları yasaklama ile ilişkili riskler nedeniyle, bu yöntem sadece arka plandaki deneyim sunucusuna (client-side çağrılar bir hata ile sonuçlanacaktır) çağrılabilir.Bu API'yi Studio'da, işbirliği yaratımsırasında veya bir takım testi sırasında test edebilirsiniz, ancak yasaklar üretime uygulanmayacaktır.

Bu API, Kullanıcı Sınırları Açık Bulut API'si kullanır. Bu API'leri üçüncü taraf uygulamalarında yasaklarınızı yönetmek için kullanabileceksiniz.

Parametreler

config: Dictionary
  • UserIds (gerekli; dizi) — Yasaklanacak oyuncuların UserIds dizisi. Maksimum boyut 50 dir.

  • ApplyToUniverse (isteğe bağlı; mantıksal) — Ban deneyim evreni içindeki tüm yerlere yayılır mı? Varsayılan değer true dir.

  • Duration (gerekli; bütün sayı) — Yasağın süresi, saniyeler içinde.Kalıcı yasakların değeri -1 olmalıdır.0 ve tüm diğer negatif değerler geçersizdir.

  • DisplayReason (gerekli; dizi) — Bir deneyime katılmaya çalışırken ve başarısız olurken kullanıcılara gösterilecek mesaj.Maksimum dize uzunluğu 400 dir.

  • PrivateReason (gerekli; dizi) — Kullanıcının yasak geçmişini sorgularken döndürülecek iç mesaj. Maksimum dize uzunluğu 1000 dir.

  • ExcludeAltAccounts (isteğe bağlı; mantıksal) — true , Roblox alternatif hesapları yasaklamaya çalışmaz. Varsayılan değer false dir.

Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

The following example bans a user with a duration calculated from their ban history, scoped to the entire universe and all of the user's alternate accounts.

Banning Users

local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = getNextBanDuration(banHistoryPages) -- Creator-implemented logic
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "You violated community guideline #5",
PrivateReason = "Put anything here that the user should not know but is helpful for your records",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end

CreateHumanoidModelFromDescription

Bekletir

Geçen HumanoidDescription'da belirtilen her şeyle donatılmış bir karakter Modeli döndürür ve rigType tarafından belirtilen R6 veya R15'tir.

Parametreler

description: HumanoidDescription

Geri döndürülen karakterin görünümünü belirtir.

Varsayılan değer: ""

Döndürülen karakterin R6 veya R15 olup olmayacağını belirtir.

Varsayılan değer: ""
assetTypeVerification: Enum.AssetTypeVerification

Varlık türü doğrulaması, bu işlevin modelleri yükleyip yüklemeyeceğini belirler (Kataloğa dahil olmayan varlıkları yüklemeyi istemediğiniz sürece hep aynı kalmalıdır).

Varsayılan değer: "Default"

Dönüşler

Bir Humanoid karakter modeli.

Kod Örnekleri

This code sample creates a Humanoid Model from the passed in HumanoidDescription and parents the Model to the Workspace.

Create Humanoid Model From Description

game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace

CreateHumanoidModelFromUserId

Bekletir

Geçerli kullanıcı kimliği ile belirtilen kullanıcının avatarına eşleşmek için her şeyle donatılmış bir karakter Model kurulumu döndürür.Buna, o karakterin şu anda R6 veya R15 olup olmadığı da dahildir.

Parametreler

userId: number

Roblox kullanıcısı için kullanıcı kimliği. (Kullanıcı Kimliği, kullanıcının profilindeki sayıdır, örneğin www.roblox.com/users/1/profile).

Varsayılan değer: ""

Dönüşler

Bir Humanoid karakter modeli.

Kod Örnekleri

This code sample creates a Humanoid Model to match the avatar of the passed in User ID, and parents the Model to the Workspace.

Create Humanoid Model From A User ID

game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace

GetBanHistoryAsync

Bekletir

Deneyimin evrenindeki herhangi bir kullanıcının yasağını ve yasaklanma geçmişini alır.Bu yöntem, BanHistoryPages 'den miras alan bir örnek döndürür Pages .Bu yöntem, Studio'da değiştirebileceğiniz Players.BanningEnabled özelliği tarafından etkinleştirilmiş ve devre dışı bırakılmıştır.

Bu işlev çağrısı yalnızca üretim oyun sunucularında başarılı olacak ve klient cihazlarda veya Studio'da olmayacak.

Bu API, Kullanıcı Sınırları Açık Bulut API'si kullanır. Bu API'leri üçüncü taraf uygulamalarında yasaklarınızı yönetmek için kullanabileceksiniz.

Parametreler

userId: number
Varsayılan değer: ""

Dönüşler

Geri referans için BanHistoryPages bakın.

GetCharacterAppearanceInfoAsync

Bekletir

Bu işlev, bir oyuncunun avatarı hakkında bilgiyi (ekipmanı görmezden teçhizat) Roblox web sitesinde bir sözlük şeklinde döndürür.Bu, bu yöntem tarafından tanımlanan varlıkları yükleyen GetCharacterAppearanceAsync ile karıştırılmamalıdır, aslında bu yöntem tarafından tanımlanan varlıklar yüklenir.Oyuncunun avatarında kullanılan varlıkları yüklemek için InsertService:LoadAsset() kullanabilirsiniz.Geri döndürülen sözlüğün yapısı şöyledir:


<th>Tür</th>
<th>Açıklama</th>
</tr>
</thead>
<tr>
<td><code>kaynaklar</code></td>
<td>masa (aşağıya bakın)</td>
<td>Takılan varlıkları tanımlar (şapkalar, vücut parçaları vb)</td>
</tr>
<tr>
<td><code>bodyColors vücut renkleri</code></td>
<td>masa (aşağıya bakın)</td>
<td>Her bir ekstrem için BrickColor değerlerini tanımlar</td>
</tr>
<tr>
<td><code>vücutRenk3s</code></td>
<td>masa (aşağıya bakın)</td>
<td>VücutRenkleri ile mükemmel bir şekilde eşleşmeyen her bacak için Color3 örneğini tanımlar</td>
</tr>
<tr>
<td><code>defaultPantsApplied varsayılan Pantolonlar uygulandı</code></td>
<td>bool
i̇çindekiler
nasıl yapılır
bool
i̇çindekiler
nasıl yapılır</td>
<td>Varsayılan pantolonların uygulanıp uygulanmadığını tanımlar</td>
</tr>
<tr>
<td><code>Varsayılan gömlek uygulandı</code></td>
<td>bool
i̇çindekiler
nasıl yapılır
bool
i̇çindekiler
nasıl yapılır</td>
<td>Varsayılan gömleğin uygulanıp uygulanmadığını tanımlar</td>
</tr>
<tr>
<td><code>ifadeler</code></td>
<td>masa (aşağıya bakın)</td>
<td>Takılan ifade animasyonlarını tanımlar</td>
</tr>
<tr>
<td><code>oyuncuAvatarTipi</code></td>
<td>dizi</td>
<td>Ya "R15" veya "R6"</td>
</tr>
<tr>
<td><code>ölçekler</code></td>
<td>masa (aşağıya bakın)</td>
<td>Çeşitli vücut ölçekleme faktörlerini tanımlar</td>
</tr>
Adı
Varlıklar Alt Tablosu

The assets tablosu, oyuncunun şu anda donatılan varlıkları tanımlayan aşağıdaki anahtarları içeren bir dizi tablodur:


<th>Tür</th>
<th>Açıklama</th>
</tr>
</thead>
<tr>
<td><code>id</code></td>
<td>sayı</td>
<td>Takılan varlığın varlık kimliği</td>
</tr>
<tr>
<td><code>varlıkTürü</code></td>
<td>tablo</td>
<td>Bir tablo ile <code>isim</code> ve <code>kimlik</code> alanları, her biri donatılan varlık türünü tanımlayan ("Şapka", "Yüz" vb.)</td>
</tr>
<tr>
<td><code>adı</code></td>
<td>dizi</td>
<td>Takılan varlığın adı</td>
</tr>
Adı
Ölçekler Alt Tablosu

scales tablosunun aşağıdaki anahtarları vardır, her biri bir Humanoid ölçekleme özelliğine karşılık gelen bir sayıdır: bodyType , head , height , proportion , depth , width .

Vücut Renkleri Alt Masası

The bodyColors tablosunun aşağıdaki anahtarları vardır, her biri bir BrickColor kimlik numarasına karşılık gelen bir sayıdır ve BrickColor.new(id) ile kullanılabilir: leftArmColorId , torsoColorId , rightArmColorId , headColorId , leftLegColorId , rightLegColorId.

Parametreler

userId: number

Belirtilen oyuncunun * uidsi.

Varsayılan değer: ""

Dönüşler

Belirli bir kullanıcının karakter görünümüyle ilgili bilgileri içeren bir sözlük.

Kod Örnekleri

Sometimes it is best to see an example of the returned dictionary structure in pure Lua. Here is one such example of a player whose avatar uses a package and wears several hats. Can you guess who it is?

Example Return Character Appearance Dictionary

local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Hat",
id = 8,
},
name = "Striped Hat",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "Red Bow Tie",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "Joyous Surprise",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "Expensive Red Tuxedo Jacket",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "Expensive Red Tuxedo Pants",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX Boy Left Arm",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX Boy Right Arm",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX Boy Left Leg",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX Boy Right Leg",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX Boy Torso",
},
},
}
print(result)

GetFriendsAsync

Bekletir

GetFriends Players işlevi, verilen kullanıcının arkadaşlarına ilişkin bilgileri içeren bir FriendPages nesne döndürür.FriendPages nesnesinin içindeki öğeler aşağıdaki alanlara sahip tablolardır:


<th>Tür</th>
<th>Açıklama</th>
</tr>
</thead>
<tr>
<td>Id</td>
<td>int64</td>
<td>arkadaşKullanıcı Kimliği</td>
</tr>
<tr>
<td>Kullanıcı adı</td>
<td>dizi</td>
<td>arkadaşkullanıcı adı</td>
</tr>
<tr>
<td>Görüntüleme Adı</td>
<td>dizi</td>
<td>Arkadaşın <code>Class.Player.DisplayName|display adı</code> 'arkadaş.</td>
</tr>
Adı

Tüm bir oyuncunun arkadaşlarını döndürmenin kolay bir yolu için kod örneklerini görün.

Parametreler

userId: number

Oyuncunun tanımlanan kullanıcı kimliği.

Varsayılan değer: ""

Dönüşler

Kod Örnekleri

This code sample loads the Player.UserId of the player whose username is provided at the top of the script by using Players:GetUserIdFromNameAsync(). Then, it gets a FriendPages object by calling Players:GetFriendsAsync() and iterates over each entry using the iterPageItems function. The username of each friend is stored in a table, then printed at the end.

Print Roblox Friends

local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- First, get the user ID of the player
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Then, get a FriendPages object for their friends
local friendPages = Players:GetFriendsAsync(userId)
-- Iterate over the items in the pages. For FriendPages, these
-- are tables of information about the friend, including Username.
-- Collect each username in a table
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Friends of " .. USERNAME .. ": " .. table.concat(usernames, ", "))

GetHumanoidDescriptionFromOutfitId

Bekletir

Belirtilen bir kıyafetId için HumanoidDescription'u döndürür, ki bu kıyafetin parçaları/renkleri/Animasyonları vb. ile ayarlanacaktır.Bir kıyafet bir kullanıcı tarafından oluşturulan bir kıyafet olabilir veya Roblox tarafından oluşturulan bir paket için giysi olabilir.

Parametreler

outfitId: number

HumanoidDescription için aranan kıyafetin kimliği.

Varsayılan değer: ""

Dönüşler

Geçerli kıyafetId için özellik ile başlatılan insansız tanım.

Kod Örnekleri

Shows how to get the HumanoidDescription for bundle 799 (Fishman).

Get HumanoidDescription From Outfit ID

local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitId(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescription(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace

GetHumanoidDescriptionFromUserId

Bekletir

Geçerli iPad'de belirtilen kullanıcının avatarı için donatılan her şeyi tanımlayan bir HumanoidDescription döndürür.Ayrıca ölçekleri ve vücut renklerini de içerir.

Parametreler

userId: number

Roblox kullanıcısı için kullanıcı kimliği. (Kullanıcı Kimliği, kullanıcının profilindeki sayıdır, örneğin www.roblox.com/users/1/profile).

Varsayılan değer: ""

Dönüşler

Kullanıcının avatar özellikleriyle birlikte gönderilen insansız tanım. HumanoidDescription initialized with the passed in user's avatar specification.

Kod Örnekleri

This code sample shows how to use GetHumanoidDescriptionFromUserId() to create a Humanoid Model.

Get HumanoidDescription From User ID

game.Players:CreateHumanoidModelFromDescription(
game.Players:GetHumanoidDescriptionFromUserId(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace

GetNameFromUserIdAsync

Bekletir

GetNameFromUserIdAsync Players işlevi, Roblox web sitesine verilen UserId hesabın kullanıcı adının ne olduğunu soran bir sorgu gönderecektir.

Bu yöntem, verilen Kullanıcı Kimliği ile hiçbir hesap bulunmadığında hata verir.Böyle bir hesabın var olduğundan emin değilseniz, bu işlev için çağrıları pcall() ile sarmanız önerilir.Ek olarak, aynı Kullanıcı Kimliği ile gelecekteki çağrıları hızlı yapmak için sonuçları manuel olarak önbelleğe alabilirsiniz.Daha fazla bilgi edinmek için kod örneklerini görün.

Parametreler

userId: number

Oyuncunun belirtilmesi. Player.UserId Oyuncunun belirtilmesi.

Varsayılan değer: ""

Dönüşler

Belirtilen Player.UserId ile bir kullanıcının adı.

Kod Örnekleri

This code sample demonstrates using the Players:GetNameFromUserIdAsync() method to get a user's Player.Name from their Player.UserId.

Get Name from UserId

local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- prints: "RobloxRulez docsRule"

This code sample demonstrates using the Players:GetNameFromUserIdAsync() method to get a user's Player.Name from their Player.UserId. Because GetNameFromUserIdAsync() yields, you can avoid calling it for the same Name using a table to store each UserId:Name pair found, called a cache. pcall() is used to catch the failure in case the Name doesn't exist.

Get Name from UserId using a cache

local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'Name' as they are found.
-- If we lookup a 'Name' using the same 'UserId', the 'Name' will come
-- from cache (fast) instead of GetNameFromUserIdAsync() (yields).
local cache = {}
function getNameFromUserId(userId)
-- First, check if the cache contains 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- if a value was stored in the cache at key 'userId', then this 'nameFromCache'
-- is the correct Name and we can return it.
return nameFromCache
end
-- If here, 'userId' was not previously looked up and does not exist in the
-- cache. Now we need to use GetNameFromUserIdAsync() to look up the name
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- if 'success' is true, GetNameFromUserIdAsync() successfully found the
-- name. Store this name in the cache using 'userId' as the key so we
-- never have to look this name up in the future. Then return name.
cache[userId] = name
return name
end
-- If here, 'success' was false, meaning GetNameFromUserIdAsync()
-- was unable to find the 'name' for the 'userId' provided. Warn the user
-- this happened and then return nothing, or nil.
warn("Unable to find Name for UserId:", userId)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a UserId is used, GetNameFromUserIdAsync() will be called
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Because 118271 was previously used, get its Name from the cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"

GetUserIdFromNameAsync

Bekletir

Bu işlev, Roblox web sitesine bir sorgu gönderecek ve verilen adıyla hesabın ne olduğunu soracak.

Bu yöntem, verilen kullanıcı adıyla hiçbir hesap bulunmadığında hata verir.Böyle bir hesabın var olduğundan emin değilseniz, bu işlev için çağrıları pcall() ile sarmanız önerilir.Ek olarak, aynı kullanıcı adıyla gelecekteki çağrıları hızlı bir şekilde yapmak için sonuçları manuel olarak önbelleğe alabilirsiniz.Daha fazla bilgi edinmek için kod örneklerini görün.

Parametreler

userName: string

Oyuncunun belirtilen kullanıcı adı.

Varsayılan değer: ""

Dönüşler

Adı belirtilen bir kullanıcının Player.UserId 'si.

Kod Örnekleri

This code sample demonstrates using the Players:GetUserIdFromNameAsync() method to get a user's Player.UserId from their Player.Name.

Get UserId from Name

local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- prints: "118271 131963979"

This code sample demonstrates using the Players:GetUserIdFromNameAsync() method to get a user's Player.UserId from their Player.Name. Because GetUserIdFromNameAsync() yields, you can avoid calling it for the same UserId using a table to store each Name:UserId pair found, called a cache. pcall() is used to catch the failure in case the UserId doesn't exist.

Get UserId from Name using a cache

local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'UserId' as they are found.
-- If we lookup a 'UserId' using the same 'Name', the 'UserId' will come
-- from cache (fast) instead of GetUserIdFromNameAsync() (yields).
local cache = {}
function getUserIdFromName(name)
-- First, check if the cache contains 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- if a value was stored in the cache at key 'name', then this 'userIdFromCache'
-- is the correct UserId and we can return it.
return userIdFromCache
end
-- If here, 'name' was not previously looked up and does not exist in the
-- cache. Now we need to use GetUserIdFromNameAsync() to look up the userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- if 'success' is true, GetUserIdFromNameAsync() successfully found the
-- userId. Store this userId in the cache using 'name' as the key so we
-- never have to look this userId up in the future. Then return userId.
cache[name] = userId
return userId
end
-- If here, 'success' was false, meaning GetUserIdFromNameAsync()
-- was unable to find the 'userId' for the 'name' provided. We can warn the
-- user this happened and then return nothing, or nil.
warn("Unable to find UserId for Name:", name)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a Name is used, GetUserIdFromNameAsync() will be called
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Because "RobloxRulez" was previously used, get its UserId from the cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- prints: "118271 131963979 118271"

GetUserThumbnailAsync

Bekletir

Bu işlev, oyuncunun avatarının verdiği UserId içeriğin URL'sini, istediğin görüntü boyutunu bir Enum.ThumbnailSize enum ve istediğin türü bir Enum.ThumbnailType enum olarak döndürür.Ayrıca, görüntünün kullanıma hazır olup olmadığını tanımlayan bir boolean döndürür.

En sık, bu yöntem bir deneyimde kullanıcı avatar resimlerini görüntülemek için ImageLabel.Image veya Decal.Texture ile kullanılır.

Parametreler

userId: number

Oyuncunun belirtilmesi. Player.UserId Oyuncunun belirtilmesi.

Varsayılan değer: ""
thumbnailType: Enum.ThumbnailType

Bir Enum.ThumbnailType küçük resimtürünü tanımlayan.

Varsayılan değer: ""
thumbnailSize: Enum.ThumbnailSize

Bir Enum.ThumbnailSize küçük küçük resimboyutunu belirten.

Varsayılan değer: ""

Dönüşler

Belirtilen parametrelere dayalı bir kullanıcı mini resminin içeriği URL'si ve görüntünün kullanıma hazır olup olmadığını tanımlayan bir bool değeri içeren bir tupl. A tuple containing the content URL of a user thumbnail based on the specified parameters, and a bool describing if the image is ready to be used or not.

Kod Örnekleri

This code sample displays the current player's thumbnail in a parent ImageLabel by using Players:GetUserThumbnailAsync() and setting the Image() property as well as its Size().

Display Player Thumbnail

local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- replace with placeholder image
-- fetch the thumbnail
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- set the ImageLabel's content to the user thumbnail
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)

UnbanAsync

()
Bekletir

Oyuncuları Players:BanAsync() veya Kullanıcı Sınırları Açık Bulut API 'den yasaklayan yasakları kaldır.Bu yöntem, Studio'da değiştirebileceğiniz Players.BanningEnabled özelliği tarafından etkinleştirilmiş ve devre dışı bırakılmıştır.

Like Players:BanAsync() gibi, bu yöntem size toplu olarak kullanıcıların yasağını kaldırmasına izin veren bir config sözlük alır.Bu, yasaklanmamış kullanıcıları ve onların yasaklandıkları alanı yapılandırır.

Yasakların kaldırılması sadece aynı ApplyToUniverse alanıyla yapılan yasaklara etkili olacaktır.Örneğin, ile ayarlanmış bir yasağın kaldırılması, ile ayarlanmış önceki bir yasağı geçersiz kılmayacaktır.Diğer bir deyişle, bir evren seviyesi yasağı bir yer seviyesi yasağını geçersiz kılmayacaktır.Tersi de doğrudur.

Bu yöntem, sınırlandırılan ve başarısız olabilecek arka plandaki HTTP çağrısını çağırır.Bu API'yi çoklu Kullanıcı Kimliği ile çağırıyorsanız, bu yöntem her bir Kullanıcı Kimliği için bu HTTP çağrısını yapmaya çalışacaktır.Ardından herhangi bir hata mesajını birleştirir ve onları virgülle ayrılmış bir listeden katılır.Örneğin, bu yöntem beş UserIds : {1, 2, 3, 4, 5} için çağrılırsa ve kullanıcılar 2 ve 4 için istekler başarısız olursa, aşağıdaki hata mesajı görünür: HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception. Mesaj daima HTTP hatası olduğunda failure for UserId {} içerir.Her ikisi de geçerli ve geçersiz Kullanıcı Kimlikleri olarak geçerse, bu davranış tanımlanmaz, yanibir UserId pozitif bir sayı olmayan, çünkü bazı ağ istekleri tüm giriş doğrulanana kadar başarılı olabilir.

Kullanıcıları yasaklama ile ilişkili riskler nedeniyle, bu yöntem sadece arka plandaki oyun sunucusunda çağrılabilir.Müşteri tarafı çağrıları bir hata sonucu olacaktır.Bu API'yi Studio, Takım Oluşturma ve Takım Testi'nde test edebilirsiniz, ancak yasaklar üretime uygulanmayacaktır.Bu işlev çağrısı yalnızca üretim oyun sunucularında yasaklama istekleri denemeye çalışacak ve Studio testinde değil.Ancak, tüm giriş doğrulama adımları hala Studio'da çalışacaktır.

Bu API, Kullanıcı Sınırları Açık Bulut API'si kullanır. Bu API'leri üçüncü taraf uygulamalarında yasaklarınızı yönetmek için kullanabileceksiniz.

Parametreler

config: Dictionary

<th>Tür</th>
<th>Açıklama</th>
</tr>
</thead>
<tbody>
<tr>
<td><code>Kullanıcı Kimlikleri</code></td>
<td>array
yazım tarihi: 2020-04-10</td>
<td>Deneyime (ler) zorla girilmesi gereken kullanıcı kimlikleri. Maksimum boyut <code>50</code> .</td>
</tr>
<tr>
<td><code>Evren'e Başvur</code></td>
<td>boşluklı</td>
<td>Bu evrenin tüm yerlerine yasağı yayar.</td>
</tr>
</tbody>
Adı
Varsayılan değer: ""

Dönüşler

()

Kod Örnekleri

The following un-bans a user, as well as another unrelated account with UserId 789.

Unbanning Users

local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end

Etkinlikler

PlayerAdded

Bu olay, bir oyuncu oyuna girdiğinde ateşlenir.Bir oyuncu bir oyuna katıldığında bir olay ateşlemek için kullanılır, örneğin oyuncunun kaydedilmiş GlobalDataStore verilerini yükleme.

Bu, oyuncunun oyundan ayrılmak üzere olduğunda ateşlenen Players.PlayerRemoving etkinliğinin yanında kullanılabilir.durum, yeni bir oyuncu her seferinde oyuna katılır veya oyundan ayrılırsa bir mesaj basmak istiyorsanız:


local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)

Bir oyuncunun karakterinin oyundan eklenipya da kaldırıldığını izlemek istiyorsanız, bir oyuncu yeniden doğar veya ölür gibi, Player.CharacterAdded ve Player.CharacterRemoving fonksiyonlarını kullanabilirsiniz.

Bu etkinin Oynat modunda beklenen şekilde çalışmadığını unutmayın, çünkü oyuncu PlayerAdded 'a bağlanan kodları çalmadan önce oluşturuldu.Bu durumu ele almak ve oyuncunun bir oyuna girdikten sonra skriptin oyuna eklenmesi durumlarını ele almak için, bir oyuncunun girişini ele almak için çağırabileceğiniz bir onPlayerAdded() işlevi oluşturun, oyuncunun girişini ele almak.

Parametreler

player: Player

Oyuna katılan oyuncunun bir örneği.


Kod Örnekleri

This example will print "A player has entered: " followed by the name of the player that enters/joins a game every time a player joins.

Players.PlayerAdded

local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)

PlayerMembershipChanged

Bu olay, oyun sunucusu bir oyuncunun üyeliğinin değiştiğini tanıdığında ateşlenir.Bununla birlikte, sunucunun sadece Premium modu kapatıldıktan sonra üyeliği kontrol etmeye ve güncellemeye çalışacağını unutmayın sonra Premium modu kapatıldı.Dolayısıyla, oyun oynarken kullanıcının Premium satın aldığı durumları hesaba katmak için, hala onlara Premium satın almalarını istemeniz gerekir; bu, zaten yükseltildiklerini ve ardından modal'ı kapattıklarında oyun sunucusunun üyeliklerini güncelleyip bu olayı tetikleyeceğini gösterecektir.

Premium'u deneyiminize öğrenmek ve monetize etmek ve katılım tabanlı ödeme sistemiyle para kazanmak için, Katılım Temelli Ödemeleri görün.

Ayrıca bakın:

Parametreler

player: Player

Kod Örnekleri

The function in the code sample runs after the game server confirms a player's membership has changed. It demonstrates how you can grant players access to Premium benefits (or revoke them) when their membership status changes.

Handling Premium Membership Changes

local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Grant the player access to Premium-only areas, items, or anything you can imagine!
print("Giving", player, "premium benefits!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Received event PlayerMembershipChanged. New membership = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)

PlayerRemoving

OyuncuKaldırma etkinliği, bir Player oyundan ayrılmadan hemen önce ateş eder.Bu olay, ChildRemoved 'nin yapacağı şeyden önce ateşlenir ve Players 'a biraz benzer şekilde davranır Instance.DescendantRemoving.Gerçek kaldırma öncesinde ateş olduğundan, bu olay bir Player ile oyuncu verilerini depolamak için kullanışlıdır GlobalDataStore.

Bu, oyunu bir oyuncu katıldığında ateşleyen Player.PlayerAdded etkinlik ile birlikte kullanılabilir.durum, yeni bir oyuncu oyuna katıldığında veya oyundan ayrıldığında her seferinde bir mesaj basmak için:


local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)

Bir oyuncunun karakterinin oyundan eklenipya da kaldırıldığını izlemek istiyorsanız, bir oyuncu yeniden doğar veya ölür gibi, Player.CharacterAdded ve Player.CharacterRemoving fonksiyonlarını kullanabilirsiniz.

Parametreler

player: Player

Oyundan ayrılan oyuncunun bir örneği.


Kod Örnekleri

This code will print "A player has left: ", followed by the player's name, every time a player leaves:

Players.PlayerRemoving

local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)

UserSubscriptionStatusChanged

Bu olay, oyun sunucusu belirli bir abonelik için kullanıcının durumunun değiştiğini algıladığında ateşlenir.Sunucunun sadece Abonelik Satın Alma modu kapatıldıktan sonra durumu kontrol etmeye ve güncellemeye çalıştığını unutmayın sonra .Oyun sırasında kullanıcının aboneliği dışında satın aldığı durumlarda hesaba katmak için, aboneliği satın almalarını hala istemeniz gerekir; uyarı, kullanıcının zaten abone olduğunu bildiren bir mesaj gösterir ve ardından modal'ı kapattıktan sonra oyun sunucusu abonelik durumunu günceller ve bu olayı tetikler.

Sadece sunucu kodları bu olayı alır notu.

Parametreler

user: Player

Abonelik durumu değişen kullanıcı.

subscriptionId: string

Durum değişikliği olan abone ID'si.