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 doświadcza, Roblox przedstawia go jako gracza w modelu danych. Obiekt Player zawiera informacje o użytkowniku, które są uniwersalne w wszystkich doświadczeniach, takie jak ich nazwa użytkownika, lista znajomych, zapisany awatar i wpisywaćczłonkowstwa Roblox,

Usługa Players zawiera wszystkie Player instancje w doświadczeniu. Każde Player obiekt представляет użytkownika w doświadczeniu, a jego rodzice cztery ważne kontenery

Żywotność

Skrypcty stronę klienta i serwera mogą zarówno połączyć się z wydarzeniami Players.PlayerAdded i Players.PlayerRemoved, aby wykonać działania w odpowied

Używaj skryptów, aby uzyskać dostęp do usług serwera, takich jak przechowywanie danych, aby odzyskać i zapisać dane, gdy użytkownik dołącza lub wychodzi. Użyj lokalnych skryptów, jeśli klient musi utworzyć i usunąć instancje gry powiązane z nowym użytkownikiem, takie jak wyświetlanie GUI dla statystyk użytkownika na niestandardowym rankingwyników.

Dołączanie użytkownika

Gdy klient połączy się z doświadczeniem, jego powiązany Player obiekt kopiuje się z usługi Players. Przedstawiciel

Ładowanie danych użytkownika przy dołączeniu

Aby załadować dane użytkownika, gdy dołączy do doświadczenia, użyj wydarzenia Players.PlayerAdded w Script. Następny przykład Script słucha wydarzenia i próbuje odzyskać dane użytkownika używając jego ID użytkownika jako klucza do przechowywania


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

Użytkownik wychodzi

Gdy klient odłączy się od doświadczenia, serwer niszczy jego związany Player obiekt z usługi Class.Players

Uwaga, że wydarzenie jest nazywane Player.PlayerRemoving , a nie Player.PlayerRemoved, ponieważ "usunięte" oznacza, że obiekt Player jest już usunięty i jest więc niedostępny dla skryptów.

Zapisywanie danych użytkownika podczas wymeldowania

Aby zapisać dane użytkownika, gdy opuści ono doświadczenie, użyj wydarzenia Players.PlayerRemoving w Script. Lista przykładów Script słucha wydarzenia i próbuje zapisać dane użytkownika używając jego ID użytkownika jako klucza magazynu danych.

Skrypt w ServerScriptService

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

Generowanie postaci

Model użytkownika Player.Character reprezentuje jego awatar. Domyślnie Player.CharacterAutoLoads jest prawdą, a model użytkownika automatycznie się wygeneruje, gdy doświadczenie dołączy. Jeśli Player.CharacterAutoLoads jest fałszywy, musisz wywołać

Gdy użytkownik

Rozmieszczanie postaci

Gdy gracz Humanoid umiera, jego części ciała spadają na ziemię i wydarzenie Humanoid.Died uruchamia. Serwer automatycznie usuwa model postaci i wszystkie skrypty w nim po upływie czasu, który okreś

Liczenie liczby śmierci graczy

Możesz użyć wydarzenia Humanoid.Died, aby zarządzać wynikami dla zabójstwa lub stworzyć niestandardowy model ragdoll'a. Następny Script połąc

Skrypt w 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)

Zbanowywanie użytkowników

Aby zagwarantować cywilizację i uczciwą grę w swoich doświadczeniach, możesz zbanować użytkowników, którzy łamią zasady doświadczenia i zasady wspólnoty. Możesz zmienić czas trwania banów, wiadomości banowe i nawet przedłużyć zakazy na potencjalne konta alternatywne. Gdy używasz tej funkcja, musisz również przestrzegać zasad banowania i

Dla wdrożeń i instrukcji użycia, zobacz Players.BanAsync.

Zakazowe wytyczne

