Pengguna dan pemain

*Konten ini diterjemahkan menggunakan AI (Beta) dan mungkin mengandung kesalahan. Untuk melihat halaman ini dalam bahasa Inggris, klik di sini.

Ketika pengguna bergabung dengan pengalaman, Roblox mewakili mereka sebagai Pemain di model data.Objek berisi informasi tentang pengguna yang universal di antara pengalaman, seperti nama pengguna, daftar teman, karakter avatar yang disimpan , dan ketikkeanggotaan Roblox, serta properti, metode, dan peristiwa yang mempengaruhi siklus kehidupan pengguna antara bergabung dan meninggalkan pengalaman Anda.

Layanan Players berisi semua instansi Player dalam pengalaman.Setiap objek Player mewakili pengguna dalam pengalaman, dan orang tuanya empat wadah penting yang dapat Anda gunakan untuk menyesuaikan pengalaman pengguna: Backpack , StarterGear , PlayerGui , dan PlayerScripts .

Siklus Hidup

Skrip klien dan sisi server dapat keduanya terhubung ke peristiwa Players.PlayerAdded dan Players.PlayerRemoved untuk melakukan tindakan dalam respons terhadap siklus kehidupan objek Player.Mereka juga dapat terhubung ke Player.CharacterAdded , Player.CharacterRemoving , dan Humanoid.Died peristiwa untuk melakukan tindakan terkait permainan saat karakter muncul, dihapus, dan mati.

Gunakan skrip untuk mengakses layanan terkait server, seperti penyimpanan data untuk mengambil dan menyimpan data saat pengguna bergabung atau meninggalkan.Gunakan LocalScripts jika klien perlu membuat dan menghapus instansi permainan yang terikat dengan pengguna baru, seperti tampilan GUI untuk statistik pengguna di papan peringkat khusus.

Penggabungan pengguna

Ketika klien terhubung ke pengalaman, objek terkaitnya Player menyalin ke layanan Players .The Players.PlayerAdded mewakili pengguna yang bergabung dengan pengalaman.Beberapa contoh kasus penggunaan termasuk memuat data pengguna, menugaskan tim, dan mengubah pakaian karakter pengguna.Acara Players.PlayerAdded melewati objek Player pengguna yang bergabung, yang dapat Anda gunakan saat memanggil fungsi lain, seperti penyimpanan data dan RemoteEvent objek.

Memuat data pengguna saat bergabung

Untuk memuat data pengguna saat mereka bergabung dengan pengalaman, gunakan acara Players.PlayerAdded di Script .Contoh berikut Script mendengarkan acara dan mencoba untuk mengambil data pengguna menggunakan ID pengguna mereka sebagai kunci penyimpanan data.Setelah berhasil mengambil data pengguna, Anda dapat menggunakannya untuk memuat kemajuan dan statistik pengguna.


local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Baca kunci unitdata
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Lakukan tindakan lebih lanjut dengan data saat ini
end)

Pengguna pergi

Ketika klien terputus dari pengalaman, server menghancurkan objek terkait Player dari layanan Players.Peristiwa Players.PlayerRemoving mewakili pengguna yang meninggalkan pengalaman.Beberapa contoh penggunaan termasuk menyimpan data pengguna, menghapus statistik mereka dari papan skor, dan menghancurkan salah satu model mereka, seperti rumah mereka.Peristiwa Players.PlayerRemoving melewati objek Player pengguna yang pergi, yang dapat Anda gunakan saat memanggil fungsi lain, seperti penyimpanan data dan RemoteEvent objek.

Perhatikan bahwa acara disebut Player.PlayerRemoving , bukan Player.PlayerRemoved , karena "dikeluarkan" berarti bahwa objek Player sudah dihapus dan karena itu tidak dapat diakses oleh skrip.

Simpan data pengguna saat keluar

Untuk menyimpan data pengguna saat mereka meninggalkan pengalaman, gunakan acara Players.PlayerRemoving di Script.Contoh berikut Script mendengarkan acara dan mencoba menyimpan data pengguna menggunakan ID pengguna mereka sebagai kunci penyimpanan data.

Skrip di ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Dapatkan status data pemain di dalam game
local currentData = getCurrentData(player)
-- tokoke penyimpanan data
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Pembangkitan karakter

