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.
- Na przykład, nie możesz utworzyć reguły doświadczenia, która wyklucza kogoś ze względu na ich płeć, ponieważ to narusza politykę dyskryminacji, obrażeń i nienawiści w przeciwdziałaniu polityce Roblox Discrimination, Slurs i Hate Speech .
- 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</