Użytkownicy i gracze

*Ta zawartość została przetłumaczona przy użyciu narzędzi AI (w wersji beta) i może zawierać błędy. Aby wyświetlić tę stronę w języku angielskim, kliknij tutaj.

Kiedy użytkownik Roblox dołącza do gry, jest reprezentowany jako Player w DataModel. Obiekt Player zawiera informacje o użytkowniku, które są uniwersalne w różnych grach, takie jak jego nazwa użytkownika, lista przyjaciół i zapisany awatar, a także właściwości, metody i zdarzenia, które wpływają na cykl życia użytkownika od dołączenia do opuszczenia gry. Każdy obiekt Player posiada również cztery ważne kontenery, które możesz wykorzystać do dostosowania doświadczeń użytkownika: Backpack, StarterGear, PlayerGui oraz PlayerScripts.

Każdy Player udostępnia również właściwość Player.User, która jest wartością User reprezentującą tożsamość gracza w obszarze domeny w obecnym doświadczeniu. Aby uzyskać więcej informacji na temat działania identyfikacji użytkowników, w tym identyfikatorów użytkowników w obszarze domeny oraz typu User, zapoznaj się z Użytkownikami i identyfikatorami użytkowników w obszarze domeny.

Cykl życia

Usługa Players zawiera wszystkie instancje Player w grze. Skrypty po stronie klienta i serwera mogą łączyć się z zdarzeniami Players.PlayerAdded i Players.PlayerRemoved, aby wykonywać akcje w odpowiedzi na cykl życia obiektu Player. Skrypty mogą również łączyć się z zdarzeniami Player.CharacterAdded i Player.CharacterRemoving, aby wykonać akcje związane z rozgrywką w momencie, gdy postać się pojawia lub znika.

Dołączenie użytkownika

Kiedy klient użytkownika łączy się z grą, zdarzenie Players.PlayerAdded wyzwala się i przekazuje obiekt Player użytkownika, który dołącza; możesz wykorzystać ten obiekt do różnych celów, takich jak ładowanie danych użytkownika z magazynu danych lub przypisanie gracza do zespołu.

Na przykład, aby załadować dane użytkownika, gdy dołącza do gry, użyj zdarzenia PlayerAdded w Script, aby pobrać dane użytkownika przechowywane w magazynie danych pod jego identyfikatorem użytkownika:

Skrypt w ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Odczytaj klucz magazynu danych
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Wykonaj dalsze działania z currentData
end)

Pojawienie się postaci

Domyślnie model Player.Character użytkownika reprezentuje jego awatar na platformie, a Players.CharacterAutoLoads jest ustawiony na true, co oznacza, że model postaci automatycznie pojawia się, gdy użytkownik dołącza do gry.

Kiedy postać użytkownika Player.Character się pojawia, Scripts i LocalScripts w StarterCharacterScripts klonują się do modelu postaci, a zdarzenie Player.CharacterAdded wyzwala się. To zdarzenie przekazuje nowy model postaci do jego słuchaczy, których możesz użyć do znalezienia obiektu Humanoid postaci i modyfikacji jego zachowania. Na przykład, możesz użyć Humanoid:ApplyDescription(), aby zmienić strój awatara.

Zniknięcie postaci

Kiedy Humanoid gracza umiera, serwer automatycznie usuwa model postaci po czasie określonym przez Players.RespawnTime. Możesz wtedy użyć zdarzenia Player.CharacterRemoving, aby zresetować inne obiekty lub zaktualizować dane związane z postacią.

Odejście użytkownika

Kiedy klient użytkownika rozłącza się z grą, serwer niszczy jego skojarzony obiekt Player w obrębie usługi Players. W tym momencie wyzwala się zdarzenie Players.PlayerRemoving i przekazuje obiekt Player użytkownika, który się rozłączył. Możesz to wykorzystać do wielu celów, takich jak zapisywanie danych użytkownika, usuwanie statystyk gracza z tablicy wyników lub niszczenie modeli stworzonych przez gracza w grze.

Poniższy przykład Script nasłuchuje na zdarzenie PlayerRemoving i stara się zapisać dane użytkownika w magazynie danych pod jego identyfikatorem użytkownika:

Skrypt w ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local Players = game:GetService("Players")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
Players.PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Pobierz stan danych gracza w grze
local currentData = getCurrentData(player)
-- Zapisz do magazynu danych
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Kontenery

Każdy obiekt Player reprezentujący klienta użytkownika przechowuje kilka ważnych kontenerów: Backpack, StarterGear, PlayerGui i PlayerScripts. W czasie działania gry, kilka kontenerów w modelu danych "edycja" kopiuje swoje zawartości do tych kontenerów Player, w tym StarterGui do PlayerGui, StarterPack do Backpack, i StarterPlayerScripts do PlayerScripts.

