Quando un utente si unisce a un'esperienza, Roblox li rappresenta come Player nel modello di dati. L'oggetto Player contiene informazioni sull'utente che sono universali in tutte le esperienze, come il suo Nome utente, la lista amici, il salvataggio avatar character e il inserisci / scrividi abbonamento Roblox, nonché proprietà, metodi e eventi che influ
Il servizio Players contiene tutte le istanze Player in un'esperienza. Ogni oggetto Player rappresenta un utente nell'esperienza, e i suoi genitori sono quattro container importanti che puoi utilizzare per personal
Ciclo di vita
Gli script lato client e server possono entrambi connettersi agli eventi Players.PlayerAdded e Players.PlayerRemoved per eseguire azioni in risposta al ciclo di vita di un ogget
Usa gli script per accedere ai servizi correlati al server, come un archivio di dati per recuperare e salvare i dati quando un utente si unisce o lascia. Usa gli script locali se il client deve creare e rimuovere le istanze di gioco legate all'utente, come un'interfaccia grafica utente per le statistiche dell'utente su una Classificapersonalizzata.
L'utente si unisce
Quando un client si connette a un'esperienza, i suoi oggetti Player associati si clonano al servizio Players. L'event
Caricamento dei dati dell'utente alla join
Per caricare i dati di un utente quando si unisce a un'esperienza, usa l'evento Players.PlayerAdded in un Script . La seguente lista Script ascolta l'evento e cerca di recuperare i dati dell'utente utilizzando il suo ID utente come chiave del datastore. Dopo aver recuperato con successo i dati dell'utente, puoi
local DataStoreService = game:GetService("DataStoreService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
game:GetService("Players").PlayerAdded:Connect(function(player)
local userId = player.UserId
-- Leggi il valore della chiave del magazzino di dati
local getSuccess, currentData = pcall(function()
return playerDataStore:GetAsync(userId)
end)
if getSuccess then
print(currentData)
end
-- Fai ulteriori azioni con i dati attuali
end)
L'utente lascia
Quando un client si disconnette da un'esperienza, il server distrugge il suo oggetto Player associato dal servizio
Nota che l'evento è chiamato Player.PlayerRemoving , non Player.PlayerRemoved , poiché "rimosso" implicerebbe che l'oggetto Player sia già rimosso e quindi non accessibile agli script.
Salvataggio dei dati dell'utente alla partenza
Per salvare i dati di un utente quando esce da un'esperienza, usa l'evento Players.PlayerRemoving in un Script . La seguente lista Script ascolta l'evento e cerca di salvare i dati di un utente usando il suo ID utente come chiave di archiviazione dei 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 Negoziodi dati
local setSuccess, errorMessage = pcall(function()
playerDataStore:SetAsync(userId, currentData)
end)
if not setSuccess then
warn(errorMessage)
end
end)
Generazione dei personaggi
Il modello Player.Character di un utente rappresenta il loro Avatar. Per impostazione predefinita, Player.CharacterAutoLoads è vero, e il modello Player.CharacterAutoLoads viene generato automaticamente quando si unisce all'esperienza. Se 1>Class.Player.CharacterAutoLoad1> è falso, allora è necess
Quando un Avatar<
Despawning dei personaggi
Quando il Giocatoremuore, le sue parti del corpo cadono a terra e l'evento Humanoid attiva. Il server rimuove automaticamente il modello di personaggio e tutti gli script all'interno di esso dopo un certo tempo che la proprietà Humanoid.Died determin
Conteggio delle morti del giocatore
Puoi usare l'evento Humanoid.Died per gestire il punteggio per una morte o creare un modello ragdoll personalizzato. Il seguente Script si connette a Class.Player.Character
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 utenti
Per garantire la civiltà e la giustizia di gioco nelle tue esperienze, puoi bannare gli utenti che violano le tue regole e le linee guida della comunità. Puoi modificare la durata di ban e messaggi di ban e persino estendere i ban a potenziali account alternativi. Quando utilizzi questa Proprietà, devi anche seguire le linee guida per bannare e messaggi .
Per istruzioni sull'implementazione e sull'uso, vedi Players.BanAsync .
Linee guida per il ban
Quando si implementa la proibizione nella tua esperienza, aderirsi alle seguenti linee guida:
- Le regole sull'esperienza non devono contraddire le norme della comunità e condizioni d'uso di Roblox.
- Ad esempio, non puoi creare una regola sull'esperienza che escluda qualcuno a causa del loro genere poiché viola la politica Discrimination, Slurs, e Hate Speech di Roblox .
- I creatori devono chiaramente dichiarare le loro regole sull'esperienza da qualche parte accessibili a tutti gli utenti.
- I creatori devono applicare le loro regole sull'esperienza abbastanza e non devono arbitrariamente targettare certi utenti.
- Gli utenti possono appelezarsi direttamente ai creatori se ritengono che il loro ban sia errato.
- Roblox non medierà queste richieste, a meno che l'utente non creda che le regole dell'esperienza del Creatoreo l'attuazione delle loro regole violino i Standard della Comunità .
- Roblox può moderare un'esperienza se ci sono motivi per credere che le regole di un Creatoreo l'esecuzione delle sue regole violino gli Standard della Comunità .
Linee guida per i messaggi
Quando un utente è stato bannato, riceve un messaggio di errore che mostra informazioni come la durata del ban e il motivo. Nel messaggio filtrato dal Messaggio, puoi includere informazioni aggiuntive come richiesta o contatti come long as you meet Roblox's Standards della Comunità .
Ad esempio, nei tuoi messaggi di ban, sei autorizzato a fare riferimento ai nomi e alle piattaforme:
- Visita la Discord nella mia pagina / esperienza di gruppo
- «Mandami un messaggio su Twitter o X»
Menzioni di informazioni personali o link diretti non sono ammessi in questo campo di messaggio. Ciò include la pubblicazione di un nome utente specifico o di un'identificazione diretta, o la fornitura di un link diretto a un server Discord o AccountX.
Contenitori
L'oggetto Player memorizza diversi container importanti:
Zaino
Il contenitore Player.Backpack memorizza l'Inventario, reportoriodell'utente. Gli oggetti Tool negli oggetti Backpack dell'utente nella loro schermata in fondo. Se un Inventario, reportorioseleziona un 1>Class.Tool
Quando si genera il Player.Character di un utente, i contenuti del servizio StarterPack e dei suoi Player.StarterGear cloni vengono inviati al loro 1> Class.Player.Backpack1> . Quando il personaggio muore, il client distrugge il suo 4> Class.Backpack
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 Class.Backpack e inventario in fondo allo schermo. Per disabilitare la GUI del robot di base e sostituirlo con la Proprio, chiama Backpack in uno script locale. Per ulteriori informazioni, vedi StarterGui:SetCoreGuiEnabled() .
StarterGear
Il contenitore StarterGear clona i suoi contenuti nel contenitore Player.Backpack dell'utente quando il suo personaggio appare. Inoltre, se il tuo luogo consente l'uso di equipaggiamento e un utente possiede l'Equipaggiamento, gli oggetti Tool dei suoi Rigenerareclonati nel suo 1>Class.Player.StarterGear
A differenza di StarterPack , Player.StarterGear non è un servizio ma piuttosto un figlio di ciasc
Prova sempre i giochi dopo aver aggiunto Gear a loro per testare che gli utenti non possano facilmente abusarvi. Gear include Script oggetti e consente al giocatore di eseguire azioni che potresti non considerare. Ad esempio, un oggetto di navigazione potrebbe consentire al giocatore di accedere a una parte della mappa che non vuoi che possano. Le armi consentono ai giocatori con Gear di danneggiare gli altri giocatori, poss
PlayerGui
Il contenitore PlayerGui memorizza gli oggetti che creano la GUI or Intefaccia grafica utentedel Giocatore. Se un ScreenGUI è discendente di un PlayerGui
Se Players.CharacterAutoLoads è impostato su false, il personaggio non viene Rigeneraree i contenuti di StarterGui non vengono copiati fino a quando Player:LoadCharacter() non è chiamato. Se Class.StarterGui.Reset
Script del giocatore
Quando un utente si unisce all'esperienza, il contenuto in StarterPlayer.StarterPlayerScripts container clone to PlayerScripts . Tutti gli script locali e script del modulo vengono eseguiti quando si clonano.
A differenza dei contenitori Backpack e PlayerGui, il contenitore PlayerScripts