Model pengguna Player.Character mewakili avatar mereka.Secara default, Player.CharacterAutoLoads adalah benar, dan model karakter pengguna secara otomatis muncul saat mereka bergabung dengan pengalaman.Jika Player.CharacterAutoLoads palsu, maka Anda perlu memanggil Player:LoadCharacter() untuk menyebarkan karakter secara manual.

Ketika spawn pengguna Player.Character muncul, Skrip dan Skrip Lokal di StarterCharacterScripts kloning ke model karakter dan peristiwa Player.CharacterAdded terjadi.Acara Player.CharacterAdded memindahkan model karakter baru ke pendengar acara mana pun, yang dapat Anda gunakan untuk menemukan objek karakter Humanoid dan mengubah perilakunya.Sebagai contoh, Anda dapat menggunakan Humanoid:ApplyDescription() untuk mengubah pakaian avatar dan Humanoid.WalkSpeed atau Humanoid.JumpHeight untuk memodifikasi gerakan avatar.

Karakter dihapus

Ketika bagian tubuh pemain Humanoid mati, bagian tubuhnya jatuh ke tanah dan peristiwa Humanoid.Died terjadi.Server secara otomatis menghapus model karakter dan semua skrip di dalamnya setelah jumlah waktu yang ditentukan oleh properti Players.Respawntime .Anda dapat menggunakan acara Player.CharacterRemoving untuk mengatur ulang objek lain yang terkait dengan karakter, seperti kepemilikan jaringan kendaraan yang mereka kendarai.

Hitung kematian pemain

Anda dapat menggunakan acara Humanoid.Died untuk menangani skor untuk membunuh atau membuat model ragdoll khusus.Berikut adalah Script yang terhubung ke Player.CharacterAdded untuk mengambil model karakter setiap pengguna, lalu terhubung ke objek karakter Humanoid .Ketika acara humanoid Humanoid.Died terjadi, skrip meningkatkan jumlah kali humanoid pengguna meninggal dan menampilkan jumlah itu.

Skrip di ServerScriptService

game:GetService("Players").PlayerAdded:Connect(function(player)
local deaths = 0
player.CharacterAdded:Connect(function(character)
local humanoid = character:WaitForChild("Humanoid")
humanoid.Died:Connect(function()
deaths += 1
print(player.Name .. " death count: " .. deaths)
end)
end)
end)

Larang pengguna

Untuk memastikan kesopanan dan permainan adil dalam pengalaman Anda, Anda dapat melarang pengguna yang melanggar aturan pengalaman dan panduan komunitas Anda.Anda dapat mengubah durasi larangan, pesan larangan, dan bahkan memperpanjang larangan ke akun alternatif potensial.Saat menggunakan fitur ini, Anda juga harus mengikuti panduan untuk melarang dan pesan .

Untuk instruksi implementasi dan penggunaan, lihat Players.BanAsync .

Petunjuk banned

Saat menerapkan larangan dalam pengalaman Anda, patuhi panduan berikut:

  • Aturan pengalaman tidak boleh bertentangan dengan Standar Komunitas Roblox dan Syarat Penggunaan .
  • Pembuat harus dengan jelas menyatakan aturan pengalaman mereka di suatu tempat yang dapat diakses oleh semua pengguna.
  • Pembuat harus menerapkan aturan pengalaman mereka secara adil dan tidak secara arbitrer menargetkan pengguna tertentu.
  • Pengguna dapat mengajukan banding kepada pembuat langsung jika mereka percaya larangan mereka tidak benar.
    • Roblox tidak akan menengahi keluhan ini, kecuali jika pengguna percaya bahwa aturan pengalaman kreatoratau pelaksanaan aturan mereka melanggar Standar Komunitas .
  • Roblox dapat menyaring pengalaman jika ada alasan untuk percaya bahwa aturan pengalaman seorang kreatoratau penegakan aturan mereka melanggar Standar Komunitas .

Panduan pesan

Ketika pengguna dilarang, mereka menerima modul kesalahan yang menampilkan informasi seperti panjang larangan dan alasannya.Dalam pesan yang disaring teks, Anda dapat menyertakan informasi tambahan seperti apel atau informasi kontak selama Anda memenuhi Standar Komunitas Roblox .

Sebagai contoh, dalam pesan larangan Anda, Anda diizinkan untuk merujuk nama merek dan platform:

  • “Kunjungi Discord di halaman grup/pengalaman saya”
  • “Kirimi saya pesan di Twitter atau X”