Diagram mapujący obiekty między modelami danych 'edycja' i 'czas działania'.

Obiekty Tool w Backpack składają się na inwentarz gracza i wyświetlają się jako przyciski ikonowe na dolnej części ekranu. Zobacz narzędzia w grze po więcej informacji.

Jak pokazano powyżej, zawartość StarterPack i zasoby StarterGear gracza klonuje się do Backpack, gdy postać gracza Character się pojawia. Gdy postać umiera, klient niszczy Backpack i zastępuje go nowym.

Aby wyłączyć domyślną GUI inwentarza Roblox i zastąpić ją własną, wywołaj StarterGui:SetCoreGuiEnabled() w LocalScript zgodnie z opisem w wyłączenie domyślnego UI.

Banowanie użytkowników

Aby zapewnić cywilność i uczciwą grę w swoich doświadczeniach, możesz zbanować użytkowników, którzy naruszają zasady lub wytyczne społeczności. Możesz modyfikować czas trwania bana, wiadomości o banie, a nawet rozszerzać bany na potencjalne alternatywne konta. Korzystając z tej funkcji, musisz przestrzegać wytycznych dotyczących banów i komunikacji.

Masz kilka opcji dotyczących pracy z banami:

Blokowanie urządzeń

Oprócz banowania konta, Players:BanAsync() wspiera blokowanie urządzeń poprzez pole ApplyDeviceBlock w swojej tabeli konfiguracyjnej. Kiedy banisz użytkownika, który jest obecnie połączony z twoją grą, z ApplyDeviceBlock ustawionym na true, urządzenie związane z tym użytkownikiem również zostanie zablokowane przed ponownym dołączeniem przez 24 godziny. Ta opcja dodaje frikcję w przeciwdziałaniu omijaniu bane; zbanowani gracze nie mogą natychmiast dołączyć z nowego konta na tym samym urządzeniu.

  • Blokowanie urządzeń obecnie dotyczy tylko graczy na komputerach stacjonarnych (Windows i macOS). Nie dotyczy urządzeń mobilnych ani konsol.
  • Blokada urządzenia nie rozprzestrzenia się jako ban na inne konta, które korzystały z urządzenia.
  • Wywołanie API unbanu dla dotkniętego użytkownika natychmiast usuwa wszelkie aktywne blokady urządzeń związane z tym urządzeniem użytkownika, pozwalając mu ponownie dołączyć do gry.

Wytyczne dotyczące banów

Podczas wprowadzania banów w swoim doświadczeniu, przestrzegaj następujących wytycznych:

  • Zasady doświadczenia nie mogą być sprzeczne z Standardami Społeczności i Warunkami korzystania Roblox. Na przykład, nie możesz stworzyć zasady doświadczenia, która wyklucza kogoś ze względu na ich płeć, ponieważ narusza to Politykę Roblox dotyczącą Dyskryminacji, Obelg i Mowy Nienawiści.
  • Twórcy muszą jasno określić zasady swojego doświadczenia w miejscu dostępnym dla wszystkich użytkowników.
  • Twórcy muszą stosować swoje zasady doświadczenia sprawiedliwie i nie arbitralnie celować w określoną grupę użytkowników.
  • Użytkownicy mogą bezpośrednio apelować do twórców, jeśli uważają, że ich ban był niepoprawny. Roblox nie będzie pośredniczył w tych apelacjach, chyba że użytkownik uzna, że zasady doświadczenia lub egzekwowanie tych zasad przez twórcę naruszają Standardy Społeczności.
  • Roblox może moderować doświadczenie, jeśli istnieje powód, by sądzić, że zasady doświadczenia twórcy lub egzekwowanie tych zasad naruszają Standardy Społeczności.

Wytyczne dotyczące wiadomości

Kiedy użytkownik zostaje zbanowany, otrzymuje modal z błędem, wyświetlający informacje takie jak długość bana i powód. W wiadomości filtrowanej tekstowo możesz zawrzeć dodatkowe informacje, takie jak informacje o apelach lub kontakcie, o ile spełnisz Standardy Społeczności.

Na przykład, w wiadomościach o banach możesz wspomnieć o nazwach marek i platformach:

  • "Odwiedź Discord w mojej grupie/na stronie doświadczenia"
  • "Napisz do mnie na Twitterze lub X"

Wzmianki o informacjach osobistych lub bezpośrednie linki nie są dozwolone w tym polu wiadomości. Obejmuje to podawanie konkretnej nazwy użytkownika lub identyfikatora, czy też zapewnianie bezpośredniego linku do serwera Discord lub konta na X.

©2026 Roblox Corporation. Nazwa Roblox, logo Roblox oraz hasło „Powering Imagination” należą do naszych zarejestrowanych i niezarejestrowanych znaków towarowych na terenie Stanów Zjednoczonych oraz w innych krajach.