Utenti e giocatori

*Questo contenuto è tradotto usando AI (Beta) e potrebbe contenere errori. Per visualizzare questa pagina in inglese, clicca qui.

Quando un utente si unisce a un'esperienza, Roblox lo rappresenta come un Giocatore nel modello di dati.L'oggetto contiene informazioni sull'utente che è universale tra le esperienze, come il suo Nome utente, la lista degli amici, il personaggio dell'avatar salvato e il inserisci / scrividi adesione a Roblox, oltre alle proprietà, ai metodi e agli eventi che influiscono sul ciclo di vita dell'utente tra l'adesione e l'uscita dalla tua esperienza.

Il servizio Players contiene tutte le Player istanze in un'esperienza.Ogni oggetto Player rappresenta un utente nell'esperienza, e ha quattro contenitori importanti che puoi utilizzare per personalizzare l'esperienza di un utente: Backpack , StarterGear , PlayerGui e PlayerScripts .

Ciclo vita

Gli script del lato client e del lato server possono entrambi connettersi agli eventi Players.PlayerAdded e Players.PlayerRemoved per eseguire azioni in risposta all'iter di vita di un oggetto Player .Possono anche connettersi al Player.CharacterAdded , Player.CharacterRemoving , e Humanoid.Died eventi per eseguire azioni legate al gioco quando il personaggio si genera, despawna e muore.

Usa gli script per accedere ai servizi relativi al server, come un archivio dati per recuperare e salvare dati quando un utente si unisce o si disunisce.Usa LocalScripts se il cliente deve creare e rimuovere istanze di gioco legate al nuovo utente, come una visualizzazione GUI delle statistiche dell'utente su una Classifica.

Unirsi dell'utente

Quando un client si connette a un'esperienza, il suo oggetto associato Player clona al servizio Players.Il Players.PlayerAdded rappresenta gli utenti che si uniscono all'esperienza.Alcuni esempi di casi d'uso includono il caricamento dei dati dell'utente, l'assegnazione di team e il cambio dell'abbigliamento del personaggio di un utente.L'evento Players.PlayerAdded passa l'oggetto Player dell'utente che si unisce, che puoi utilizzare quando chiami altre funzioni, come il deposito di dati e gli oggetti RemoteEvent.

Carica i dati utente al join

Per caricare i dati di un utente quando si unisce a un'esperienza, usa l'evento Players.PlayerAdded in un Script .L'esempio seguente Script ascolta l'evento e tenta di recuperare i dati di un utente utilizzando il suo ID utente come chiave del datastore.Dopo aver recuperato con successo i dati dell'utente, puoi usarli per caricare i progressi e le statistiche dell'utente.


local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Leggi chiave del deposito dati
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Esegui ulteriori azioni con currentData
end)

L'utente se ne va

Quando un client si disconnette da un'esperienza, il server distrugge il suo oggetto associato Player dal servizio Players.L'evento Players.PlayerRemoving rappresenta gli utenti che lasciano l'esperienza.Alcuni esempi di casi d'uso includono il salvataggio dei dati dell'utente, la rimozione delle loro statistiche da una classifica e la distruzione di uno qualsiasi dei loro modelli, come la loro casa.L'evento Players.PlayerRemoving passa l'oggetto Player dell'utente che se ne va, che puoi usare quando chiami altre funzioni, come il deposito di dati e gli oggetti RemoteEvent.

Nota che l'evento è chiamato Player.PlayerRemoving , non Player.PlayerRemoved , perché "rimosso" implicaría che l'oggetto Player è già stato rimosso e quindi non è accessibile agli script.

Salva i dati utente al Uscire

Per salvare i dati di un utente quando lascia un'esperienza, usa l'evento Players.PlayerRemoving in un Script .L'esempio seguente Script ascolta l'evento e tenta di salvare i dati di un utente utilizzando il suo ID utente come chiave del deposito dati.

Script nel ServerScriptService

local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerRemoving:Connect(function(player)
local userId = player.UserId
-- Ottieni lo stato dei dati del Giocatorenel Gioco
local currentData = getCurrentData(player)
-- Salva nel Negoziodati
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)

Generazione di caratteri

