Players
*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.
Layanan Players ini berisi Player objek untuk klien yang terhubung saat ini ke server Roblox. Ini juga mengandung informasi tentang konfigurasi lokasi. Ini dapat mengambil informasi tentang pemain yang tidak terhubung ke server, seperti tampilan karakter, teman, dan thumbnail avatar.
Rangkuman
Properti
Mengaktifkan atau menonaktifkan tiga metode Players ( BanAsync() , UnbanAsync() , dan 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) yang merupakan API ban. Properti in
Menunjukkan apakah atau tidak mengaktifkan obrolan gelembung. Ini ditetapkan dengan metode Players:SetChatStyle() .
Menunjukkan apakah Class.Character|Characters akan muncul otomatis.
Menunjukkan apakah atau tidak chat klasik diaktifkan; ditetapkan oleh metode Players:SetChatStyle() .
Class.Player yang dijalankan oleh LocalScript
Jumlah maksimum pemain yang dapat berada di server.
Nomor pemain yang diinginkan untuk server.
Mengontrol jumlah waktu yang dibutuhkan untuk karakter pemain untuk respawn.
Metode
Membuat obrolan pemain lokal menyampaikan pesan yang diberikan.
Mengembalikan Player dengan UserId jika mereka berada dalam permainan.
Mengembalikan Class.Player yang cu Class.Player.Character|Character cu> cocok dengan kejadianyang diberikan, atau nil jika tidak dapat ditemukan.
Mengembalikan tabel dari semua objek Player yang terhubung saat ini.
Mengatur apakah BubbleChat dan ClassicChat digunakan, dan memberi tahu TeamChat dan Chat apa yang harus dilakukan.
Membuat obrolan LocalPlayer yang diberikan, yang hanya akan dibaca oleh pengguna di tim yang sama.
Larangan pengguna dari pengalaman Anda, dengan opsi untuk menentukan durasi, alasan, apakah larangan berlaku untuk seluruh alam semesta atau hanya tempat saat ini, dan banyak lagi. Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled , yang dapat Anda aktifkan dan nonaktifkan di Studio.
- CreateHumanoidModelFromDescription(description : HumanoidDescription,rigType : Enum.HumanoidRigType,assetTypeVerification : Enum.AssetTypeVerification):Model
Mengembalikan Model karakter yang dilengkapi dengan semua yang ditentukan dalam HumanoidDescription, dan adalah R6 atau R15 seperti yang ditentukan oleh RigType.
Mengembalikan set Model karakter dengan semua yang dilengkapi untuk cocok dengan avatar pengguna yang ditentukan oleh userid yang dilewati.
Mengambil catatan larangan dan pembatalkan larangan untuk setiap pengguna dalam alam semesta pengalaman. Metode ini diaktifkan dan dimatikan oleh Players.BanningEnabled property, yang dapat Anda aktifkan dan nonaktifkan di Studio.
Mengembalikan informasi tentang penampilan karakter dari pengguna yang diberikan.
Mengembalikan objek FriendPages yang berisi informasi untuk semua teman pemain yang diberikan.
Mengembalikan Deskripsi Manusia untuk pakaian tertentu, yang akan ditetapkan dengan bagian/warna/Animasi dari pakaian.
Mengembalikan HumanoidDescription yang menggambarkan semua yang dibutuhkan untuk avatar pengguna yang ditentukan oleh userid yang dilewati.
Mengirim pencarian ke situs Roblox untuk nama pengguna sebuah akun dengan UserId yang diberikan.
Mengirim pencarian ke situs Roblox untuk userId dari account dengan nama pengguna yang diberikan.
- GetUserThumbnailAsync(userId : number,thumbnailType : Enum.ThumbnailType,thumbnailSize : Enum.ThumbnailSize):Tuple
Mengembalikan URL konten pemain yang diberikan ukuran dan ketik, serta tombolBoolean yang menggambarkan apakah gambar siap untuk digunakan.
Mengizinkan pemain yang dilarang dari Players:BanAsync() atau Cloud APIPengguna Terbuka. Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled , yang dapat Anda aktifkan dan nonaktifkan di Studio.
Acara
Berapi-api saat seorang pemain memasuki game.
Diaktifkan ketika server game mengenali bahwa keanggotaan pemain telah berubah.
Dibakar saat seorang pemain akan meninggalkan game.
Diaktifkan ketika server game mengenali bahwa status pengguna untuk berlangganan tertentu telah berubah.
Properti
BanningEnabled
Mengaktifkan atau menonaktifkan tiga metode Players ( BanAsync() , UnbanAsync() , dan 1> Class.Players:GetBanHistoryAsync()|GetBanHistoryAsync()1> ) yang merupakan API ban. Properti in
BubbleChat
Properti BubbleChat menunjukkan apakah atau tidak mengaktifkan obrolan gelembung. Ini ditetapkan dengan metode Players:SetChatStyle() menggunakan枚 Enum.ChatStyle.
Ketika mode chat ini diaktifkan, game menampilkan obrolan di antarmuka pengguna chat di bagian atas kiri layar.
Ada dua mode obrolan lainnya, Players.ClassicChat dan mode obrolan di mana kedua obrolan klasik dan gelembung diaktifkan.
CharacterAutoLoads
Properti CharacterAutoLoads menunjukkan apakah Class.Character|Characters akan muncul secara otomatis.Nilai default adalah true.
Jika properti ini dinonaktifkan (false), pemain Class.Character|Characters tidak akan muncul sampai fungsi Player:LoadCharacter() dipanggil untuk setiap Player, termasuk ketika pemain bergabung dengan pengalaman.
Ini dapat berguna dalam pengalaman di mana pemain memiliki kehidupan yang terbatas, seperti game kompetitif di mana pemain tidak respawn sampai putaran permainan berakhir.
Contoh Kode
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
Menunjukkan apakah atau tidak chat klasik diaktifkan. Item ini ditetapkan oleh metode Players:SetChatStyle() menggunakan enum Enum.ChatStyle.
Ketika mode chat ini diaktifkan, game menampilkan obrolan di gelembung di atas kepala pengirim.
Ada dua mode obrolan lainnya, Players.BubbleChat dan mode obrolan di mana kedua obrolan klasik dan gelembung diaktifkan.
LocalPlayer
LocalPlayer adalah properti pembaca hanya yang mengacu pada Player whose kliennya menjalankan pengalaman.
Item ini hanya di definisi untuk LocalScripts dan ModuleScripts yang diperlukan oleh mereka, karena mereka berjalan di klien. Untuk server, di mana objek Script mengeksekusikan kode mereka, item ini adalah 1> nil1> .
MaxPlayers
Properti MaxPlayers menentukan jumlah maksimum pemain yang dapat ada di server. Properti ini hanya dapat diatur melalui pengaturan lokasi khusus di Dashboard Pembuat atau melalui Pengaturan Game.
PreferredPlayers
Properti PreferredPlayers menunjukkan jumlah pemain yang akan diisi oleh pembuat pertandingan Roblox. Angka ini akan kurang dari jumlah pemain maksimum ( Players.MaxPlayers ) yang didukung oleh pengalaman.
RespawnTime
Propiedad RespawnTime mengontrol waktu, dalam detik, waktu dibutuhkan pemain untuk respawn ketika Players.CharacterAutoLoads benar. Ini bervariasi dengan 5.0 detik.
Ini berguna ketika Anda ingin mengubah waktu yang dibutuhkan untuk respawn berdasarkan jenis pengalaman Anda tetapi tidak ingin menangani pemain yang muncul secara individual.
Meskipun property ini dapat diatur dari dalam Script , Anda dapat lebih mudah menetapkannya secara langsung di objek Players di jendela Explorer Studio.
UseStrafingAnimations
Metode
Chat
Fungsi ini membuat pemain lokal mengirim pesan yang diberikan. Karena item ini dilindungi, mencoba menggunakannya di Script atau LocalScript akan menyebabkan kesalahan.
Sebagai gantinya, ketika membuat sistem obrolan khusus, atau sistem yang memerlukan akses ke obrolan, Anda dapat menggunakan fungsi Chat saja.
Parameter
Pesan yang dibicarakan.
Memberikan nilai
Contoh Kode
-- 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
Fungsi ini mencari setiap player di Players untuk salah satu yang memiliki Player.UserId yang cocok dengan UserId yang diberikan. Jika pemain seperti itu tidak ada, itu hanya mengembalikan 1> nil1> . Ini sama dengan fungsi berikut:
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
Metode ini berguna untuk menemukan pembeli produk pengembang menggunakan MarketplaceService.ProcessReceipt, yang memberikan tabel yang termasuk UserId pembeli dan bukan referensi ke objek Pemain. kebanyakan game akan memerlukan referensi ke pemain untuk menghost produk.
Parameter
Class.Player.UserId dari pemain yang ditentukan.
Memberikan nilai
Contoh Kode
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
local MarketplaceService = game:GetService("MarketplaceService")
local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
-- Data store for tracking purchases that were successfully processed
local purchaseHistoryStore = DataStoreService:GetDataStore("PurchaseHistory")
-- Table setup containing product IDs and functions for handling purchases
local productFunctions = {}
-- ProductId 123123 for a full heal
productFunctions[123123] = function(_receipt, player)
-- Logic/code for player buying a full heal (may vary)
if player.Character and player.Character:FindFirstChild("Humanoid") then
-- Heal the player to full health
player.Character.Humanoid.Health = player.Character.Humanoid.MaxHealth
-- Indicate a successful purchase
return true
end
end
-- ProductId 456456 for 100 gold
productFunctions[456456] = function(_receipt, player)
-- Logic/code for player buying 100 gold (may vary)
local stats = player:FindFirstChild("leaderstats")
local gold = stats and stats:FindFirstChild("Gold")
if gold then
gold.Value = gold.Value + 100
-- Indicate a successful purchase
return true
end
end
-- The core 'ProcessReceipt' callback function
local function processReceipt(receiptInfo)
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local purchased = false
local success, result, errorMessage
success, errorMessage = pcall(function()
purchased = purchaseHistoryStore:GetAsync(playerProductKey)
end)
-- If purchase was recorded, the product was already granted
if success and purchased then
return Enum.ProductPurchaseDecision.PurchaseGranted
elseif not success then
error("Data store error:" .. errorMessage)
end
-- Determine if the product was already granted by checking the data store
local playerProductKey = receiptInfo.PlayerId .. "_" .. receiptInfo.PurchaseId
local success, isPurchaseRecorded = pcall(function()
return purchaseHistoryStore:UpdateAsync(playerProductKey, function(alreadyPurchased)
if alreadyPurchased then
return true
end
-- Find the player who made the purchase in the server
local player = Players:GetPlayerByUserId(receiptInfo.PlayerId)
if not player then
-- The player probably left the game
-- If they come back, the callback will be called again
return nil
end
local handler = productFunctions[receiptInfo.ProductId]
local success, result = pcall(handler, receiptInfo, player)
-- If granting the product failed, do NOT record the purchase in datastores.
if not success or not result then
error("Failed to process a product purchase for ProductId: " .. tostring(receiptInfo.ProductId) .. " Player: " .. tostring(player) .. " Error: " .. tostring(result))
return nil
end
-- Record the transaction in purchaseHistoryStore.
return true
end)
end)
if not success then
error("Failed to process receipt due to data store error.")
return Enum.ProductPurchaseDecision.NotProcessedYet
elseif isPurchaseRecorded == nil then
-- Didn't update the value in data store.
return Enum.ProductPurchaseDecision.NotProcessedYet
else
-- IMPORTANT: Tell Roblox that the game successfully handled the purchase
return Enum.ProductPurchaseDecision.PurchaseGranted
end
end
-- Set the callback; this can only be done once by one script on the server!
MarketplaceService.ProcessReceipt = processReceipt
GetPlayerFromCharacter
Fungsi ini mengembalikan Player yang terkait dengan Player.Character yang diberikan, atau nil jika tidak dapat ditemukan. Ini sama dengan fungsi berikut:
local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end
Metode ini sering digunakan ketika beberapa acara dalam karakter pemain menembak (seperti Class.Humanoid mereka) Humanoid . Such an event mungkin tidak langsung mengacak objek Pemain, tetapi metode ini memberikan akses mudah. Inverse dari fungsi ini dapat dijelaskan sebagai mendapatkan karakter pemain. Untuk melakuk
Parameter
Sebuah instansi karakter yang ingin Anda dapatkan dari.
Memberikan nilai
Contoh Kode
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
Metode ini mengembalikan tabel dari semua objek Player yang terhubung saat ini. Fungsinya sama dengan Instance:GetChildren() , kecuali bahwa itu hanya mengembalikan objek Player yang ditemukan di bawah 1> Class.Players
local Players = game:GetService("Players")for _, player in Players:GetPlayers() doprint(player.Name)end
Skrip yang terhubung ke Players.PlayerAdded sering mencoba untuk memproses setiap pemain yang terhubung ke game. Metode ini berguna untuk mengiterasi pemain yang sudah terhubung ke game yang tidak akan menembak PlayerAdded . Menggunakan metode ini memastikan bahwa tidak ada pemain yang terlewatkan!
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)
Memberikan nilai
Tabel yang berisi semua pemain di server.
Contoh Kode
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
Fungsi ini menetapkan apakah BubbleChat dan ClassicChat sedang digunakan, dan memberi tahu TimChat dan Chat apa yang harus dilakukan menggunakan Enum.ChatStyle enum. Karena item ini dilindungi, mencoba menggunakannya di Script atau LocalScript akan menyebabkan kesalahan.
Fungsi ini digunakan secara internal saat mode chat ditetapkan oleh game.
Parameter
Gaya obrolan yang ditentukan telah atur.
Memberikan nilai
Contoh Kode
-- 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
Fungsi ini membuat obrolan Players.LocalPlayer mengirim pesan yang diberikan, yang hanya akan dibaca oleh pengguna di tim yang sama. Karena item ini dilindungi, mencoba menggunakannya dalam Script atau LocalScript akan menyebabkan kesalahan.
Fungsi ini digunakan secara internal saat Players.LocalPlayer mengirim pesan ke tim mereka.
Parameter
Pesan yang sedang dibicarakan.
Memberikan nilai
Contoh Kode
-- 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
Metode Players:BanAsync() memungkinkan Anda untuk dengan mudah melarang pengguna yang melanggar aturan pengalaman Anda. Anda dapat menentukan durasi larangan, mengaktifkan larangan untuk menyebar ke account alternatif yang diduga, dan
Pemblokiran dan Pesan
Pengguna yang dilarang akan segera diusir dan tidak boleh bergabung kembali ke pengalaman Anda. Mereka akan disajikan dengan tampilan modalkan yang menunjukkan waktu tersisa di ban mereka dan DisplayReason . Sistem backend Roblox akan mengusir pengguna di semua server dari
Tempat dan Alam Semesta
Secara default, larangan berlaku untuk setiap tempat di dalam alam semesta. Untuk menghindari larangan hanya ke tempat dari mana API ini dipanggil, konfigurasikan ApplyToUniverse untuk false . Namun, jika pengguna dilarang di tempat awal alam semesta, itu secara efektif menghasilkan pengguna dikecualikan dari selur
Rekening Alternatif
Pengguna sering bermain di bawah beberapa rekening yang berbeda, dikenal sebagai rekening alternatif atau rekening alternatif, yang kadang-kadang digunakan untuk mengatasi pemblokiran akun. Untuk membantu Anda menjaga pengguna yang dilarang keluar, perilaku default dari API ini akan menyebarkan semua larangan dari account source yang Anda
Durasi Pengecualian
Tidak semua pelanggaran sama, jadi tidak semua larang
Kesalahan dan Throttling
Metode ini menyebabkan panggilan HTTP ke layanan backend yang berada di bawah pengawasan dan mungkin gagal. Jika Anda menelepon metode ini dengan lebih dari satu UserId , metode ini akan mencoba untuk membuat panggilan HTTP untuk setiap ID
HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception
Pesan akan selalu mencakup failure for UserId {} jika itu adalah kesalahan HTTP.
Persyaratan Pihak Klient
Karena risiko yang terkait dengan melarang pengguna, metode ini hanya dapat diakses di server pengalaman backend (panggilan client akan mengakibatkan kesalahan). Anda dapat menguji API ini di Studio, selama kolaborasi kreasi, atau dalam tes tim, tetapi larangan tidak akan diterapkan ke produksi.
API ini menggunakan User Restrictions Open Cloud API . Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.
Parameter
UserIds (diperlukan; array) — Array dari UserIds pemain untuk dilarang. Ukuran maksimum adalah 50.
ApplyToUniverse (opsional; boolean) — Apakah larangan menyebar ke semua tempat dalam alam semesta. Standar adalah true.
Duration (diperlukan; angka) — Durasi blokir, dalam detik. Ban permanen harus memiliki nilai -1 . 0 dan semua nilai negatif lainnya tidak valid.
DisplayReason (diperlukan; string) — Pesan yang akan ditampilkan kepada pengguna saat mereka mencoba dan gagal bergabung dengan pengalaman. Panjang string maksimum adalah 400 .
PrivateReason (diperlukan; string) — Pesan internal yang akan dikembalikan saat menanyakan sejarah larangan pengguna. Panjang string maksimum adalah 1000.
ExcludeAltAccounts (opsional; boolean) — Saat true , Roblox tidak mencoba untuk melarang akun alt. Standar adalah false.
Memberikan nilai
Contoh Kode
local Players = game:GetService("Players")
if shouldBeBanned(player: 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
Mengembalikan Model karakter yang dilengkapi dengan semua yang ditentukan dalam HumanoidDescription, dan adalah R6 atau R15 seperti yang ditentukan oleh RigType.
Parameter
Menguraikan tampilan karakter yang dikembalikan.
Menentukan apakah karakter yang dikembalikan akan menjadi R6 atau R15.
Verifikasi jenis aset menentukan apakah fungsi ini akan memuat model atau tidak (Anda harus menetapkan ini sebagai Selalu kecuali jika Anda ingin memuat aset non-katalog).
Memberikan nilai
Model Karakter Humanoid.
Contoh Kode
game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent = game.Workspace
CreateHumanoidModelFromUserId
Mengembalikan set Model karakter dengan semua yang dilengkapi untuk mencocokkan avatar pengguna yang ditentukan oleh R6 atau R15. Ini termasuk apakah karakter itu saat ini R6 atau R15.
Parameter
ID pengguna Roblox. (UserId adalah nomor di profil pengguna, misalnya www.roblox.com/users/1/profile).
Memberikan nilai
Model Karakter Humanoid.
Contoh Kode
game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace
GetBanHistoryAsync
Mengambil catatan larangan dan unlarangan histori siapa pun di dalam alam semesta pengalaman. Metode ini mengembalikan instansi BanHistoryPages yang mewarisi dari Pages . Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled , yang dapat Anda aktifkan dan nonaktifkan di Studio.
Panggilan fungsi ini hanya akan berhasil di server game produksi dan tidak di perangkat klien atau di Studio.
API ini menggunakan User Restrictions Open Cloud API . Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.
Parameter
Memberikan nilai
Lihat BanHistoryPages untuk referensi kembali.
GetCharacterAppearanceInfoAsync
Fungsi ini mengembalikan informasi tentang avatar pemain (ignorasi perlengkapan) di situs Roblox dalam bentuk kamus. Ini bukan untuk dibingungkan dengan GetCharacterAppearanceAsync , yang sebenarnya memuat aset yang dijelaskan oleh metode ini. Anda dapat menggunakan <
<tr><td><code>aset</code></td><td>tabel (lihat di bawah)</td><td>Menggambarkan aset yang dipakai (topi, bagian tubuh, dll)</td></tr><tr><td><code>warna tubuh</code></td><td>tabel (lihat di bawah)</td><td>Menggambarkan nilai BrickColor untuk setiap lengan</td></tr><tr><td><code>warna tubuh3s</code></td><td>tabel (lihat di bawah)</td><td>Menggambarkan instansi Color3 untuk setiap lengan yang mungkin tidak cocok dengan bodyColors</td></tr><tr><td><code>defaultPantsApplied</code></td><td>boolean</td><td>Menguraikan apakah celana default diterapkan</td></tr><tr><td><code>defaultShirtApplied</code></td><td>boolean</td><td>Menguraikan apakah pakaian default diterapkan</td></tr><tr><td><code>emotes</code></td><td>tabel (lihat di bawah)</td><td>Menggambarkan animasi emote yang dipakai</td></tr><tr><td><code>jenis Avatar Pemain</code></td><td>string</td><td>“R15” atau “R6”</td></tr><tr><td><code>skala</code></td><td>tabel (lihat di bawah)</td><td>Menggambarkan berbagai faktor skalasi tubuh</td></tr>
Nama | Jenis | Deskripsi |
---|
Aset Sub-Table
Tabel assets adalah matriks tabel berisi kunci berikut yang menggambarkan aset yang saat ini dilengkapi oleh pemain:
<tr><td><code>id</code></td><td>nomor</td><td>ID aset dari aset yang dilengkapi</td></tr><tr><td><code>jenis aset</code></td><td>tabel</td><td>Tabel dengan <code>nama</code> dan <code>id</code> kolom, masing-masing menggambarkan jenis aset yang dilengkapi ("Topi", "Wajah", dll)</td></tr><tr><td><code>nama</code></td><td>string</td><td>Nama aset yang dipakai</td></tr>
Nama | Jenis | Deskripsi |
---|
Skala Sub-Tabel
Tabel scales memiliki kunci berikut, masing-masing menunjukkan propperti skal Humanoid yang sesuai: bodyType, 1> head1>, 4> height4>, 7> proportion7>, 0> depth0>, 3>
Warna Tubuh Sub-Table
Tabel bodyColors memiliki kunci berikut, masing-masing merupakan nomor yang sesuai dengan ID BrickColor yang dapat digunakan dengan
Parameter
The * user id of the specified pemain.
Memberikan nilai
Sebuah kamus yang berisi informasi tentang penampilan karakter dari pengguna yang diberikan.
Contoh Kode
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
Fungsi GetFriends Players mengembalikan objek FriendPages yang berisi informasi untuk semua teman yang diberikan pengguna. Elemen dalam objek FriendPages adalah tabel dengan berbagai lapangan:
<tr><td>Pengenal</td><td>int64</td><td>UserId teman</td></tr><tr><td>Nama Pengguna</td><td>string</td><td>Nama nama penggunateman</td></tr><tr><td>Nama Layar</td><td>string</td><td>Class.Player.DisplayName|nama显示 dari teman.</td></tr>
Nama | Jenis | Deskripsi |
---|
Lihat sampel kode untuk cara mudah untuk beriterasi atas semua teman pemain.
Parameter
ID pengguna dari pemain yang ditentukan.
Memberikan nilai
Contoh Kode
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
Mengembalikan Deskripsi Manusia untuk outfit yang ditentukan, yang akan ditetapkan dengan bagian / warna / Animasi dll dari pakaian. Pakaian dapat dibuat oleh pengguna, atau itu bisa menjadi pakaian untuk bundel yang dibuat oleh Roblox.
Parameter
Id dari pakaian untuk mana Deskripsi Manusia dicari.
Memberikan nilai
Deskripsi Humanoid diinisialisasi dengan spesifikasi untuk item yang dilewati dalam outfitId.
Contoh Kode
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
Mengembalikan Deskripsi Manusia yang menguraikan semua yang dibawa untuk avatar pengguna yang ditentukan oleh userid yang dilewati. Juga termasuk skala dan warna tubuh.
Parameter
ID pengguna Roblox. (UserId adalah nomor di profil pengguna, misalnya www.roblox.com/users/1/profile).
Memberikan nilai
Deskripsi Humanoid diinisialisasi dengan spesifikasi avatar pengguna.
Contoh Kode
game.Players:CreateHumanoidModelFromDescription(game.Players:GetHumanoidDescriptionFromUserId(1), Enum.HumanoidRigType.R15).Parent = game.Workspace
GetNameFromUserIdAsync
Fungsi GetNameFromUserIdAsync Players akan mengirim pemintaian ke situs Roblox menanyakan apa nama pengguna dari account dengan UserId yang diberikan.
Metode ini menghasilkan kesalahan jika tidak ada akun yang tersedia dengan UserId yang diberikan. Jika Anda tidak yakin bahwa akun tersebut ada, sebaiknya mengemas panggilan ke fungsi ini dengan pcall . Selain itu, Anda dapat secara manual menyimpan hasil untuk membuat panggilan masa depan dengan UserId yang sama dengan cepat. Lihat contoh kode untuk belajar lebih lanj
Parameter
Class.Player.UserId dari pemain yang ditentukan.
Memberikan nilai
Nama pengguna dengan Player.UserId yang ditentukan.
Contoh Kode
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"
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
Fungsi ini akan mengirim pencarian ke situs Roblox menanyakan apa Class.Player.UserId dari account dengan nama Player yang diberikan.
Metode ini menghasilkan kesalahan jika tidak ada akun yang tersedia dengan nama pengguna yang diberikan. Jika Anda tidak yakin bahwa akun tersebut ada, sebaiknya mengemas panggilan ke fungsi ini dengan pcall . Selain itu, Anda dapat menyimpan hasil secara manual untuk membuat panggilan masa depan dengan nama pengguna yang sama. Lihat contoh kode untuk belajar lebih lanj
Parameter
Nama pengguna pemain yang ditentukan.
Memberikan nilai
Class.Player.UserId dari pengguna whose name is specified.
Contoh Kode
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"
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
Fungsi ini mengembalikan URL konten dari avatar pemain yang diberikan UserId , ukuran gambar yang diinginkan sebagai Enum.ThumbnailSize枚, dan jenis yang diinginkan sebagai Enum.ThumbnailType枚. Itu juga mengembalikan boBoolean menggambarkan apakah gambar siap untuk digunakan.
Sebagian besar waktu, metode ini digunakan dengan ImageLabel.Image atau Decal.Texture untuk menampilkan gambar avatar pengguna dalam pengalaman.
Parameter
Class.Player.UserId dari pemain yang ditentukan.
Sebuah Enum.ThumbnailType menggambarkan jenis thumbnail.
Sebuah Enum.ThumbnailSize spesifikasi ukuran thumbnail.
Memberikan nilai
Sebuah template mengandung URL konten pengguna berdasarkan parameter yang ditentukan, dan sebuah bool menggambarkan apakah gambar siap untuk digunakan atau tidak.
Contoh Kode
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
Membatalkan pemblokiran pemain dari Players:BanAsync() atau User Restrictions Open Cloud API. Metode ini diaktifkan dan dinonaktifkan oleh properti Players.BanningEnabled, yang dapat Anda aktifkan dan nonaktifkan di Studio.
Seperti Players:BanAsync() , metode ini mengambil kata config yang akan memungkinkan Anda untuk meng-bulk unban pengguna. Ini mengkonfigurasi pengguna yang tidak dilarang dan skala dari mana mereka tidak dilarang.
Unbans hanya akan berlaku pada larangan dengan jangkauan yang sama ApplyToUniverse . Misalnya, unban dengan ApplyToUniverse set ke true tidak akan menghalangi blokirsebelumnya dengan 1> ApplyToUniverse
Metode ini menyebabkan panggilan HTTP ke layanan backend, yang dibatasi dan mungkin gagal. Jika Anda menelepon metode ini dengan beberapa UserIds, metode ini akan mencoba untuk
Karena risiko yang terkait dengan melarang pengguna, metode ini hanya dapat diakses di server game backend. Panggilan sisi klien akan menghasilkan kesalahan. Anda dapat menguji API ini di Studio, Team Create, dan Team Test, tetapi larangan tidak akan diterapkan ke produksi. Panggilan fungsi ini hanya akan mencoba permintaan ban di server game produksi dan bukan di Studio testing.
API ini menggunakan User Restrictions Open Cloud API . Anda akan dapat menggunakan API ini untuk mengelola larangan Anda di aplikasi pihak ketiga.
Parameter
<tbody><tr><td><code>UserIds</code></td><td>array</td><td>UserIDs untuk diizinkan masuk ke pengalaman (s). Ukuran maksimum adalah <code>50</code> .</td></tr><tr><td><code>Terapkan ke Universe</code></td><td>boolean</td><td>Menyebarkan unban ke semua tempat di alam semesta ini.</td></tr></tbody>
Nama | Jenis | Deskripsi |
---|
Memberikan nilai
Contoh Kode
local Players = game:GetService("Players")
if shouldBeUnbanned(player: 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
Acara
PlayerAdded
Acara PlayerAdded terjadi ketika seorang pemain memasuki game. Ini digunakan untuk menyetel acara ketika seorang pemain bergabung dengan game, seperti memuat data GlobalDataStore pemain tersimpan.
Ini dapat digunakan bersama dengan acara Players.PlayerRemoving, yang berlari ketika seorang pemain akan meninggalkan game. kejadian, jika Anda ingin mencetak pesan setiap kali pemain baru bergabung atau meninggalkan game:
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)
Jika Anda ingin melacak kapan karakter pemain ditambahkan atau dihapus dari game, seperti ketika pemain respawns atau mati, Anda dapat menggunakan fungsi Player.CharacterAdded dan Player.CharacterRemoving.
Catat bahwa acara ini tidak berfungsi seperti yang diharapkan dalam mode Bermain karena pemain dibuat sebelum skrip yang terhubung ke PlayerAdded . Untuk menangani kasus ini, serta kasus di mana skrip ditambahkan ke game setelah pemain memasuki, buat fungsi onPlayerAdded() yang dapat Anda panggil untuk menang
Parameter
Sebuah instansi dari pemain yang bergabung dengan game.
Contoh Kode
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)
PlayerMembershipChanged
Acara ini diaktifkan ketika server game mengenali bahwa kesetiaan seorang pemain telah berubah. Catat, bagaimanapun, bahwa server hanya akan mencoba untuk memeriksa dan menyetujui keanggotaan setelah Premium modal telah ditutup. Jadi, untuk menghitung kasus di mana peng
Untuk mempelajari lebih lanjut tentang dan mengincorporasi Premium ke pengalaman Anda dan menghasilkan uang dengan sistem pembayaran berdasar pada keterlibatan, lihat Pembayaran Berdasar Pada Keterlibatan .
Lihat juga:
- MarketplaceService:PromptPremiumPurchase() , digunakan untuk mengundang pengguna untuk membeli Premium
- MarketplaceService.PromptPremiumPurchaseFinished , menyala saat UI pembelian Premium ditutup
Parameter
Contoh Kode
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
Acara PlayerRemoving menembakkan tepat sebelum Player meninggalkan game. Acara ini menembakkan sebelum ChildRemoved melakukan di Players
Ini dapat digunakan bersama dengan acara Player.PlayerAdded, yang menyebutkan ketika seorang pemain bergabung dengan game. kejadian, untuk mencetak pesan setiap kali seorang pemain bergabung atau meninggalkan game:
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)
Jika Anda ingin melacak kapan karakter pemain ditambahkan atau dihapus dari game, seperti ketika pemain respawns atau mati, Anda dapat menggunakan fungsi Player.CharacterAdded dan Player.CharacterRemoving.
Parameter
Sebuah instansi dari pemain yang meninggalkan game.
Contoh Kode
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)
UserSubscriptionStatusChanged
Acara ini diaktifkan ketika server game mengenali bahwa status pengguna untuk berlangganan tertentu telah berubah. Catat bahwa server hanya mencoba untuk memeriksa dan menyetel status setelah pembelian berlangganan; prompt menunjukkan pesan memberi tahu pengguna bahwa mereka sudah ber
Catat bahwa hanya server script yang menerima acara ini.
Parameter
Pengguna whose status langganan telah berubah.
IDlangganan dengan perubahan status.