Menyebutkan informasi pribadi atau tautan langsung tidak diizinkan di bidang pesan ini.Ini termasuk memposting nama pengguna atau tangan khusus, atau memberikan tautan langsung ke server Discord atau akun X.

Wadah

Objek Player menyimpan beberapa wadah penting:

Ransel

Kontainer Player.Backpack menyimpan inventaris pengguna.Objek Tool di layar pengguna Backpack ditampilkan di inventaris mereka di bagian bawah layar mereka.Jika pengguna memilih Tool dari inventaris, mereka melengkapinya, dan itu pindah dari Player.Backpack ke Player.Character.

Ketika spawn pengguna Player.Character muncul, konten layanan StarterPack dan klon mereka Player.StarterGear ke Player.Backpack mereka.Ketika karakter meninggal, klien menghancurkan Backpack dan menggantikannya dengan yang baru.

The Backpack juga menyimpan dan menjalankan Scripts dan LocalScripts yang dapat diakses oleh klien dan server.

Roblox menyediakan antarmuka bagi pemain untuk mengakses Backpack dan inventaris mereka di bagian bawah layar.Untuk menonaktifkan GUI ransel default Roblox dan menggantikannya dengan ransel Anda memiliki, panggil StarterGui:SetCoreGuiEnabled() di dalam LocalScript.Untuk informasi lebih lanjut, lihat StarterGui .

Peralatan Pemula

Kontainer StarterGear menyalin kontennya ke pengguna Player.Backpack ketika karakternya muncul.Selain itu, jika tempat Anda mengizinkan peralatan dan pengguna memiliki perlengkapan, objek Tool dari klon peralatan mereka ke Player.StarterGear ketika mereka muncul.

Tidak seperti StarterPack , Player.StarterGear bukan layanan tetapi lebih tepatnya anak dari setiap objek Player , jadi isinya khusus pengguna.Setiap pengguna dapat memiliki objek berbeda Tool di dalam Player.StarterGear mereka.Untuk menggunakan Player.StarterGear , aktifkan Gear di halaman pengaturan pengalaman Anda di bawah Izin .Di halaman izin, Anda dapat mengaktifkan oleh peralatan dengan ketik.Untuk menonaktifkan perlengkapan, nonaktifkan ketik.

Selalu uji permainan setelah menambahkan Peralatan kepada mereka untuk memeriksa bahwa pengguna tidak dapat dengan mudah menyalahgunakannya di sana.Peralatan termasuk Script objek dan memungkinkan pemain melakukan tindakan yang mungkin tidak Anda pertimbangkan.Sebagai contoh, peralatan navigasi mungkin memungkinkan pemain untuk mengakses bagian peta yang tidak Anda inginkan.Senjata memungkinkan pemain dengan peralatan untuk merusak pemain lain, mungkin tanpa balas dendam atau balas dendam.

PemainGui

Kontainer PlayerGui menyimpan objek yang membuat GUI pemain.Jika ScreenGui adalah keturunan dari PlayerGui , maka setiap GuiObject di dalam ScreenGui ditampilkan di layar pemain.Setiap LocalScript berjalan saat kloning ke PlayerGui .Ketika spawn Player.Character pemain untuk pertama kalinya, semua konten StarterGui secara otomatis disalin ke PlayerGui pemain.

Jika Players.CharacterAutoLoads diatur ke false, karakter tidak muncul, dan konten StarterGui tidak disalin sampai Player:LoadCharacter() dipanggil.Jika StarterGui.ResetPlayerGuiOnSpawn diatur ke benar, setiap kali karakter pemain muncul kembali, semua konten dari karakter pemain itu PlayerGui dihapus dan diganti dengan konten dari StarterGui.

Skrip Pemain

Ketika pengguna bergabung dengan pengalaman, konten di StarterPlayer.StarterPlayerScripts wadah klon ke PlayerScripts . Semua LocalScripts dan ModuleScripts dijalankan saat mereka klon.

Tidak seperti kontainer Backpack dan PlayerGui , kontainer PlayerScripts tidak dapat diakses ke server, dan kontainer PlayerScripts pengguna tidak diatur ulang saat karakter mereka mati dan respawn.Objek sisi server Script juga tidak berjalan saat diberikan ke PlayerScripts .Wadah PlayerScripts berguna untuk skrip yang tidak terikat pada siklus kehidupan karakter pengguna, seperti sistem obrolan umum atau kendaliinput pemain.