Il modello di un utente Player.Character rappresenta il suo Avatar.Per impostazione predefinita, Player.CharacterAutoLoads è vero e il modello di personaggio di un utente si genera automaticamente quando si unisce all'esperienza.Se Player.CharacterAutoLoads è falso, devi chiamare Player:LoadCharacter() per generare manualmente il personaggio.

Quando si genera lo spawn di un utente di Player.Character , gli script e gli script locali in StarterCharacterScripts si clonano nel modello di personaggio e si attiva l'evento Player.CharacterAdded .L'evento Player.CharacterAdded passa il nuovo modello di personaggio a tutti gli ascoltatori di eventi, che puoi utilizzare per trovare l'oggetto del personaggio Humanoid e modificare il suo comportamento.Ad esempio, puoi usare Humanoid:ApplyDescription() per cambiare l'outfit dell'avatar e Humanoid.WalkSpeed o Humanoid.JumpHeight per modificare il movimento dell'Avatar.

Despawning del personaggio

Quando le parti del corpo del GiocatoreHumanoid muoiono, le sue parti del corpo cadono a terra e si attiva l'evento Humanoid.Died.Il server rimuove automaticamente il modello di personaggio e qualsiasi script all'interno dopo un certo tempo che la proprietà Players.Respawntime determina.Puoi utilizzare l'evento Player.CharacterRemoving per ripristinare altri oggetti associati al personaggio, come la proprietà di rete di un veicolo che stavano guidando.

Conta le morti dei giocatori

Puoi usare l'evento Humanoid.Died per gestire il punteggio per una uccisione o creare un modello ragdoll personalizzato.Il seguente Script si connette a Player.CharacterAdded per recuperare il modello di personaggio di ciascun utente, quindi si connette all'oggetto del personaggio Humanoid.Quando l'evento dell'umanoide Humanoid.Died si attiva, lo script aumenta il numero di volte in cui l'umanoide dell'utente è morto e produce quel numero.

Script nel 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)

Ban dagli utenti

Per garantire civiltà e gioco leale nelle tue esperienze, puoi bandire gli utenti che violano le regole della tua esperienza e le linee guida della comunità.Puoi modificare le durate del ban, i messaggi di divieto e persino estendere i divieti a potenziali account alternativi.Quando si utilizza questa Proprietà, è inoltre necessario seguire le linee guida per il divieto e il messaggiamento.

Per le istruzioni di implementazione e uso, vedi Players.BanAsync .

Linee guida sul divieto

Quando implementi i divieti nella tua esperienza, aderisci alle seguenti linee guida:

  • Le regole dell'esperienza non devono contraddire gli standard della comunità di Roblox e i termini d'uso.
  • I creatori devono dichiarare chiaramente le loro regole di esperienza in qualche luogo accessibile a tutti gli utenti.
  • I creatori devono applicare le loro regole di esperienza in modo equo e non arbitrariamente mirare a determinati utenti.
  • Gli utenti possono fare appello ai creatori direttamente se ritengono che il loro ban sia stato errato.
    • Roblox non medierà questi appelli, a meno che l'utente non creda che le regole dell'esperienza del Creatoreo l'applicazione delle loro regole violino gli Standard della comunità.
  • Roblox può moderare un'esperienza se c'è motivo di credere che le regole o l'applicazione delle regole di un Creatoreviolino gli Standard della comunità.

Linee guida per i messaggi

Quando un utente viene bannato, riceve un errore che mostra le informazioni come la durata e il motivo del bando.Nel Messaggiofiltrato dal testo, puoi includere ulteriori informazioni come appello o informazioni di contatto, fintanto che soddisfi gli standard della comunità di Roblox Community Standards.

Ad esempio, nei tuoi messaggi di divieto, è consentito fare riferimento ai nomi dei marchi e alle piattaforme:

  • ""Visita il Discord nella pagina del mio gruppo/esperienza"
  • ""Messaggiami su Twitter o X"

Le menzioni di informazioni personali o link diretti non sono consentite in questo campo del messaggio.Questo include la pubblicazione di un nome utente o di una gestirespecifici, o la fornitura di un link diretto a un server Discord o a un AccountX.

Contenitori

L'oggetto Player memorizza diversi container importanti:

Valigetta