Podczas wdrożenia zakazów w swoim doświadczeniu, przestrzegać się następujących zasadnic:

  • Zasady doświadczenia nie mogą sprzeczać się z Standardami społeczności i Warunkami użytkowania Roblox.
  • Twórcy muszą wyraźnie określić swoje zasady doświadczenia gdzieś dostępnym dla wszystkich użytkowników.
  • Twórcy muszą stosować swoje zasady doświadczenia w sposób fair i nie mogą arbitralnie celować na niektórych użytkowników.
  • Użytkownicy mogą apelować do twórców bezpośrednio, jeśli uważają, że ich zakaz jest nieprawidłowy.
    • Roblox nie będzie mediować tych reklamacji, chyba że użytkownik wierzy, że zasady doświadczenia twórcalub egzekwowanie ich zasad naruszają Standardy Społeczności.
  • Roblox może moderować doświadczenie, jeśli istnieje powód do wiary, że zasady doświadczenia lub egzekwowanie ich zasad narusza Standardy Społeczności.

Wytyczne wiadomości

Gdy użytkownik jest zbanowany, otrzymuje okienko błędu wyświetlające informacje, takie jak długość zakazu i powód. W wiadomośćfiltrowanej tekstem możesz включить dodatkowe informacje, takie jak adres apelu lub kontaktu, o ile spełniajesz Standardy Społeczności Roblox.

Na przykład w swoich wiadomościach o zakazie możesz odnieść się do nazw marek i platform:

  • „Odwiedź Discord na mojej stronie grupy/doświadczenia”
  • „Wiadomość na Twitterze lub X”

W tego pola wiadomości nie wolno umieszczać informacji o osobistych lub bezpośrednich linkach. To includes posted a specific username or handle, or providing a direct link to a Discord server or X konto.

Containery

Obiekt Player przechowuje kilka ważnych kontenerów:

plecak

Kontener Player.Backpack przechowuje wyposażenieużytkownika. Objeto Tool w wyposażenieużytkownika Backpack wyświetlany jest w ich ekwipunku na dole ekranu. Jeśli

Gdy użytkownik의 Player.Character pojawia się, zawartość usługi StarterPack i ich kopii Player.StarterGear do ich 2>Class.Player.Backpack2> . Gdy postać umiera, klient niszczy swoje 5>Class.Backpack5> i

Class.Backpack przechowuje i wykonuje Scripts i LocalScripts, które klienci i serwer mogą obie uzyskać dostęp.

Roblox oferuje interfejs dla gracza, aby uzyskać dostęp do ich Backpack i ekwipunku w dolnej części ekranu. Aby wyłączyć domyślną funkcję Roblox-Backpack i zastąpić ją posiadać, zadzwoń StarterGui:SetCoreGuiEnabled() w lokalnym skrypcie. Dla więcej informacji, zobacz

Narzędzia startowe

Class.StarterGear pojemnik kopiuje swoje treści do Player.Backpack użytkownika, gdy jego postać pojawia się. Dodatkowo, jeśli ich miejsce pozwala na ekwipunek i użytkownik posiada sprzęt, obiekty Tool swojego ekwipunku kopiują się do ich 1>

Od StarterPack , Player.StarterGear nie jest usługą, ale jest dzieckiem każdego

Zawsze testuj gry po dodaniu ich użycia, aby sprawdzić, że użytkownicy nie mogą łatwo nadużywać ich tam. Użycie Gear zawiera Script obiektów i pozwala graczom wykonanie akcji, które możesz nie rozważyć. Na przykład, nawigacyjne użycie może pozwolić graczowi uzyskać dostęp do części mapy, którą nie chcesz

GUI gracza

Kontener PlayerGui przechowuje obiekty, które tworzą grę gracz. Jeśli ScreenGUI jest potomstwem Class.Player

Jeśli Players.CharacterAutoLoads ustawiony na false, character nie spawnuje, a treści StarterGui nie kopiują się do czasu, aż Player:LoadCharacter() zostanie wywołany. Jeśli

Skrypty gracza

Gdy użytkownik dołącza do doświadczenia, zawartość w StarterPlayer.StarterPlayerScripts pojemniku kopiuje się do PlayerScripts. Wszystkie lokalne skrypty i modułowe skrypty są uruchomane, gdy kopiują.

W przeciwieństwie do kontenerów Backpack i PlayerGui, kontener Class.PlayerScripts</