Kiedy użytkownik dołącza do doświadczenia, Roblox reprezentuje go jako Gracza w modelu danych.Obiekt Player zawiera informacje o użytkowniku, który jest uniwersalny wśród doświadczeń, takie jak jego nazwa użytkownika, lista znajomych, zapisany postać awatara oraz wpisywaćczłonkostwa Roblox, a także właściwości, metody i wydarzenia, które wpływają na cykl życia użytkownika między dołączeniem i opuszczeniem twojego doświadczenia.
Usługa Players zawiera wszystkie instancje Player w doświadczeniu.Każdy obiekt Player reprezentuje użytkownika w doświadczeniu, a rodzice cztery ważne kontenery, które możesz użyć do dostosowania doświadczenia użytkownika: Backpack , StarterGear , PlayerGui i PlayerScripts.
Cykl życia
Skrypty strony klienta i serwerowej mogą obie połączyć się z wydarzeniami Players.PlayerAdded i Players.PlayerRemoved w celu wykonywania działań w odpowiedzi na cykl życia obiektu Player.Mogą również połączyć się z wydarzeniami Player.CharacterAdded , Player.CharacterRemoving i Humanoid.Died , aby wykonać działania związane z grą, gdy postać się pojawi, wygaśnie i umrze.
Użyj skryptów, aby uzyskać dostęp do usług związanych z serwerem, 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 tworzyć i usuwać instancje rozgrywki powiązane z nowym użytkownikiem, takie jak wyświetlanie interfejsu dla statystyk użytkownika na niestandardowej rankingwyników.
Dołączanie użytkownika
Kiedy klient połącza się z doświadczeniem, jego powiązany obiekt Player kopiuje się do usługi Players.The Players.PlayerAdded reprezentuje użytkowników dołączających do doświadczenia.Niektóre przykłady wykorzystania obejmują ładowanie danych użytkownika, przypisywanie zespołów i zmianę stroju postaci użytkownika.Wydarzenie Players.PlayerAdded przekazuje obiekt Player użytkownika, który dołącza, który możesz używać podczas wywoływania innych funkcji, takich jak przechowywanie danych i RemoteEvent obiekty.
Załaduj dane użytkownika po dołączeniu
Aby załadować dane użytkownika, gdy dołącza do doświadczenia, użyj wydarzenia Players.PlayerAdded w Script.Poniższy przykład Script słucha wydarzenia i próbuje odzyskać dane użytkownika za pomocą jego ID użytkownika jako klucza magazynu danych.Po pomyślnym odzyskaniu danych użytkownika możesz ich użyć do ładowania postępu i statystyk użytkownika.
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Przeczytaj klucz przechowywania danych
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Wykonaj dalsze działania z aktualnymi danymi
end)
Odchodzenie użytkownika
Kiedy klient odłącza się od doświadczenia, serwer niszczy jego powiązany obiekt Player z usługą Players.Wydarzenie Players.PlayerRemoving reprezentuje użytkowników opuszczających doświadczenie.Niektóre przykłady wykorzystania obejmują zapisywanie danych użytkownika, usuwanie ich statystyk z tablicy wyników i niszczenie dowolnego z ich modeli, takich jak ich dom.Wydarzenie Players.PlayerRemoving przekazuje obiekt Player użytkownika, który odchodzi, który możesz używać podczas wywoływania innych funkcji, takich jak przechowywanie danych i RemoteEvent obiekty.
Zauważ, że wydarzenie jest nazywane Player.PlayerRemoving, a nie Player.PlayerRemoved, ponieważ "usunięto" oznaczałoby, że obiekt Player jest już usunięty i jest zatem niedostępny dla skryptów.
Zapisz dane użytkownika po opuszczać
Aby zapisać dane użytkownika, gdy opuści on doświadczenie, użyj wydarzenia Players.PlayerRemoving w Script.Poniższy przykład Script słucha wydarzenia i próbuje zapisać dane użytkownika za pomocą 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 postaci użytkownika automatycznie się pojawia, gdy dołącza do doświadczenia.Jeśli Player.CharacterAutoLoads jest fałszywe, musisz wezwać Player:LoadCharacter(), aby ręcznie wygenerować postać.
Gdy pojawia się spawn użytkownika Player.Character, skrypty i lokalne skrypty w StarterCharacterScripts klonują się do modelu postaci i uruchamia się wydarzenie Player.CharacterAdded.Wydarzenie Player.CharacterAdded przekazuje nowy model postaci do wszystkich słuchaczy zdarzeń, których możesz użyć do znalezienia obiektu postaci Humanoid i zmiany jego zachowania.Na przykład możesz użyć Humanoid:ApplyDescription() , aby zmienić strój awatara i Humanoid.WalkSpeed lub Humanoid.JumpHeight , aby zmodyfikować ruch awatara.
Despawnowanie postaci
Kiedy części ciała gracza Humanoid umierają, jego części ciała spadają na ziemię, a wydarzenie Humanoid.Died włącza się.Serwer automatycznie usuwa model postaci i wszelkie skrypty w nim po upływie czasu, który określa właściwość Players.Respawntime.Możesz użyć wydarzenia Player.CharacterRemoving, aby zresetować inne obiekty związane z postacią, takie jak własność sieci pojazdu, którym jeździli.
Liczenie śmierci graczy
Możesz użyć wydarzenia Humanoid.Died do zarządzania wynikiem zabójstwa lub stworzyć niestandardowy model ragdolla.Poniższy Script łączy się z Player.CharacterAdded aby odzyskać model postaci każdego użytkownika, a następnie łączy się z obiektem postaci Humanoid.Gdy wydarzenie Humanoid.Died ludzkiego humanoida się uruchomi, skrypt zwiększa liczbę razy, w których użytkownikowy ludzki humanoid umarł, i wyświetla tę liczbę.
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)
Zbanuj użytkowników
Aby zapewnić cywilizację i fair play w swoich doświadczeniach, możesz zbanować użytkowników, którzy naruszają zasady doświadczenia i wytyczne społeczności.Możesz modyfikować czas trwania zakazów, wiadomości zakazowe i nawet rozszerzać zakazy na potencjalne alternatywne konta.Podczas korzystania z tej funkcjamusisz również przestrzegać wytycznych dotyczących zakazania i wysyłania wiadomości.
Aby uzyskać instrukcje wdrożenia i użytkowania, zobacz Players.BanAsync.
Wytyczne dotyczące zakazów
Wdrażając zakazy w swoim doświadczeniu, przestrzegaj następujących wytycznych:
- Zasady doświadczenia nie mogą sprzeczać się z normami społeczności Roblox'a i warunkami użytkowania .
- Na przykład, nie możesz utworzyć zasady doświadczenia, która wyklucza kogoś ze względu na płeć, ponieważ narusza to politykę dyskryminacji, zniesławień i mowy nienawiści Roblox.
- Twórcy muszą wyraźnie określić swoje zasady doświadczenia w miejscu dostępnym dla wszystkich użytkowników.
- Twórcy muszą stosować swoje zasady doświadczenia w sposób sprawiedliwy i nie arbitralnie wybierać pewnych użytkowników.
- Użytkownicy mogą apelować do twórców bezpośrednio, jeśli uważają, że ich zakaz był nieprawidłowy.
- Roblox nie będzie pośredniczył w tych apelach, chyba że użytkownik uważa, że zasady doświadczenia twórcalub egzekwowanie ich zasad naruszają standardy społeczności.
- Roblox może zmoderować doświadczenie, jeśli istnieje powód, aby sądzić, że zasady doświadczenia twórcalub egzekwowanie ich zasad naruszają standardy społeczności.
Wskazówki dotyczące wiadomości
Kiedy użytkownik jest zbanowany, otrzymuje on moduł błędu wyświetlający informacje, takie jak dług zakazu i powód.W wiadomośćfiltrowanej tekstowo możesz dodać dodatkowe informacje, takie jak apel lub informacje o kontaktach, pod warunkiem, że spełniasz standardy społeczności Roblox Community Standards.
Na przykład, w wiadomościach zakazowych, możesz odwoływać się do nazw marek i platform:
- „Odwiedź Discord na stronie mojej grupy/doświadczenia”
- „Wyślij mi wiadomość na Twitterze lub X”
Wzmianki o informacjach osobowych lub bezpośrednie linki nie są dozwolone w tym polu wiadomości.Obejmuje to opublikowanie określonej nazwy użytkownika lub identyfikatora lub udostępnienie bezpośredniego linku do serwera Discord lub konta X.
Kontenery
Obiekt Player przechowuje kilka ważnych pojemników:
Torebka
Kontener Player.Backpack przechowuje wyposażenieużytkownika.Obiekty Tool w wyświetlaniu użytkownika Backpack w ich ekwipunku na dole ekranu.Jeśli użytkownik wybierze Tool z wyposażenie, wyposaży go i przeniesie z Player.Backpack do Player.Character.
Kiedy pojawia się spawn użytkownika Player.Character, zawartość usługi StarterPack i jej klony Player.StarterGear pojawiają się w ich Player.Backpack.Kiedy postać umiera, klient niszczy jej Backpack i zastępuje ją nową.
The Backpack również przechowuje i uruchamia Scripts i LocalScripts, do których oba klient i serwer mają dostęp.
Roblox zapewnia interfejs dla gracza, aby uzyskać dostęp do ich Backpack i zapasu na dole ekranu.Aby wyłączyć domyślną konsolę plecaka Roblox i zastąpić ją posiadać, wezwij StarterGui:SetCoreGuiEnabled() w lokalnym skrypcie.Aby uzyskać więcej informacji, zobacz StarterGui.
Wyposażenie startowe
Kontener StarterGear klonuje jego zawartość do użytkownika Player.Backpack w momencie pojawienia się jego postaci.Ponadto, jeśli twoje miejsce pozwala na sprzęt i użytkownik posiada sprzęt, obiekty Tool sprzętu klonu ich Player.StarterGear pojawią się, gdy się pojawią.
W przeciwieństwie do StarterPack , Player.StarterGear nie jest usługą, ale raczej dzieckiem każdego Player obiektu, więc jego zawartość jest użytkownik-specyficzna.Każdy użytkownik może mieć różne Tool obiekty w swoim Player.StarterGear .Aby korzystać z Player.StarterGear , włącz Gear w stronie ustawień doświadczenia pod uprawnieniami .Na stronie uprawnień możesz włączyć sprzęt przez jego wpisywać.Aby wyłączyć sprzęt, odznacz jego wpisywać.
Zawsze testuj gry po dodaniu do nich sprzętu, aby sprawdzić, czy użytkownicy nie mogą łatwo nadużywać ich tam.Wyposażenie obejmuje Script obiekty i pozwala graczowi wykonywać działania, które możesz nie rozważać.Na przykład, sprzęt nawigacyjny może pozwolić graczowi uzyskać dostęp do części mapy, której nie chcesz, aby uzyskał.Bronie pozwalają graczom z wyposażeniem zadawać obrażenia innym graczom, ewentualnie bez zadośćuczynienia lub zemsty.
GraczGui
Kontener PlayerGui przechowuje obiekty, które tworzą interfejs użytkownika gracza.Jeśli ScreenGui jest potomkiem PlayerGui , wtedy każdy GuiObject wewnątrz ScreenGui wyświetla się na ekranie gracza.Każde LocalScript uruchamia się, gdy klonuje się do PlayerGui .Kiedy po raz pierwszy pojawia się spawn gracza Player.Character, całe zawartość StarterGui automatycznie kopiuje się do gracza PlayerGui.
Jeśli Players.CharacterAutoLoads jest ustawiony na fałsz, postać nie pojawia się, a treści StarterGui nie są kopiowane, dopóki nie zostanie wezwany Player:LoadCharacter().Jeśli StarterGui.ResetPlayerGuiOnSpawn jest ustawione na prawdę, za każdym razem, gdy postać gracza się odrodzi, całe zawartość tej postaci PlayerGui zostanie wyczyszczona i zastąpiona zawartością StarterGui.
Skrypty gracza
Kiedy użytkownik dołącza do doświadczenia, zawartość w StarterPlayer.StarterPlayerScripts kontenerze klonuje się do PlayerScripts. Wszystkie lokalne skrypty i modułowe skrypty uruchamiają się, gdy się klonują.
W przeciwieństwie do kontenerów Backpack i PlayerGui, kontener PlayerScripts nie jest dostępny dla serwera, a kontener użytkownika PlayerScripts nie zostaje zresetowany, gdy jego postać umiera i odrodzi się.Obiekty strony serwera również nie uruchamiają się, gdy są powiązane z .Kontener PlayerScripts jest przydatny dla skryptów, które nie są powiązane z cyklem życia postaci użytkownika, takich jak ogólny system czatu lub elementy sterującewejściowe gracza.