Il contenitore Player.Backpack contiene l'Inventario, reportoriodell'utente.Gli oggetti Tool in un display dell'utente Backpack nell'inventario nella parte inferiore dello schermo.Se un utente seleziona un Tool dall'Inventario, reportorio, lo equipaggia e si sposta dal Player.Backpack al Player.Character.

Quando si genera lo spawn di un utente di Player.Character , i contenuti del servizio StarterPack e i loro cloni di Player.StarterGear vengono replicati ai loro Player.Backpack .Quando il personaggio muore, il client distrugge il suo Backpack e lo sostituisce con uno nuovo.

Il Backpack memorizza e esegue anche Scripts e LocalScripts che il client e il server possono entrambi Accesso.

Roblox fornisce un'interfaccia per un giocatore per accedere al suo Backpack e inventario in fondo alla schermata.Per disabilitare l'interfaccia utente predefinita del backpack Roblox e sostituirla con la Proprio, chiama StarterGui:SetCoreGuiEnabled() in uno script locale.Per ulteriori informazioni, vedi StarterGui .

Attrezzatura di avviamento

Il contenitore StarterGear clona i suoi contenuti all'utente Player.Backpack quando il suo personaggio appare.Inoltre, se il tuo posto consente l'attrezzatura e un utente possiede l'Equipaggiamento, gli oggetti di Tool del loro clone di attrezzatura passano a loro Player.StarterGear quando si Rigenerare.

A differenza di StarterPack , Player.StarterGear non è un servizio ma piuttosto un figlio di ogni oggetto Player , quindi i suoi contenuti sono specifici per l'utente.Ogni utente può avere oggetti diversi Tool all'interno del loro Player.StarterGear .Per utilizzare Player.StarterGear , attiva Gear nella pagina delle impostazioni della tua esperienza sotto Permessi .Sulla pagina delle autorizzazioni, puoi abilitare l'equipaggiamento dal suo inserisci / scrivi.Per disabilitare l'Equipaggiamento, deseleziona il suo inserisci / scrivi.

Prova sempre i giochi dopo aver aggiunto Gear a loro per controllare che gli utenti non possano facilmente abusarne lì.L'ingranaggio include Script oggetti e consente al giocatore di eseguire azioni che potresti non considerare.Ad esempio, un equipaggiamento navigazionale potrebbe consentire al giocatore di accedere a una parte della mappa che non vuoi.Le armi consentono ai giocatori con l'equipaggiamento di danneggiare altri giocatori, possibilmente senza retribuzione o rappresaglia.

Gui del giocatore

Il contenitore PlayerGui contiene oggetti che creano l'interfaccia GUI or Intefaccia grafica utentedel Giocatore.Se uno ScreenGui è un discendente di un PlayerGui , allora qualsiasi GuiObject all'interno dello ScreenGui viene visualizzato sullo schermo del Giocatore.Qualsiasi LocalScript esegue quando si clona a PlayerGui .Quando lo spawn del GiocatorePlayer.Character avviene per la prima volta, tutti i contenuti di StarterGui vengono automaticamente copiati nel GiocatorePlayerGui .

Se Players.CharacterAutoLoads è impostato su false, il personaggio non viene Rigeneraree i contenuti di StarterGui non vengono copiati fino a quando non viene chiamato Player:LoadCharacter().Se StarterGui.ResetPlayerGuiOnSpawn è impostato su vero, ogni volta che il personaggio del Giocatorerespawna, tutti i contenuti di quel GiocatorePlayerGui vengono cancellati e sostituiti con i contenuti di StarterGui.

Script del giocatore

Quando un utente si unisce all'esperienza, i contenuti nel container StarterPlayer.StarterPlayerScripts container si clonano a PlayerScripts . Tutti gli script locali e i module script si eseguono quando si clonano.

A differenza dei container Backpack e PlayerGui , il container PlayerScripts non è accessibile al Servere il contenitore di un utente PlayerScripts non si ripristina quando il suo personaggio muore e respawna.Gli oggetti lato server Script non vengono eseguiti neanche quando sono parented a PlayerScripts .Il container PlayerScripts è utile per gli script che non sono legati al ciclo di vita del personaggio dell'utente, come il sistema di chat generale o i Controllidi input del giocatore.