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.

Gdy 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 grach, takie jak nazwa użytkownika, lista znajomych i zapisany avatar postaci, a także właściwości, metody i zdarzenia, które wpływają na cykl życia użytkownika między dołączeniem a opuszczeniem gry. Każdy obiekt Player ma również cztery ważne kontenery, które można wykorzystać do dostosowania doświadczeń użytkownika: Backpack, StarterGear, PlayerGui i 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 ramach obecnej gry. Aby uzyskać więcej informacji na temat działania identyfikacji użytkowników, w tym identyfikatorów użytkowników ograniczonych do domeny oraz typu User, zapoznaj się z artykułem Użytkownicy i identyfikatory użytkowników ograniczone do domeny.

Cykl życia

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

Dołączenie użytkownika

Gdy klient użytkownika łączy się z grą, zdarzenie Players.PlayerAdded jest uruchamiane i przesyła obiekt Player użytkownika, który dołącza; można użyć tego obiektu do wielu 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 zapisane 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 ich awatar na platformie, a Players.CharacterAutoLoads jest ustawione na true, co oznacza, że model postaci automatycznie pojawia się, gdy użytkownik dołącza do gry.

Gdy Player.Character użytkownika się pojawia, Skrypty i LokalneSkrypty w StarterCharacterScripts klonują się do modelu postaci, a zdarzenie Player.CharacterAdded jest uruchamiane. To zdarzenie przekazuje nowy model postaci do jego słuchaczy, co można wykorzystać do znalezienia obiektu Humanoid postaci i modyfikacji jego zachowania. Na przykład można użyć Humanoid:ApplyDescription(), aby zmienić strój awatara.

Zniknięcie postaci

Gdy Humanoid gracza umiera, serwer automatycznie usuwa model postaci po upływie czasu określonego przez Players.RespawnTime. Można wtedy użyć zdarzenia Player.CharacterRemoving, aby zresetować inne obiekty lub zaktualizować dane związane z postacią.

Odejście użytkownika

Gdy klient użytkownika rozłącza się z grą, serwer niszczy skojarzony z nim obiekt Player w usłudze Players. W tym momencie zdarzenie Players.PlayerRemoving jest uruchamiane i przesyła obiekt Player użytkownika, który się rozłączył. Można to wykorzystać do wielu celów, takich jak zapis danych użytkownika, usunięcie statystyk gracza ze wskaźnika wyników lub zniszczenie modeli stworzonych przez gracza w grze.

Poniższy przykład Script nasłuchuje zdarzenia PlayerRemoving i próbuję 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
-- Uzyskaj 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 "edytuj" kopiują swoje zawartości do tych kontenerów Player, w tym StarterGui do PlayerGui, StarterPack do Backpack i StarterPlayerScripts do PlayerScripts.

Diagram przedstawiający mapowanie obiektów pomiędzy modelami danych 'edytuj' i 'czasu działania'.

Obiekty Tool w Backpack stanowią inwentarz gracza i są wyświetlane jako ikony przycisków na dole ekranu. Zobacz narzędzia w grze po więcej informacji.

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

Aby wyłączyć domyślny interfejs inwentarza Roblox i zastąpić go własnym, wywołaj StarterGui:SetCoreGuiEnabled() w LocalScript, zgodnie z opisem w wyłączeniu domyślnego UI.

Zbanowanie użytkowników

Aby zapewnić cywilność i fair play w swoich grach, możesz zbanować użytkowników, którzy łamią zasady lub wytyczne społeczności. Możesz modyfikować czas trwania banów, wiadomości o banach, a nawet rozszerzać ban na potencjalne konta alternatywne. Korzystając z tej funkcji, musisz przestrzegać wytycznych dotyczących banów i wiadomości.

Masz kilka opcji dotyczących działania z banami:

Blokowanie urządzeń

Oprócz zbanowania konta, Players:BanAsync() wspiera blokowanie urządzeń za pośrednictwem pola ApplyDeviceBlock w swojej tabeli konfiguracyjnej. Gdy zbanowujesz użytkownika, który jest aktualnie połączony z twoją grą z ustawionym ApplyDeviceBlock na true, urządzenie powiązane z tym użytkownikiem również zostanie zablokowane przed powtórnym połączeniem na 24 godziny. Ta opcja dodaje przeszkodę w omijaniu banów; zbanowani gracze nie mogą natychmiast dołączyć ponownie do gry z nowego konta na tym samym urządzeniu.

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

Wytyczne dotyczące banów

Podczas wdrażania banów w swojej grze przestrzegaj następujących wytycznych:

  • Zasady gry nie mogą być sprzeczne z Standardami Społeczności i Warunkami Użytkowania Roblox. Na przykład, nie możesz stworzyć zasady gry, która wyklucza kogoś z powodu ich płci, ponieważ narusza to Politykę Przeciw Dyskryminacji, Obelgom i Mowie Nienawiści Roblox.
  • Twórcy muszą jasno określić swoje zasady gry w miejscu dostępnym dla wszystkich użytkowników.
  • Twórcy muszą stosować swoje zasady gry uczciwie i nie celowo atakować niektórych użytkowników.
  • Użytkownicy mogą apelować bezpośrednio do twórców, jeśli uważają, że ich ban był nieprawidłowy. Roblox nie będzie pośredniczyć w tych apelacjach, chyba że użytkownik uważa, że zasady gry twórcy lub egzekwowanie jego zasad naruszają Standardy Społeczności.
  • Roblox może moderować grę, jeśli istnieją powody do wierzenia, że zasady gry twórcy lub egzekwowanie jego zasad naruszają Standardy Społeczności.

Wytyczne dotyczące wiadomości

Gdy użytkownik jest zbanowany, otrzymuje modal błędu wyświetlający informacje, takie jak długość bana i przyczyna. W wiadomości z filtrem tekstu możesz zawrzeć dodatkowe informacje, takie jak informacje o apelacji lub kontakt, pod warunkiem, że spełniasz Standardy Społeczności.

Na przykład w swoich wiadomościach o banach możesz wspomnieć o markach i platformach:

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

Wzmianki o danych osobowych lub bezpośrednie linki nie są dozwolone w tym polu wiadomości. Obejmuje to zamieszczanie konkretnego nazewnictwa użytkownika lub pseudonimu lub podawanie bezpośredniego linku do serwera Discord lub konta 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.