Players
*Dieser Inhalt wurde mit KI (Beta) übersetzt und kann Fehler enthalten. Um diese Seite auf Englisch zu sehen, klicke hier.
Der Players enthält Player, die derzeit mit verbundenen Clients auf einen Roblox-Server verbunden sind.Es enthält auch Informationen über die Konfiguration eines Ortes.Es kann Informationen über Spieler abrufen, die nicht mit dem Server verbunden sind, wie Charakteraussehen, Freunde und Miniaturansicht.
Zusammenfassung
Eigenschaften
Aktiviert oder deaktiviert die drei Methoden Players ( BanAsync() , UnbanAsync() und GetBanHistoryAsync() ), die die Ban-API ausmachen.Diese Eigenschaft ist nicht skriptbar und kann nur in Studio modifiziert werden.
Zeigt an, ob Blasenchat aktiviert ist oder nicht. Es wird mit der Players:SetChatStyle()-Methode festgelegt.
Zeigt an, ob characters automatisch wieder erscheinen wird.
Zeigt an, ob der klassische Chat aktiviert ist oder nicht; durch die Players:SetChatStyle()-Methode festgelegt.
Die Player, für die der LocalScript läuft.
Die maximale Anzahl von Spielern, die auf einem Server sein können.
Die bevorzugte Anzahl von Spielern für einen Server.
Steuert die Menge der Zeit, die für das Respawnen eines Spielerscharakters benötigt wird.
Methoden
Lässt den lokalen Spieler die angegebene Nachricht chatten.
Gibt die Player mit den angegebenen UserId zurück, wenn sie im Spiel sind.
Gibt die Player zurück, deren Player.Character der gegebene Instanzentspricht, oder nil wenn keiner gefunden werden kann.
Gibt eine Tabelle aller derzeit verbundenen PlayerObjekte zurück.
Legt fest, ob BubbleChat und ClassicChat verwendet werden, und sagt TeamChat und Chat was zu tun ist.
Lässt den lokalen Spieler die angegebene Nachricht chatten, die nur von Benutzern desselben Teams angezeigt werden kann.
Verbietet Benutzer aus deiner Erlebnis, mit Optionen zur Angabe der Dauer, des Grundes, ob das Verbot sich auf das gesamte Universum oder nur auf den aktuellen Ort bezieht und mehr.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
- CreateHumanoidModelFromDescription(description : HumanoidDescription,rigType : Enum.HumanoidRigType,assetTypeVerification : Enum.AssetTypeVerification):Model
Gibt ein Charaktermodell zurück, das mit allem ausgestattet ist, was in der in HumanoidDescription angegebenen beschrieben wird, und ist R6 oder R15, wie vom RigType angegeben.
Gibt ein Charaktermodell-Setup mit allem zurück, was ausgerüstet ist, um dem Avatar des Benutzers entsprechen, der vom übergebenen userId angegeben wird.
Ruft die Sperr- und Entsperrhistorie eines jeden Benutzers innerhalb des Universums des Erlebnisses ab.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
Gibt Informationen über das Aussehen eines bestimmten Benutzers zurück.
Gibt ein FriendPages-Objekt zurück, das Informationen für alle Freunde des angegebenen Spieler:inenthält.
Gibt die HumanoidDescription für ein bestimmtes Outfit zurück, das mit den Teilen/Farben/Animationen usw. des Outfits festgelegt wird.
Gibt eine HumanoidDescription zurück, die alles angibt, was für den Avatar des Benutzers ausgerüstet ist, der vom übergebenen userId angegeben wird.
Sendet eine Anfrage an die Roblox-Website für den Benutzernamen eines Kontos mit einem bestimmten UserId.
Sendet eine Anfrage an die Roblox-Website für das userId eines Kontos mit einem bestimmten Benutzernamen.
- GetUserThumbnailAsync(userId : number,thumbnailType : Enum.ThumbnailType,thumbnailSize : Enum.ThumbnailSize):Tuple
Gibt die Inhalts-URL einer Spielers thumbnail mit der Größe und eingebenzurück, sowie einen booleschen, der beschreibt, ob das Bild bereit zum Verwenden ist.
Entbannen Spieler, die von Players:BanAsync() oder der Open Cloud-APIfür Benutzerbeschränkungen gebannt wurden.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
Events
Feuert, wenn ein Spieler das Spiel betritt.
Feuert, wenn der Spielserver erkennt, dass sich die Mitgliedschaft eines Spieler:ingeändert hat.
Feuert, wenn ein Spieler kurz davor ist, das Spiel zu verlassen.
Feuert, wenn der Spielserver erkennt, dass sich der Status des Benutzers für ein bestimmtes Abonnement geändert hat.
Eigenschaften
BanningEnabled
Aktiviert oder deaktiviert die drei Methoden Players ( BanAsync() , UnbanAsync() und GetBanHistoryAsync() ), die die Ban-API ausmachen.Diese Eigenschaft ist nicht skriptbar und kann nur in Studio modifiziert werden.
BubbleChat
Diese Eigenschaft zeigt an, ob Blasenchat aktiviert ist oder nicht. Sie wird mit der Players:SetChatStyle()-Methode mit der Enum.ChatStyle enum festgelegt.
Wenn dieser Chat-Modus aktiviert ist, wird das Spiel Chats im Chat-Benutzeroberfläche in der oberen linken Ecke des Bildschirms angezeigt.
Es gibt zwei weitere Chat-Modi, Players.ClassicChat und einen Chat-Modus, in dem sowohl der klassische als auch der Blasenchat aktiviert ist.
CharacterAutoLoads
Diese Eigenschaft zeigt an, ob characters automatisch wieder erscheinen wird. Der Standardwert ist true.
Wenn diese Eigenschaft deaktiviert ist (falsch), wird der Spieler characters nicht spawnen, bis die Funktion Player:LoadCharacter() für jede Player aufgerufen wird, einschließlich wenn Spieler der Erlebnisbeitreten.
Dies kann nützlich sein in Erlebnissen, in denen Spieler begrenzte Leben haben, wie z. B. Wettspiele, in denen Spieler nicht respawnen, bis eine Spielrunde endet.
Code-Beispiele
This example demonstrates one possible usage of the Players.CharacterAutoLoads property.
The example below respawns all players in the game, if dead, once every 10 seconds. This means that players who die 1 second after all players respawn must wait 9 seconds until the script loads all Player.Character again.
First, this script removes a player's character when they die and the Humanoid.Died function fires. This is done so that the respawn loop that executes every 10 seconds reloads that player when it does not find the player's character in the Workspace.
To work as expected, this example should be run within a Script.
local Players = game:GetService("Players")
-- Set CharacterAutoLoads to false
Players.CharacterAutoLoads = false
-- Remove player's character from workspace on death
Players.PlayerAdded:Connect(function(player)
while true do
local char = player.CharacterAdded:Wait()
char.Humanoid.Died:Connect(function()
char:Destroy()
end)
end
end)
-- Respawn all dead players once every 10 seconds
while true do
local players = Players:GetChildren()
-- Check if each player is dead by checking if they have no character, if dead load that player's character
for _, player in pairs(players) do
if not workspace:FindFirstChild(player.Name) then
player:LoadCharacter()
end
end
-- Wait 10 seconds until next respawn check
task.wait(10)
end
ClassicChat
Weist darauf hin, ob oder nicht klassischer Chat aktiviert ist. Diese Eigenschaft wird durch die Players:SetChatStyle() Methode mit der Enum.ChatStyle Enum verwendet.
Wenn dieser Chat-Modus aktiviert ist, wird das Spiel Chats in einer Blase über dem Kopf des Absenders angezeigt.
Es gibt zwei weitere Chat-Modi, Players.BubbleChat und einen Chat-Modus, in dem sowohl der klassische als auch der Blasenchat aktiviert ist.
LocalPlayer
Diese nur lesbare Eigenschaft bezieht sich auf die Player, deren Client das Erlebnis ausführt.
Diese Eigenschaft wird nur für LocalScripts und ModuleScripts definiert, die vom Client ausgeführt werden, da sie von ihnen benötigt werden.Für den Server, auf dem Script Objekte ihren Codesausführen, ist diese Eigenschaft nil .
MaxPlayers
Diese Eigenschaft legt die maximale Anzahl von Spielern fest, die auf einem Server sein können.Dieses Eigenschaft kann nur durch die Einstellungen eines bestimmten Ortes auf dem Creator-Dashboard oder durch die Spieleinstellungen festgelegt werden.
PreferredPlayers
Diese Eigenschaft gibt die Anzahl der Spieler an, auf die der Matchmaker von Roblox Server füllen wird.Diese Zahl wird weniger als die maximale Anzahl von Spielern ( Players.MaxPlayers ) sein, die vom Erlebnis unterstützt werden.
RespawnTime
Diese Eigenschaft steuert die Zeit, in Sekunden, die es dauert, bis ein Spieler wieder erscheint, wenn Players.CharacterAutoLoads wahr ist. Es wird standardmäßig auf 5,0 Sekunden zurückgesetzt.
Dies ist nützlich, wenn du ändern möchtest, wie lange es dauert, bis du wieder erscheinst, basierend auf der Art deines Erlebnisses, aber nicht möchtest, Spieler individuell zu spawnen.
Obwohl diese Eigenschaft von innerhalb einer Script festgelegt werden kann, kannst du sie einfacher direkt auf dem Players Objekt im Studio-Fenster Explorer festlegen.
UseStrafingAnimations
Methoden
Chat
Diese Funktion macht den lokalen Spieler die angegebene Nachricht chatten.Da dieses Element geschützt ist, wird ein Fehler auftreten, wenn versucht wird, es in einem Script oder LocalScript zu verwenden.
Stattdessen kannst du beim Erstellen eines benutzerdefinierten Chat-Systems oder eines Systems, das Zugriff auf den Chat benötigt, stattdessen die Chat Funktion des Chat:Chat() Dienstes verwenden.
Parameter
Die Nachricht chattete.
Rückgaben
Code-Beispiele
This example demonstrates that the Players:Chat() function executes without error if using the Command Bar or a Plugin (assuming the local player can chat freely) and errors if executed in a Script.
-- Command bar
game:GetService("Players"):Chat("Hello, world!") --Results in 'Hello, world!' appearing in the Chat log under your Player's name.
-- Script
local Players = game:GetService("Players")
Players:Chat("Hello, world!") --Errors
GetPlayerByUserId
Diese Funktion durchsucht jedes Player in Players nach einem, dessen Player.UserId den angegebenen userId entspricht.Wenn ein solcher Spieler nicht existiert, gibt er nil zurück.
Diese Methode ist nützlich, um den Käufer eines Entwicklerprodukts mit MarketplaceService.ProcessReceipt zu finden, das eine Tabelle bietet, die den Käufer UserId und nicht einen Verweis auf das Player Objekt selbst enthält.Die meisten Erlebnisse werden eine Referenz auf den Spieler erfordern, um Produkte zu gewähren.
Parameter
Das Player.UserId des Spielers wird angegeben.
Rückgaben
Code-Beispiele
local Players = game:GetService("Players")
local player = Players:GetPlayerByUserId(1)
if player then
print("Player with userId 1 is in this server! Their name is: " .. player.Name)
else
print("Player with userId 1 is not in this server!")
end
GetPlayerFromCharacter
Diese Funktion gibt die Player zurück, die mit dem angegebenen Player.Character oder nil verbunden ist, wenn sie nicht gefunden werden kann.Es entspricht der folgenden Funktion:
local function getPlayerFromCharacter(character)
for _, player in game:GetService("Players"):GetPlayers() do
if player.Character == character then
return player
end
end
end
Diese Methode wird oft verwendet, wenn ein Ereignis im Charakter des Spieler:inausbricht (z. B. ihre Class.Humanoid``Class.Humanoid.Died|dying ).Ein solches Ereignis bezieht sich möglicherweise nicht direkt auf das Objekt, aber diese Methode bietet einfachen Zugriff.Das Gegenteil dieser Funktion kann als das Erhalten des Charakters eines Spielers beschrieben werden.Um dies zu tun, greife einfach auf die Eigenschaft des Eigenschaftenzu.
Parameter
Eine Charakterinstanz, von der du den Spieler abholen möchtest.
Rückgaben
Code-Beispiele
Players:GetPlayerFromCharacter
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local PLAYER_NAME = "Nightriff"
local character = Workspace:FindFirstChild(PLAYER_NAME)
local player = Players:GetPlayerFromCharacter(character)
if player then
print(`Player {player.Name} ({player.UserId}) is in the game`)
else
print(`Player {PLAYER_NAME} is not in the game!`)
end
GetPlayers
Diese Methode gibt eine Tabelle aller derzeit verbundenen Player Objekte zurück.Es funktioniert auf die gleiche Weise, wie Instance:GetChildren() es wäre, außer dass es nur Player Objekte zurückgibt, die unter Players gefunden wurden.Wenn es mit einer for -Schleife verwendet wird, ist es nützlich, um über alle Spieler in einem Spiel zu iterieren.
local Players = game:GetService("Players")for _, player in Players:GetPlayers() doprint(player.Name)end
Skripte, die sich mit Players.PlayerAdded verbinden, versuchen oft, jeden Spieler zu verarbeiten, der sich mit dem Spiel verbindet.Diese Methode ist nützlich für die Iteration über bereits verbundene Spieler, die nicht PlayerAdded abfeuern würden.Die Verwendung dieser Methode stellt sicher, dass kein Spieler vermisst wird!
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("Player: " .. player.Name)
end
for _, player in Players:GetPlayers() do
onPlayerAdded(player)
end
Players.PlayerAdded:Connect(onPlayerAdded)
Rückgaben
Ein Tisch, der alle Spieler auf dem Server enthält.
Code-Beispiele
Diese Code-Beispiel-Liste hört auf Spieler zu spawnen und gibt ihnen Funkeln in den Kopf.Es tut dies, indem es zwei Funktionen definiert, onPlayerSpawned und onPlayerAdded.
local Players = game:GetService("Players")
local function onCharacterAdded(character)
-- Gib ihnen Funkeln auf dem Kopf, wenn sie sie noch nicht haben
if not character:FindFirstChild("Sparkles") then
local sparkles = Instance.new("Sparkles")
sparkles.Parent = character:WaitForChild("Head")
end
end
local function onPlayerAdded(player)
-- Überprüfen, ob sie bereits in gespawnt wurden
if player.Character then
onCharacterAdded(player.Character)
end
-- Höre auf den Spieler (re)spawnen
player.CharacterAdded:Connect(onCharacterAdded)
end
Players.PlayerAdded:Connect(onPlayerAdded)
SetChatStyle
Diese Funktion legt fest, ob BubbleChat und ClassicChat verwendet werden, und sagt TeamChat und Chat, was zu tun ist, indem die Enum.ChatStyle Enum verwendet wird.Da dieses Element geschützt ist, wird ein Fehler auftreten, wenn versucht wird, es in einem Script oder LocalScript zu verwenden.
Diese Funktion wird intern verwendet, wenn der Chat-Modus vom Spiel festgelegt wird.
Parameter
Der angegebene Chat-Stil wird festlegen.
Rückgaben
Code-Beispiele
This example demonstrates that the Players:SetChatStyle() function executes without error if using the Command Bar or a Plugin and errors if executed in a LocalScript.
When executed in the Command Bar, this code sets the chat style to Classic using the Enum.ChatStyle enum.
-- Command bar
game.Players:SetChatStyle(Enum.ChatStyle.Classic) -- Set's chat style to Classic
-- LocalScript
local Players = game:GetService("Players")
Players:SetChatStyle(Enum.ChatStyle.Classic) -- Errors
TeamChat
Diese Funktion macht den Players.LocalPlayer Chat mit der angegebenen Nachricht, die nur von Benutzern desselben Teams angezeigt werden kann.Da dieses Element geschützt ist, wird ein Fehler auftreten, wenn versucht wird, es in einem Script oder LocalScript zu verwenden.
Diese Funktion wird intern verwendet, wenn die Players.LocalPlayer eine Nachricht an ihr Team sendet.
Parameter
Die Nachricht wird chattet.
Rückgaben
Code-Beispiele
This example demonstrates that the Players:TeamChat() function executes without error if using the Command Bar or a Plugin and errors if executed in a LocalScript.
When executed in the Command Bar, the function sends the specified message to all players on the same Team as the Players.LocalPlayer.
-- Command bar
game.Players:TeamChat("Hello World") -- Sends a "Hello World" message to all players on the local player's team
-- LocalScript
local Players = game:GetService("Players")
Players:TeamChat("Hello World") -- Errors
BanAsync
Die Players:BanAsync()-Methode ermöglicht es Ihnen, Benutzer leicht zu verbieten, die gegen die Richtlinien Ihrer Erlebnisverstoßen.Du kannst die Sperrdauer festlegen, die Sperrung auf verdächtige alternative Konten ausbreiten lassen und dem gesperrten Benutzer eine Nachricht gemäß den Verwendungsrichtlinien zukommen lassen.Du solltest auch deine Erfahrungsregeln irgendwo veröffentlichen, wo alle Benutzer zugreifen können, und einen Weg bieten, um sich zu Widerspruch einlegen.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
Sperren und Messaging
Gebannte Benutzer werden sofort vertrieben und verhindert, wieder an deinen Erlebnissen teilzunehmen.Sie werden mit einem Fehler modal präsentiert, der die verbleibende Zeit auf ihrem Ban und Ihrem DisplayReason anzeigt.Roblox' Backend-Systeme werden Spieler auf allen Servern von den Orten vertreiben, die du spezifizierst.DisplayReason kann eine maximale Länge von 400 Zeichen haben und ist einem Filterunterworfen.Für weitere Informationen über akzeptablen Modaltext siehe Verbot von Nachrichten.
Orte und Universum
Standardmäßig erstrecken sich Verbote auf jeden Ort innerhalb dieses Universums.Um das Verbot nur auf den Ort zu beschränken, von dem diese API aufgerufen wird, konfigurieren Sie ApplyToUniverse auf false.Wenn jedoch ein Benutzer am Startplatz des Universums gebannt wird, führt dies effektiv dazu, dass der Benutzer aus der Gesamtheit des Universums ausgeschlossen wird, unabhängig davon, ob ein universeller Ban vorliegt oder nicht.
Alternativen Konten
Benutzer spielen oft unter mehreren verschiedenen Konten, die als alternative Konten oder Alt-Konten bekannt sind, die manchmal verwendet werden, um Kontosperrungen zu umgehen.Um dir zu helfen, verbotene Benutzer außerhalb zu halten, wird das Standardverhalten dieser API alle Verbote von dem Quellkonto, das du gebannt hast, auf eines seiner vermuteten alternativen Konten verbreiten.Du kannst die Verbreitung von Verboten auf alternative Konten deaktivieren, indem du ExcludeAltAccounts auf true konfigurierst.
Sperrdauer
Nicht alle Verstöße sind gleich, sodass nicht alle Verbote derselben Länge sein sollten.Diese API ermöglicht es dir, die Dauer des sperren, in Sekunden, mit dem Feld Duration zu konfigurieren.Um ein permanentes sperrenzu spezifizieren, setze das Feld auf -1.Vielleicht möchten Sie die Sperrdauer auch dynamisch konfigurieren, basierend auf der Sperrgeschichte des Benutzers, die Sie mit Hilfe von Players:GetBanHistoryAsync() abrufen können.Zum Beispiel möchten Sie vielleicht die Anzahl der Verbote, die Dauer früherer Verbote oder die Logik der Notizen berücksichtigen, die Sie unter PrivateReason speichern, die bis zu 1000 Zeichen lang sein können und nicht gefiltert werden.PrivateReason Notizen werden niemals mit dem Client geteilt und können als sicher von Angreifern betrachtet werden.
Fehler und Beschleunigung
Diese Methode ruft eine HTTP-Anforderung an Backend-Dienste aus, die beschränkt werden und möglicherweise fehlschlagen.Wenn du diese API mit mehr als einem UserId aufrufst, versucht diese Methode, die HTTP-Anforderung für jede ID zu machen.Es wird dann alle Fehlermeldungen zusammenführen und sie als getrennte Liste mit Komma verbinden.Wenn diese Methode zum Beispiel für fünf Benutzer aufgerufen wird und Anfragen für diejenigen mit UserIds 2 und 4 fehlschlagen, erscheint die folgende Fehlermeldung:
HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception
Die Nachricht wird immer failure for UserId {} enthalten, wenn es sich um einen HTTP-Fehler handelt.
Client-seitige Anforderung
Aufgrund der Risiken, die mit der Sperrung von Benutzern verbunden sind, kann diese Methode nur auf dem Backend-Erfahrungsserver aufgerufen werden (Client-Seitenanrufe führen zu einem Fehler).Sie können diese API in Studio während kooperativer Schöpfungoder in einem Teamtest testen, aber die Verbote gelten nicht für die Produktion.
Diese API verwendet die Benutzeinschränkungen-Öffentliche Cloud-API. Du kannst diese APIs nutzen, um deine Verbote in Drittanwendungen zu verwalten.
Parameter
UserIds (erforderlich; Array) — Array von UserIds Spielern, die gebannt werden sollen. Die maximale Größe beträgt 50 .
ApplyToUniverse (optional; boolesisch) — Ob Ban sich auf alle Orte innerhalb des Universumausbreitet. Standard ist true .
Duration (erforderlich; ganzzahlig) — Dauer des sperren, in Sekunden.Permanente Verbote sollten einen Wert von -1 haben.0 und alle anderen negativen Werte sind ungültig.
DisplayReason (erforderlich; String) — Die Nachricht, die den Benutzern angezeigt wird, wenn sie versuchen, sich einem Erlebnis beizutreten, und es ihnen nicht gelingt.Die maximale Zeichenlänge beträgt 400 .
PrivateReason (erforderlich; String) — Interne Nachrichten, die beim Abrufen des Ban-Verlaufs des Benutzers zurückgegeben werden. Die maximale Zeichenlänge beträgt 1000 .
ExcludeAltAccounts (optional; boolesisch) — Wenn true , versucht Roblox nicht, alternative Konten zu verbieten. Standard ist false .
Rückgaben
Code-Beispiele
The following example bans a user with a duration calculated from their ban history, scoped to the entire universe and all of the user's alternate accounts.
local Players = game:GetService("Players")
if shouldBeBanned(player) then
local banHistoryPages = Players:GetBanHistoryAsync(player.UserId)
local duration = getNextBanDuration(banHistoryPages) -- Creator-implemented logic
local config: BanConfigType = {
UserIds = { player.UserId },
Duration = duration,
DisplayReason = "You violated community guideline #5",
PrivateReason = "Put anything here that the user should not know but is helpful for your records",
ExcludeAltAccounts = false,
ApplyToUniverse = true,
}
local success, err = pcall(function()
return Players:BanAsync(config)
end)
print(success, err)
end
CreateHumanoidModelFromDescription
Gibt ein Charaktermodell zurück, das mit allem ausgestattet ist, was in der in HumanoidDescription angegebenen beschrieben wird, und ist R6 oder R15, wie vom RigType angegeben.
Parameter
Gibt das Aussehen des zurückgegebenen Charakters an.
Gibt an, ob der zurückgegebene Charakter R6 oder R15 sein wird.
Die Überprüfung des Asset-Typs bestimmt, ob diese Funktion Modelle laden wird oder nicht (Sie sollten dies auf Immerhin einstellen, es sei denn, Sie möchten nicht-katalogische Assets laden).
Rückgaben
Ein menschliches Charaktermodell.
Code-Beispiele
This code sample creates a Humanoid Model from the passed in HumanoidDescription and parents the Model to the Workspace.
game.Players:CreateHumanoidModelFromDescription(Instance.new("HumanoidDescription"), Enum.HumanoidRigType.R15).Parent =
game.Workspace
CreateHumanoidModelFromUserId
Gibt ein Charaktermodell-Setup mit allem zurück, was ausgerüstet ist, um dem Avatar des Benutzers entsprechen, der vom übergebenen userId angegeben wird.Dazu gehören, ob dieser Charakter derzeit R6 oder R15 ist.
Parameter
Die Benutzer-ID für einen Roblox-Benutzer. (Die Benutzer-ID ist die Nummer im Profil des Benutzers z. B. www.roblox.com/users/1/profile).
Rückgaben
Ein menschliches Charaktermodell.
Code-Beispiele
This code sample creates a Humanoid Model to match the avatar of the passed in User ID, and parents the Model to the Workspace.
game.Players:CreateHumanoidModelFromUserId(1).Parent = game.Workspace
GetBanHistoryAsync
Ruft die Sperr- und Entsperrhistorie eines jeden Benutzers innerhalb des Universums des Erlebnisses ab.Diese Methode gibt eine BanHistoryPages Instanz zurück, die von Pages erbt.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
Dieser Funktionsaufruf wird nur auf Produktionsspielservern erfolgreich sein und nicht auf Clientgeräten oder in Studio.
Diese API verwendet die Benutzeinschränkungen-Öffentliche Cloud-API. Du kannst diese APIs nutzen, um deine Verbote in Drittanwendungen zu verwalten.
Parameter
Rückgaben
Siehe BanHistoryPages für Rückgabeverweis.
GetCharacterAppearanceInfoAsync
Diese Funktion gibt Informationen über den Avatar eines Spieler:in(Ausrüstung ignorieren) auf der Roblox-Website in Form eines Wörterbuchs zurück.Es ist nicht mit GetCharacterAppearanceAsync zu verwechseln, das tatsächlich die von dieser Methode beschriebenen Assets laden.Du kannst InsertService:LoadAsset() verwenden, um die Assets zu laden, die im Avatar des Spieler:inverwendet werden.Die Struktur des zurückgegebenen Dictionaries ist wie folgt:
<th>Typ</th><th>Beschreibung</th></tr></thead><tr><td><code>ressourcen</code></td><td>tabelle (siehe unten)</td><td>Beschreibt die ausgerüsteten Assets (Hüte, Körperteile usw.)</td></tr><tr><td><code>Körperfarben</code></td><td>tabelle (siehe unten)</td><td>Beschreibt die BrickColor-Werte für jede Gliedmaße</td></tr><tr><td><code>Körperfarbe3s</code></td><td>tabelle (siehe unten)</td><td>Beschreibt die Color3-Instanz für jede Gliedmaße, die möglicherweise nicht perfekt mit BodyColors übereinstimmt</td></tr><tr><td><code>默认裤子Applied</code></td><td>bool</td><td>Beschreibt, ob Standard-Hosen angewendet werden</td></tr><tr><td><code>默认ShirtAngewendet</code></td><td>bool</td><td>Beschreibt, ob das Standardhemd angewendet wird</td></tr><tr><td><code>emotionen</code></td><td>tabelle (siehe unten)</td><td>Beschreibt die ausgerüsteten Emote-Animationen</td></tr><tr><td><code>SpielerAvatarTyp</code></td><td>string</td><td>Entweder "R15" oder "R6"</td></tr><tr><td><code>skalierungen</code></td><td>tabelle (siehe unten)</td><td>Beschreibt verschiedene Körperskalierungsfaktoren</td></tr>
Namen |
---|
Assets-Untertabellierung
Die assets Tabelle ist ein Array von Tabellen, die die folgenden Schlüssel enthält, die die derzeit von dem Spieler:inausgerüsteten Assets beschreiben:
<th>Typ</th><th>Beschreibung</th></tr></thead><tr><td><code>id</code></td><td>zahl</td><td>Die Asset-ID des ausgerüsteten Objekt</td></tr><tr><td><code>AssetTyp</code></td><td>tabelle</td><td>Eine Tabelle mit den Feldern <code>Name</code> und <code>ID</code>, die jedes beschreibt die Art der ausgerüsteten Ressource ("Hut", "Gesicht", usw.)</td></tr><tr><td><code>bezeichnung</code></td><td>string</td><td>Der Name des ausgerüsteten Objekt</td></tr>
Namen |
---|
Skalierungsuntertisch
Die scales Tabelle hat die folgenden Schlüssel, jede ein Zahl entspricht einer Humanoid Eigenschaften: bodyType , head , height , proportion , depth , width .
Untertabelle der Körperfarben
Die bodyColors Tabelle hat die folgenden Schlüssel, jede ein Zahl, die einer BrickColor ID-Nummer entspricht, die mit BrickColor.new(id) verwendet werden kann: leftArmColorId , torsoColorId , rightArmColorId , headColorId , leftLegColorId , rightLegColorId .
Parameter
Die * iPad-ID des angegebenen Spieler:in.
Rückgaben
Ein Wörterbuch mit Informationen über das Aussehen eines bestimmten Benutzers.
Code-Beispiele
Sometimes it is best to see an example of the returned dictionary structure in pure Lua. Here is one such example of a player whose avatar uses a package and wears several hats. Can you guess who it is?
local result = {
playerAvatarType = "R15",
defaultPantsApplied = false,
defaultShirtApplied = false,
scales = {
bodyType = 0,
head = 1,
height = 1.05,
proportion = 0,
depth = 0.92,
width = 0.85,
},
bodyColors = {
leftArmColorId = 1030,
torsoColorId = 1001,
rightArmColorId = 1030,
headColorId = 1030,
leftLegColorId = 1001,
rightLegColorId = 1001,
},
assets = {
{
id = 1031492,
assetType = {
name = "Hat",
id = 8,
},
name = "Striped Hat",
},
{
id = 13062491,
assetType = {
name = "Face Accessory",
id = 42,
},
name = "Vision Française ",
},
{
id = 16598440,
assetType = {
name = "Neck Accessory",
id = 43,
},
name = "Red Bow Tie",
},
{
id = 28999228,
assetType = {
name = "Face",
id = 18,
},
name = "Joyous Surprise",
},
{
id = 86896488,
assetType = {
name = "Shirt",
id = 11,
},
name = "Expensive Red Tuxedo Jacket",
},
{
id = 86896502,
assetType = {
name = "Pants",
id = 12,
},
name = "Expensive Red Tuxedo Pants",
},
{
id = 376530220,
assetType = {
name = "Left Arm",
id = 29,
},
name = "ROBLOX Boy Left Arm",
},
{
id = 376531012,
assetType = {
name = "Right Arm",
id = 28,
},
name = "ROBLOX Boy Right Arm",
},
{
id = 376531300,
assetType = {
name = "Left Leg",
id = 30,
},
name = "ROBLOX Boy Left Leg",
},
{
id = 376531703,
assetType = {
name = "Right Leg",
id = 31,
},
name = "ROBLOX Boy Right Leg",
},
{
id = 376532000,
assetType = {
name = "Torso",
id = 27,
},
name = "ROBLOX Boy Torso",
},
},
}
print(result)
GetFriendsAsync
Die Funktion GetFriends gibt ein Objekt zurück, das Informationen für alle Freunde des angegebenen Benutzers enthält.Die Elemente innerhalb des FriendPages -Objekts sind Tabellen mit den folgenden Feldern:
<th>Typ</th><th>Beschreibung</th></tr></thead><tr><td>Id</td><td>zahl64</td><td>Die User-ID des Freund:in</td></tr><tr><td>Benutzername</td><td>string</td><td>Der Benutzername des Freund:in</td></tr><tr><td>Anzeigename</td><td>string</td><td>Die <code>Class.Player.DisplayName|display name</code> des Freund:in.</td></tr>
Namen |
---|
Siehe die Codebeispiele für eine einfache Möglichkeit, alle Freunde eines Spieler:inzu durchlaufen.
Parameter
Die Benutzer-ID des Spielers, die angegeben wird.
Rückgaben
Code-Beispiele
This code sample loads the Player.UserId of the player whose username is provided at the top of the script by using Players:GetUserIdFromNameAsync(). Then, it gets a FriendPages object by calling Players:GetFriendsAsync() and iterates over each entry using the iterPageItems function. The username of each connection is stored in a table, then printed at the end.
local Players = game:GetService("Players")
local USERNAME = "Cozecant"
local function iterPageItems(pages)
return coroutine.wrap(function()
local pagenum = 1
while true do
for _, item in ipairs(pages:GetCurrentPage()) do
coroutine.yield(item, pagenum)
end
if pages.IsFinished then
break
end
pages:AdvanceToNextPageAsync()
pagenum = pagenum + 1
end
end)
end
-- First, get the user ID of the player
local userId = Players:GetUserIdFromNameAsync(USERNAME)
-- Then, get a FriendPages object for their connections
local friendPages = Players:GetFriendsAsync(userId)
-- Iterate over the items in the pages. For FriendPages, these
-- are tables of information about the connection, including Username.
-- Collect each username in a table
local usernames = {}
for item, _pageNo in iterPageItems(friendPages) do
table.insert(usernames, item.Username)
end
print("Connections of " .. USERNAME .. ": " .. table.concat(usernames, ", "))
GetHumanoidDescriptionFromOutfitId
Gibt die HumanoidDescription für eine bestimmte Outfit-ID zurück, die mit den Teilen/Farben/Animationen usw. des Outfits festgelegt wird.Ein Outfit kann von einem Benutzer erstellt worden sein oder es kann das Outfit für ein von Roblox erstelltes Bündel sein.
Parameter
Die ID des Outfits, für das die HumanoidDescription gesucht wird.
Rückgaben
HumanoidDescription initialisiert mit der Spezifikation für die übermittelte Outfit-ID.
Code-Beispiele
Shows how to get the HumanoidDescription for bundle 799 (Fishman).
local Players = game:GetService("Players")
local Workspace = game:GetService("Workspace")
local function getOutfitId(bundleId)
if bundleId <= 0 then
return
end
local info = game.AssetService:GetBundleDetailsAsync(bundleId)
if not info then
return
end
for _, item in pairs(info.Items) do
if item.Type == "UserOutfit" then
return item.Id
end
end
return nil
end
local function getHumanoidDescriptionBundle(bundleId)
local itemId = getOutfitId(bundleId)
if itemId and itemId > 0 then
return Players:GetHumanoidDescriptionFromOutfitId(itemId)
end
return nil
end
local humanoidDescription = getHumanoidDescriptionBundle(799)
local humanoidModel = Players:CreateHumanoidModelFromDescription(humanoidDescription, Enum.HumanoidRigType.R15)
humanoidModel.Parent = Workspace
GetHumanoidDescriptionFromUserId
Gibt eine HumanoidDescription zurück, die alles angibt, was für den Avatar des Benutzers ausgerüstet ist, der vom übergebenen userId angegeben wird.Enthält auch Schuppen und Körperfarben.
Parameter
Die Benutzer-ID für einen Roblox-Benutzer. (Die Benutzer-ID ist die Nummer im Profil des Benutzers z. B. www.roblox.com/users/1/profile).
Rückgaben
HumanoidDescription initialisiert mit der vom Benutzer übermittelten Avatar-Spezifikation.
Code-Beispiele
This code sample shows how to use GetHumanoidDescriptionFromUserId() to create a Humanoid Model.
game.Players:CreateHumanoidModelFromDescription(
game.Players:GetHumanoidDescriptionFromUserId(1),
Enum.HumanoidRigType.R15
).Parent =
game.Workspace
GetNameFromUserIdAsync
Die Funktion GetNameFromUserIdAsync Players sendet eine Anfrage an die Roblox-Website, die fragt, was der Benutzername des Kontos mit dem angegebenen UserId ist.
Diese Methode gibt Fehler aus, wenn kein Konto mit der angegebenen Benutzer-ID existiert.Wenn du dir nicht sicher bist, dass ein solcher Account existiert, wird empfohlen, Anrufe an diese Funktion mit pcall() zu verpacken.Darüber hinaus können Sie Ergebnisse manuell zwischenspeichern, um zukünftige Anrufe mit derselben Benutzer-ID schnell zu machen.Siehe die Codebeispiele, um mehr zu erfahren.
Parameter
Das Player.UserId des Spielers wird angegeben.
Rückgaben
Der Name eines Benutzers mit dem angegebenen Player.UserId.
Code-Beispiele
This code sample demonstrates using the Players:GetNameFromUserIdAsync() method to get a user's Player.Name from their Player.UserId.
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local nameOne = Players:GetNameFromUserIdAsync(118271)
local nameTwo = Players:GetNameFromUserIdAsync(131963979)
print(nameOne, nameTwo)
-- prints: "RobloxRulez docsRule"
This code sample demonstrates using the Players:GetNameFromUserIdAsync() method to get a user's Player.Name from their Player.UserId. Because GetNameFromUserIdAsync() yields, you can avoid calling it for the same Name using a table to store each UserId:Name pair found, called a cache. pcall() is used to catch the failure in case the Name doesn't exist.
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'Name' as they are found.
-- If we lookup a 'Name' using the same 'UserId', the 'Name' will come
-- from cache (fast) instead of GetNameFromUserIdAsync() (yields).
local cache = {}
function getNameFromUserId(userId)
-- First, check if the cache contains 'userId'
local nameFromCache = cache[userId]
if nameFromCache then
-- if a value was stored in the cache at key 'userId', then this 'nameFromCache'
-- is the correct Name and we can return it.
return nameFromCache
end
-- If here, 'userId' was not previously looked up and does not exist in the
-- cache. Now we need to use GetNameFromUserIdAsync() to look up the name
local name
local success, _ = pcall(function()
name = Players:GetNameFromUserIdAsync(userId)
end)
if success then
-- if 'success' is true, GetNameFromUserIdAsync() successfully found the
-- name. Store this name in the cache using 'userId' as the key so we
-- never have to look this name up in the future. Then return name.
cache[userId] = name
return name
end
-- If here, 'success' was false, meaning GetNameFromUserIdAsync()
-- was unable to find the 'name' for the 'userId' provided. Warn the user
-- this happened and then return nothing, or nil.
warn("Unable to find Name for UserId:", userId)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a UserId is used, GetNameFromUserIdAsync() will be called
local nameOne = getNameFromUserId(118271)
local nameTwo = getNameFromUserId(131963979)
-- Because 118271 was previously used, get its Name from the cache
local nameOneQuick = getNameFromUserId(118271)
print(nameOne, nameTwo, nameOneQuick)
-- prints: "RobloxRulez docsRule RobloxRulez"
GetUserIdFromNameAsync
Diese Funktion sendet eine Abfrage an die Roblox-Website, die fragt, was der Player.UserId des Kontos mit dem angegebenen Player Namen ist.
Diese Methode gibt Fehler aus, wenn kein Konto mit dem angegebenen Benutzernamen existiert.Wenn du dir nicht sicher bist, dass ein solcher Account existiert, wird empfohlen, Anrufe an diese Funktion mit pcall() zu verpacken.Darüber hinaus können Sie Ergebnisse manuell zwischenspeichern, um zukünftige Anrufe mit demselben Benutzernamen schnell durchzuführen.Siehe die Codebeispiele, um mehr zu erfahren.
Parameter
Der Benutzername des Spielers wird angegeben.
Rückgaben
Das Player.UserId eines Benutzers, dessen Name angegeben wird.
Code-Beispiele
This code sample demonstrates using the Players:GetUserIdFromNameAsync() method to get a user's Player.UserId from their Player.Name.
local Players = game:GetService("Players")
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
local userIdOne = Players:GetUserIdFromNameAsync("RobloxRulez")
local userIdTwo = Players:GetUserIdFromNameAsync("docsRule")
print(userIdOne, userIdTwo)
-- prints: "118271 131963979"
This code sample demonstrates using the Players:GetUserIdFromNameAsync() method to get a user's Player.UserId from their Player.Name. Because GetUserIdFromNameAsync() yields, you can avoid calling it for the same UserId using a table to store each Name:UserId pair found, called a cache. pcall() is used to catch the failure in case the UserId doesn't exist.
local Players = game:GetService("Players")
-- Create a table called 'cache' to store each 'UserId' as they are found.
-- If we lookup a 'UserId' using the same 'Name', the 'UserId' will come
-- from cache (fast) instead of GetUserIdFromNameAsync() (yields).
local cache = {}
function getUserIdFromName(name)
-- First, check if the cache contains 'name'
local userIdFromCache = cache[name]
if userIdFromCache then
-- if a value was stored in the cache at key 'name', then this 'userIdFromCache'
-- is the correct UserId and we can return it.
return userIdFromCache
end
-- If here, 'name' was not previously looked up and does not exist in the
-- cache. Now we need to use GetUserIdFromNameAsync() to look up the userId
local userId
local success, _ = pcall(function()
userId = Players:GetUserIdFromNameAsync(name)
end)
if success then
-- if 'success' is true, GetUserIdFromNameAsync() successfully found the
-- userId. Store this userId in the cache using 'name' as the key so we
-- never have to look this userId up in the future. Then return userId.
cache[name] = userId
return userId
end
-- If here, 'success' was false, meaning GetUserIdFromNameAsync()
-- was unable to find the 'userId' for the 'name' provided. We can warn the
-- user this happened and then return nothing, or nil.
warn("Unable to find UserId for Name:", name)
return nil
end
-- Example Data:
-- UserId: 118271 Name: "RobloxRulez"
-- UserId: 131963979 Name: "docsRule"
-- The first time a Name is used, GetUserIdFromNameAsync() will be called
local userIdOne = getUserIdFromName("RobloxRulez")
local userIdTwo = getUserIdFromName("docsRule")
-- Because "RobloxRulez" was previously used, get its UserId from the cache
local userIdOneQuick = getUserIdFromName("RobloxRulez")
print(userIdOne, userIdTwo, userIdOneQuick)
-- prints: "118271 131963979 118271"
GetUserThumbnailAsync
Diese Funktion gibt die Inhalts-URL eines Bildes des Avatars eines Spieler:inzurück, gegeben seine UserId , die gewünschte Bildgröße als ein Enum.ThumbnailSize Enum und den gewünschten Typ als ein Enum.ThumbnailType Enum.Es gibt auch eine boolesche Rückgabe, die beschreibt, ob das Bild bereit zum Gebrauch ist.
Am häufigsten wird diese Methode mit ImageLabel.Image oder Decal.Texture verwendet, um Benutzeravatarbilder in einem Erlebnis anzuzeigen.
Parameter
Das Player.UserId des Spielers wird angegeben.
Ein Enum.ThumbnailType beschreibend die Art von Miniaturansicht.
Ein Enum.ThumbnailSize Spezifizieren der Größe der Miniaturansicht.
Rückgaben
Eine Tuplizität, die die Inhalts-URL einer Benutzeransicht enthält, basierend auf den angegebenen Parametern, und ein boolesches Attribut, das beschreibt, ob das Bild bereit ist, verwendet zu werden oder nicht.
Code-Beispiele
This code sample displays the current player's thumbnail in a parent ImageLabel by using Players:GetUserThumbnailAsync() and setting the Image() property as well as its Size().
local Players = game:GetService("Players")
local player = Players.LocalPlayer
local PLACEHOLDER_IMAGE = "rbxassetid://0" -- replace with placeholder image
-- fetch the thumbnail
local userId = player.UserId
local thumbType = Enum.ThumbnailType.HeadShot
local thumbSize = Enum.ThumbnailSize.Size420x420
local content, isReady = Players:GetUserThumbnailAsync(userId, thumbType, thumbSize)
-- set the ImageLabel's content to the user thumbnail
local imageLabel = script.Parent
imageLabel.Image = (isReady and content) or PLACEHOLDER_IMAGE
imageLabel.Size = UDim2.new(0, 420, 0, 420)
UnbanAsync
Entbannt Spieler, die von Players:BanAsync() oder der Benutzerbeschränkungen Open Cloud API gebannt wurden.Diese Methode ist durch die EigenschaftenPlayers.BanningEnabled aktiviert und deaktiviert, die Sie im Studio umschalten können.
Wie Players:BanAsync() , nimmt diese Methode ein config Wörterbuch auf, das es Ihnen ermöglicht, Benutzer massenweise zu entsperren.Dies konfiguriert die Benutzer, die nicht gebannt sind, und den Bereich, von dem sie nicht gebannt sind.
Entbannungen werden nur dann wirksam werden, wenn sie mit demselben ApplyToUniverse Umfang gebannt werden.Zum Beispiel wird eine Entbannung mit ApplyToUniverse auf true gesetzt, keine vorherige Entbannung mit ApplyToUniverse auf false ungültig machen.Mit anderen Worten, ein Universumsebene-Entban wird keinen sperrenungültig machen.Das Gegenteil gilt ebenfalls.
Diese Methode ruft eine HTTP-Anforderung an Backend-Dienste aus, die gedrosselt werden und möglicherweise fehlschlagen.Wenn Sie diese API mit mehreren Benutzer-IDs aufrufen, versucht diese Methode, diese HTTP-Anforderung für jede Benutzer-ID zu machen.Es wird dann alle Fehlermeldungen zusammenführen und sie als getrennte Liste mit Komma verbinden.Wenn zum Beispiel diese Methode für fünf UserIds : {1, 2, 3, 4, 5} aufgerufen wird und Anfragen für Benutzer 2 und 4 fehlschlagen, erscheint die folgende Fehlermeldung: HTTP failure for UserId 2: Timedout, HTTP 504 (Service unavailable) failure for UserId 4: Service exception. Die Nachricht wird immer failure for UserId {} enthalten, wenn es sich um einen HTTP-Fehler handelt.Es ist unbestimmtes Verhalten, wenn du sowohl gültige als auch ungültige Benutzer-IDs übermittelst, d. h.ein UserId, das keine positive Zahl ist, da einige Netzanfragen vor der Validierung aller Eingaben erfolgreich sein können.
Aufgrund der Risiken, die mit dem Bannen von Benutzern verbunden sind, kann diese Methode nur auf dem Serveraufgerufen werden.Client-seitige Anrufe ergeben einen Fehler.Sie können diese API in Studio, Team Createund Team testen testen, aber die Verbote gelten nicht für die Produktion.Dieser Funktionsaufruf wird nur versuchen, Sperranfragen auf Produktionsspielservern zu stellen und nicht im Studio-Test.Alle Eingabegültigkeitsprüfungsschritte werden jedoch weiterhin in Studio funktionieren.
Diese API verwendet die Benutzeinschränkungen-Öffentliche Cloud-API. Du kannst diese APIs nutzen, um deine Verbote in Drittanwendungen zu verwalten.
Parameter
<th>Typ</th><th>Beschreibung</th></tr></thead><tbody><tr><td><code>BenutzerIDs</code></td><td>array</td><td>Benutzer-IDs, die in das Erlebnis (en) gezwungen werden dürfen. Die maximale Größe beträgt <code>50</code>.</td></tr><tr><td><code>An das Universum anwenden</code></td><td>boolesisch</td><td>Verbreitet die Entbannung an alle Orte innerhalb dieses Universums.</td></tr></tbody>
Namen |
---|
Rückgaben
Code-Beispiele
The following un-bans a user, as well as another unrelated account with UserId 789.
local Players = game:GetService("Players")
if shouldBeUnbanned(player) then
local config: UnbanConfigType = {
UserIds = { player.UserId, 789 },
ApplyToUniverse = false,
}
local success, err = pcall(function()
return Players:UnbanAsync(config)
end)
print(success, err)
end
Events
PlayerAdded
Dieses Ereignis wird ausgelöst, wenn ein Spieler das Spiel betritt.Dies wird verwendet, um ein Ereignis abzufeuern, wenn ein Spieler einem Spiel beitritt, z. B. das Laden gespeicherter GlobalDataStore des Spieler:in.
Dies kann neben dem Ereignis Players.PlayerRemoving verwendet werden, das ausgelöst wird, wenn ein Spieler kurz vor dem Verlassen des Spiels steht.Wenn du Instanzeine Nachricht drucken möchtest, wenn sich jedes Mal ein neuer Spieler dem Spiel anschließt oder es verlässt:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Wenn du verfolgen möchtest, wann der Charakter eines Spieler:indem Spiel hinzugefügt oder entfernt wird, z. B. wenn ein Spieler respawnet oder stirbt, kannst du die Player.CharacterAdded- und Player.CharacterRemoving-Funktionen verwenden.
Beachten Sie, dass dieses Ereignis im Modus Spielen nicht wie erwartet funktioniert, da der Spieler erstellt wird, bevor Skripte ausgeführt werden, die sich mit PlayerAdded.Um diesen Fall und Fälle zu handhaben, in denen das Skript nach dem Betreten eines Spielers hinzugefügt wird, erstelle eine onPlayerAdded()-Funktion, die du aufrufen kannst, um den Eingang eines Spieler:inzu verwalten.
Parameter
Eine Instanz des Spielers, der dem Spiel beigetreten ist.
Code-Beispiele
This example will print "A player has entered: " followed by the name of the player that enters/joins a game every time a player joins.
local Players = game:GetService("Players")
local function onPlayerAdded(player)
print("A player has entered: " .. player.Name)
end
Players.PlayerAdded:Connect(onPlayerAdded)
PlayerMembershipChanged
Dieses Ereignis wird ausgelöst, wenn der Spielserver erkennt, dass sich die Mitgliedschaft eines Spieler:ingeändert hat.Beachten Sie jedoch, dass der Server nur versuchen wird, die Mitgliedschaft zu überprüfen und zu aktualisieren nachdem der Premium-Modus geschlossen wurde.Um Fälle zu berücksichtigen, in denen der Benutzer Premium außerhalb des Spiels kauft, während er spielt, müssen Sie ihn immer noch auffordern, Premium zu kaufen; dann wird eine Nachricht angezeigt, die ihm mitteilt, dass er bereits aktualisiert wurde und sobald er die Modal geschlossen hat, wird der Spielserver seine Mitgliedschaft aktualisieren und dieses Ereignis auslösen.
Um mehr über und die Einbindung von Premium in deine Erfahrung und die Monetarisierung mit dem Engagement-basierten Auszahlungssystem zu erfahren, siehe Engagement-basierte Auszahlungen.
Siehe auch:
- MarketplaceService:PromptPremiumPurchase() , wird verwendet, um einen Benutzer zur Kauf von Premium zu veranlassen
- MarketplaceService.PromptPremiumPurchaseFinished , feuert ab, wenn die Premium-Kauf-UI geschlossen wird
Parameter
Code-Beispiele
The function in the code sample runs after the game server confirms a player's membership has changed. It demonstrates how you can grant players access to Premium benefits (or revoke them) when their membership status changes.
local Players = game:GetService("Players")
local function grantPremiumBenefits(player)
-- Grant the player access to Premium-only areas, items, or anything you can imagine!
print("Giving", player, "premium benefits!")
end
local function playerAdded(player)
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
local function playerMembershipChanged(player)
print("Received event PlayerMembershipChanged. New membership = " .. tostring(player.MembershipType))
if player.MembershipType == Enum.MembershipType.Premium then
grantPremiumBenefits(player)
end
end
Players.PlayerAdded:Connect(playerAdded)
Players.PlayerMembershipChanged:Connect(playerMembershipChanged)
PlayerRemoving
Das Ereignis Entfernen des Spielers feuert genau bevor ein Player das Spiel verlässt.Dieses Ereignis feuert vor ChildRemoved , bevor Players passiert, und verhält sich in gewissem Maße ähnlich wie Instance.DescendantRemoving .Da es vor der tatsächlichen Entfernung eines Player feuert, ist dieses Ereignis nützlich für die Speicherung von Spielerdaten mit einem GlobalDataStore .
Dies kann neben dem Ereignis Player.PlayerAdded verwendet werden, das ausgelöst wird, wenn ein Spieler dem Spiel beitritt.Zum Instanz, um jedes Mal eine Nachricht auszudrucken, wenn ein neuer Spieler dem Spiel beitritt oder es verlässt:
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
print(player.Name .. " joined the game!")
end)
Players.PlayerRemoving:Connect(function(player)
print(player.Name .. " left the game!")
end)
Wenn du verfolgen möchtest, wann der Charakter eines Spieler:indem Spiel hinzugefügt oder entfernt wird, z. B. wenn ein Spieler respawnet oder stirbt, kannst du die Player.CharacterAdded- und Player.CharacterRemoving-Funktionen verwenden.
Parameter
Eine Instanz des Spielers, der das Spiel verlässt.
Code-Beispiele
This code will print "A player has left: ", followed by the player's name, every time a player leaves:
local Players = game:GetService("Players")
local function onPlayerRemoving(player)
print("A player has left: " .. player.Name)
end
Players.PlayerRemoving:Connect(onPlayerRemoving)
UserSubscriptionStatusChanged
Dieses Ereignis wird ausgelöst, wenn der Spielserver erkennt, dass sich der Status des Benutzers für ein bestimmtes Abonnement geändert hat.Beachten Sie, dass der Server nur versucht, den Status nachdem der Abonnement-Kauf-Modus geschlossen wurde, zu überprüfen und zu aktualisieren.Um Fälle zu berücksichtigen, in denen der Benutzer die Abonnement außerhalb des Spiels kauft, müssen Sie ihn immer noch auffordern, das Abonnement zu kaufen; die Aufforderung zeigt eine Nachricht an, die dem Benutzer mitteilt, dass er bereits abonniert ist, und nachdem er die Modal geschlossen hat, aktualisiert der Spielserver ihren Abonnementstatus und aktiviert dieses Ereignis.
Beachten Sie, dass nur Server-Skripte dieses Ereignis erhalten.
Parameter
Benutzer, dessen Abonnementstatus sich geändert hat.
Die ID der Abonnenten mit einer Statusänderung.