Wenn ein Benutzer einer Erlebnisbeitritt, stellt Roblox sie als Spieler im Modelldar. Das Player -Objekt enthält Informationen über den Benutzer, der über Erfahrungen hinweg universell ist, wie z. B. seinen Benutzernamen, seine Freundesliste, gespeicherten Avatar-Charakter und eingeben, sowie Eigenschaft
Der Players -Dienst enthält alle Player -Instanzen in einem Erlebnis. Jedes Player -Objekt repräsentiert einen Benutzer im Erlebnis und wird von vier wichtigen Containern, die Sie verwenden können, um die
Lebenszyklus
Client- und Server-Skripte können beide auf die Players.PlayerAdded und Players.PlayerRemoved -Ereignisse verbinden, um Aktionen in der Reaktion auf den Lebenszyklus eines Class.
Verwenden Sie Skripte, um auf serverbezogene Dienste zuzugreifen, wie z. B. einen Datenspeicher, um Daten wiederherzustellen und zu speichern, wenn ein Benutzer beitritt oder verlässt. Verwenden Sie lokale Skripte, wenn der Client ein Spiel-Instanz für den Benutzer auf einer benutzerdefinierten Bestenliste erstellt und entfernt.
Benutzer beitreten
Wenn sich ein Client mit einem Erlebnis verbindet, werden seine zugeordneten Player -Objekte in den Class.Players -Dienst aufgenommen. Das
Laden von Benutzerdaten beim Beitreten
Um die Daten eines Benutzers zu laden, wenn er einem Erlebnis beitritt, verwenden Sie das Ereignis Players.PlayerAdded in einem Script . Die folgende Beispielliste Script hört auf das Ereignis und versucht, den Fortschritt eines Benutzers mit seiner Benutzer-ID als Datenspeicher-Schlüssel zu erhalten. Nach dem erfol
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Lesen Sie den Daten-Store-Schlüssel
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Tun Sie weitere Aktionen mit aktuellenDaten
end)
Benutzer verlassen
Wenn sich ein Client von einem Erlebnis abmelden, zerstört der Server sein verbundenes Player-Objekt aus dem Class.Players
Beachten Sie, dass das Ereignis Player.PlayerRemoving genannt wird, nicht Player.PlayerRemoved, da "entfernt" impliziert, dass das Player -Objekt bereits entfernt ist und daher für Skripte nicht zugänglich ist.
Benutzerdaten beim Verlassen des Spiels speichern
Um die Daten eines Benutzers zu speichern, wenn sie eine Erlebnisverlassen, verwenden Sie das Players.PlayerRemoving -Ereignis in einem Script . Die folgende Beispielliste Script hört auf das Ereignis und versucht, die Daten eines Benutzers mit seiner Benutzer-ID als Schlüsselzu speichern.
Script in ServerScriptService
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Holen Sie sich den Zustand der Daten des Spieler:inim Spiel
local currentData = getCurrentData(player)
-- In den Daten-Store speichern
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)
Charakter-Spawn
Ein Benutzer- Player.Character -Modell repräsentiert seinen Avatar. Standardmäßig ist Player.CharacterAutoLoads wahr, und ein Benutzer-Charakter-Modell wird automatisch gespawnt, wenn sie dem Erlebnis beitreten. Wenn Player.CharacterAutoLoads falsch ist, müssen Sie 1>
Wenn ein Benutzer의
Charakter-Despawning
Wenn der Spieler:inClass.Humanoid stirbt, fallen seine Körperteile auf den Boden und das Ereignis Class.Humanoid.Died wird ausgelöst. Der Server entfernt automatisch das Charaktermodell und alle Skripte innerhalb von ihm nach der Menge der Zeit, die die Class.Players.Respawnt
Anzahl der Spieler-Todesfälle zählen
Sie können das Ereignis Humanoid.Died verwenden, um die Punktezahl für einen Kill zu verarbeiten oder ein benutzerdefiniertes Ragdoll-Modell zu erstellen. Das folgende Script verbindet
Script in 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)
Benutzer verbieten
Um Zivilität und fairen Spiel in deinen Erlebnissen zu gewährleisten, kannst du Benutzer, die gegen deine Erlebnisregeln und Community-Richtlinien verstoßen, sperren. Du kannst die Dauer von Sperren, Nachrichten und sogar Sperren auf potenzielle alternative Konten anpassen. Wenn du diese Funktion verwendest, musst du auch Richtlinien für Bannen und Nachrichten folgen.
Für Umsetzungs- und Verwendungsinstruktionen, siehe Players.BanAsync.
Verbannungsrichtlinien
Bei der Einführung von Verbots in deiner Erlebnissolltest du die folgenden Richtlinien beachten:
- Erfahrungsregeln dürfen nicht widersprechen zu Roblox's Community Standards und Nutzungsbedingungen .
- Zum Beispiel können Sie keine Erfahrungsregel erstellen, die jemanden wegen ihres Geschlechts ausschließt, da dies Roblox's Discrimination, Slurs und Hate Speech-Richtlinie verstößt.
- Ersteller müssen ihre Erfahrungsregeln irgendwo öffentlich zugänglich machen, damit alle Benutzer sie verstehen können.
- Ersteller müssen ihre Erfahrungsregeln für bestimmte Benutzer anwenden, und nicht willkürlich auf bestimmte Benutzer zielen.
- Benutzer können sich direkt an Ersteller wenden, wenn sie glauben, dass ihre Sperre ungerecht ist.
- Roblox wird diese Ansprüche nicht abwenden, es sei denn, der Creator:inglaubt, dass die Erfahrungsregeln des Erstellers oder die Durchsetzung seiner Regeln gegen die Community-Standards verstoßen.
- Roblox kann ein Erlebnis moderieren, wenn es Anzeichen gibt, dass die Erfahrungsregeln eines Creator:inoder die Durchsetzung seiner Regeln gegen die Community-Standards verstoßen.
Nachrichtenrichtlinien
Wenn ein Benutzer gesperrt wird, erhält er eine Fehler-Moda, die Informationen anzeigt, wie die Ban-Länge und der Grund. Im Text-Filtered-Nachrichten können Sie zusätzliche Informationen wie Anfragen oder Kontakt-Informationen hinzufügen, solange Sie die Community-Standards von Roblox erfüllen.
In deinen Verbotsnachrichten zum Beispiel sind es dir erlaubt, Markennamen und Plattformen zu referenzieren:
- „Besuche die Discord-Seite in meiner Gruppe/meiner Erfahrung“
- „Nachrichten Sie mich auf Twitter oder X“
Persönliche Informationen oder direkte Links sind in diesem Nachrichten-Feld nicht erlaubt. Dies beinhaltet das Posten eines bestimmten Benutzernamens oder eines Ziehpunktoder die Bereitstellung eines direkten Links zu einem Discord-Server oder X-Konto.
Container
Das Player-Objekt speichert mehrere wichtige Container:
Rucksack
Der Player.Backpack Container speichert das Inventar des Benutzers. Die Tool Objekte in einem Benutzer의 Backpack Display in ihrem Inventar am unteren Rand ihres Bildschirms. Wenn ein Benutzer ein 1>Class.Tool1>
Wenn ein Benutzer의 Class.Player.Character생성, the 콘텐츠 des Class.StarterPack -Dienstes und their Class.Player.StarterGear -Klone zu their Class.Player.Backpack . Wenn der Charakter stirbt, the клиент zerstört their Class.Backpack und ersetzt es mit einem neuen.
Der Backpack speichert und läuft auch Scripts und LocalScripts, die der Client und der Server beide Zugriffsind.
Roblox bietet eine Oberfläche für einen Spieler, um auf seinen Backpack und Inventar am unteren Rand des Bildschirms zuzugreifen. Um die Standard-Roblox-Rucksack-GUI zu deaktivieren und sie mit deiner besitzenzu ersetzen, rufe StarterGui:SetCoreGuiEnabled() in einem LocalScript auf. Weitere Informationen findest du unter StarterGui.
StarterGetriebe
Der StarterGear Container klont seine Inhalte in den Player.Backpack des Benutzers, wenn sein Charakter spawnet. Darüber hinaus, wenn dein Platz Zulassungen für Ausrüstung und ein Benutzer Zulassungen für Ausrüstung besitzt, klont die Tool Objekte seiner Spawnzu ihrem 1> Class.Player
Anders als StarterPack , Player.StarterGear ist kein Dienst, sondern vielmehr ein Kind jedes
Testen Sie immer Spiele, nachdem Sie ihnen Gear hinzugefügt haben, um zu überprüfen, dass Benutzer sie nicht leicht missbrauchen können. Gear enthält Script Objekte und ermöglicht es dem Spieler, Aktionen auszuführen, die Sie möglicherweise nicht betrachten. Zum Beispiel kann ein Navigationsausrüstung den Spieler auf einen Teil der Karte zugreifen lassen, den Sie nicht möchten.
Spieler-Gui
Der Class.PlayerGui Container speichert Objekte, die die Benutzeroberfläce des Spieler:inerstellen. Wenn ein ScreenGUI Nachkommen eines Class.PlayerGui
Wenn Players.CharacterAutoLoads auf falsch gesetzt ist, wird der Charakter nicht Spawnund StarterGui Inhalte werden nicht kopiert, bis Player:LoadCharacter() aufgerufen. Wenn Class.StarterGui
Spieler-Skripte
Wenn ein Benutzer der Erlebnisbeitritt, wird der Inhalt in StarterPlayer.StarterPlayerScripts Container-Klon in PlayerScripts ausgeführt. Alle lokalen Skripte und Modul-Skripte werden ausgeführt, wenn sie klonen.
Anders als die Class.Player'- und Class.PlayerGui-Container, ist der Class.PlayerScripts-Container nicht auf den Server zug