DataModel
*Ce contenu est traduit en utilisant l'IA (Beta) et peut contenir des erreurs. Pour consulter cette page en anglais, clique ici.
Le modèle de données (communément appelé game après la variable globale utilisée pour y accéder) est la racine de la hiérarchie parent-enfant de Roblox.Ses enfants directs sont des services, tels que Workspace et Lighting , qui agissent en tant que composants fondamentaux d'un jeu Roblox.
Échantillons de code
Demonstrates using game, the root instance of DataModel, to get services such as Workspace and Lighting.
local Workspace = game:GetService("Workspace")
local Lighting = game:GetService("Lighting")
-- Examples of modifying properties of these services
Workspace.Gravity = 20
Lighting.ClockTime = 4
Résumé
Propriétés
Décrit l'ID de l'utilisateur ou du groupe qui possède l'emplacement.
Décrit le Enum.CreatorType de l'emplacement, que l'endroit soit possédé par un utilisateur ou un groupe.
Décrit l'ID de l'expérience à laquelle le lieu s'appartient sur le serveur.
Non fonctionnel. Historiquement décrit le Enum.Genre de l'endroit comme étant défini sur le site Web de Roblox.
Un identifiant unique pour l'instance de serveur de jeu en cours d'exécution.
Représente la façon dont les joueurs sur le serveur sont gérés par le matchmaking.
Décrit l'ID du lieu exécuté sur le serveur.
Décrit la version du lieu sur lequel le serveur s'exécute.
Décrit l'ID du serveur privé du serveur, si le serveur est un serveur privé ou un reserved server .
Décrit le UserId du Player qui possède le serveur privé si le serveur est privé.
Une référence au service Workspace.
Méthodes
Liaison d'une fonction à appeler avant que le serveur ne s'arrête.
Renvoie une table contenant des informations de base sur les tâches effectuées par le planificateur de tâches.
Retourne un tableau de Instances associé à l'URL de contenu donnée.
Renvoie true si le client a terminé le chargement du jeu pour la première fois.
Définit le DataModel.PlaceId de l'instance de jeu actuelle sur le lieuId donné.
Définit le DataModel.GameId de l'instance de jeu actuelle sur le universId donné.
Renvoie le service spécifié par le className donné s'il est déjà créé, des erreurs pour un nom invalide.
Retourne le service avec le nom de classe demandé, le créant s'il n'existe pas.
Évènements
S'allume lorsque l'utilisateur demande et augmente ou diminue la qualité des graphiques en utilisant les raccourcis clavier.
Feux sur le client lorsque le jeu finit de se charger pour la première fois.
Se déclenche lorsque l'endroit actuel est quitté.
Déployé lorsqu'un service est créé.
Tiré lorsqu'un service est sur le point d'être supprimé.
Propriétés
CreatorId
Cette propriété décrit l'ID de l'utilisateur ou du groupe qui possède l'emplacement.Si la propriété DataModel.CreatorType est 'Utilisateur' alors CreatorId sera le Player.UserId de l' propriétaire du emplacement.Si le DataModel.CreatorType est 'Groupe' alors CreatorId sera l'ID du groupe qui possède l'emplacement.
Échantillons de code
This code sample will print an output when the user that owns the game, or a member of the group that owns the game joins the server.
To run this script, place it inside a Script in ServerScriptService
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)
CreatorType
Cette propriété décrit le Enum.CreatorType de l'emplacement, que l'endroit soit possédé par un utilisateur ou un groupe.
Si le Enum.CreatorType est 'utilisateur' , alors la propriété DataModel.CreatorId décrira le UserId de l' compte qui possède le jeu.Si le type de créateur est 'Groupe', alors il décrit l'ID du groupe.
Échantillons de code
This code sample will print an output when the user that owns the game, or a member of the group that owns the game joins the server.
To run this script, place it inside a Script in ServerScriptService
local Players = game:GetService("Players")
Players.PlayerAdded:Connect(function(player)
if game.CreatorType == Enum.CreatorType.User then
if player.UserId == game.CreatorId then
print("The place owner has joined the game!")
end
elseif game.CreatorType == Enum.CreatorType.Group then
if player:IsInGroup(game.CreatorId) then
print("A member of the group that owns the place has joined the game!")
end
end
end)
Environment
GameId
Cette propriété décrit l'ID de l'expérience à laquelle le lieu s'appartient sur le serveur.
Voir aussi
- DataModel.PlaceId , qui décrit l'ID du lieu exécuté sur le serveur
- DataModel.JobId , qui est un identifiant unique pour l'instance de jeu du serveur en cours d'exécution
- TeleportService , qui est un service qui peut être utilisé pour transporter Players entre les jeux
Genre
Cette propriété est cassée et ne doit pas être utilisée.
Cette propriété a historiquement décrit le Enum.Genre de l'endroit comme défini sur le site Web de Roblox.
Cette propriété, ainsi que DataModel.GearGenreSetting, ne fonctionne plus correctement en raison des genres existants sur le site Web Roblox qui ne sont pas reflétés dans l'enuméro Enum.Genre.Par resultats, essayer de lire cette propriété peut provoquer une erreur.
JobId
Cette propriété est un identifiant unique pour l'instance de serveur de jeu en cours d'exécution.Il s'agit d'un identifiant universellement unique (UUID), ce qui signifie que deux serveurs, passés ou présents, n'auront jamais le même ID.
Par défaut à une chaîne vide dans Studio.
Voir aussi
- TeleportService:GetPlayerPlaceInstanceAsync() qui peut être utilisé pour récupérer le DataModel.JobId du serveur actuel d'un utilisateur.
- TeleportService:TeleportToPlaceInstance() que l'on peut utiliser pour téléporter un Player sur un serveur spécifique.
- DataModel.PrivateServerId décrit l'ID du serveur privé auquel appartient l'instance du serveur de jeu.
- HttpService:GenerateGUID() , une fonction qui peut être utilisée pour générer vos propres UUID.
MatchmakingType
Cette propriété représente la façon dont les joueurs dans le serveur sont gérés par le matchmaking.Les joueurs avec des différences de MatchmakingTypes ne peuvent pas être dans ou se téléporter sur le même serveur.
Notez que cette propriété n'est valable que sur le serveur DataModel et qu'elle sera la valeur Enum.MatchmakingType.Default pour tous les clients, donc se référer à cette propriété uniquement à l'intérieur d'un côté serveur Script .
PlaceId
Cette propriété décrit l'ID du lieu exécuté sur le serveur.
Si le lieu n'a pas été publié sur Roblox, cet ID correspondra au modèle utilisé.
Voir aussi
- DataModel.GameId , qui décrit l'ID de l'expérience à laquelle l'endroit actuel appartient
- DataModel.JobId , qui est un identifiant unique pour l'instance de jeu du serveur en cours d'exécution
- TeleportService , qui est un service qui peut être utilisé pour transporter Players entre les lieux
PlaceVersion
Cette propriété décrit la version du lieu sur lequel le serveur s'exécute.
Ce numéro de version correspond au numéro de version affiché dans la section Historique des versions des paramètres du emplacement.Ce n'est pas la version actuelle du client Roblox.Cette propriété est 0 pour toutes les expériences non publiées.
Lorsqu'une instance de serveur est créée pour un emplacement, elle utilise la version actuelle du emplacement.Si le lieu est mis à jour plus tard alors que ce serveur est en cours d'exécution, le serveur restera à sa version actuelle.
Cette propriété peut être utilisée pour afficher un ScreenGui montrant la version actuelle du jeu à Players pour aider au débogage.
Échantillons de code
This code sample will place a simple GUI in the StarterGui showing the place version the server is running at.
To use this sample, place it inside a Script in ServerScriptService.
local StarterGui = game:GetService("StarterGui")
local versionGui = Instance.new("ScreenGui")
local textLabel = Instance.new("TextLabel")
textLabel.Position = UDim2.new(1, -10, 1, 0)
textLabel.AnchorPoint = Vector2.new(1, 1)
textLabel.Size = UDim2.new(0, 150, 0, 40)
textLabel.BackgroundTransparency = 1
textLabel.TextColor3 = Color3.new(1, 1, 1)
textLabel.TextStrokeTransparency = 0
textLabel.TextXAlignment = Enum.TextXAlignment.Right
textLabel.TextScaled = true
local placeVersion = game.PlaceVersion
textLabel.Text = string.format("Server version: %s", placeVersion)
textLabel.Parent = versionGui
versionGui.Parent = StarterGui
PrivateServerId
Cette propriété décrit l'ID du serveur privé du serveur, si le serveur est un serveur privé.
Si le serveur n'est pas un serveur privé, cette propriété sera une chaîne vide.
Serveurs privés
Les serveurs privés se réfèrent à ce qui suivre:
- Serveurs privés que les utilisateurs peuvent acheter sur la page des jeux
- Serveurs réservés, serveurs privés créés par le développeur en utilisant TeleportService:ReserveServer()
Privatiser le serveur Id vs JobId
L'ID de serveur privé d'un serveur est différent du DataModel.JobId. Le JobId est l'identifiant unique de l'instance de serveur actuelle.
Les serveurs privés (serveurs privés ou réservés) peuvent avoir plusieurs instances de serveur associées à eux au fil du temps.C'est parce qu'une seule instance de serveur peut être exécutée à la fois pour un serveur privé, de nouvelles instances de serveur peuvent s'ouvrir et se fermer à mesure que les joueurs rejoignent et quittent le jeu.Par exemple, aucune instance de serveur n'est en cours d'exécution lorsque personne ne joue dans le serveur.L'ID de serveur privé sera cohérent sur toutes ces instances de serveur, et le DataModel.JobId sera unique pour chacune d'entre elles.
Voir aussi :
- DataModel.PrivateServerOwnerId , une propriété décrivant le propriétaire d'un serveur privé
- TeleportService:ReserveServer() , une fonction qui crée un serveur réservé
Échantillons de code
DataModel.PrivateServerId and DataModel.PrivateServerOwnerId can be used to detect if the current server instance is a standard server, a VIP server or a reserved server.
local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())
PrivateServerOwnerId
Cette propriété décrit le UserId du Player qui possède le serveur privé si le serveur est privé.
Si le serveur est un serveur standard ou réservé, cette propriété sera définie sur 0.
Cette propriété pourrait être utilisée pour identifier si un Player est le propriétaire du serveur privé, par exemple :
local Players = game:GetService("Players")
-- est-ce un serveur privé ?
if game.PrivateServerId ~= "" and game.PrivateServerOwnerId ~= 0 then
-- écouter les nouveaux joueurs qui sont ajoutés
Players.PlayerAdded:Connect(function(player)
-- vérifier si le joueur est le propriétaire du serveur
if player.UserId == game.PrivateServerOwnerId then
print("The private server owner has joined the game")
end
end)
end
Voir aussi :
- DataModel.PrivateServerId , une propriété décrivant l'ID unique du privé et reserved servers
Échantillons de code
DataModel.PrivateServerId and DataModel.PrivateServerOwnerId can be used to detect if the current server instance is a standard server, a VIP server or a reserved server.
local function getServerType()
if game.PrivateServerId ~= "" then
if game.PrivateServerOwnerId ~= 0 then
return "VIPServer"
else
return "ReservedServer"
end
else
return "StandardServer"
end
end
print(getServerType())
Méthodes
BindToClose
Liaison d'une fonction à appeler avant que le serveur ne s'arrête.Si la fonction liée accepte un paramètre, elle passe Enum.CloseReason en indiquant la raison de l'arrêt du serveur.
Vous pouvez lier plusieurs fonctions en appelant BindToClose() plusieurs fois. Les fonctions liées sont appelées en parallèle et exécutées en même temps.
Le serveur d'expérience attend 30 secondes que toutes les fonctions liées cessent de s'exécuter avant de s'éteindre.Après 30 secondes, le serveur s'arrête même si les fonctions sont toujours en cours d'exécution.
Pour vérifier que la session actuelle n'est pas dans Roblox Studio, utilisez RunService:IsStudio() .Cela empêche les fonctions liées de terminer leur exécution lors de sessions de test hors ligne.
Lorsque vous utilisez DataStoreService, vous devez également utiliser BindToClose pour lier une fonction qui sauvegarde toutes les données non enregistrées à DataStores .Cela empêche la perte de données si le serveur s'arrête inopinément.
Voir aussi :
- Enum.CloseReason pour des raisons de l'arrêt du serveur d'expérience.
- PluginGui:BindToClose() , qui lie une fonction à un bouton de fermeture PluginGui.
Paramètres
Une fonction appelée avant que le serveur d'expérience ne s'arrête.Si la fonction liée accepte un paramètre, elle passe Enum.CloseReason en indiquant la raison de l'arrêt du serveur.
Retours
Échantillons de code
The following code sample is an example of how DataModel:BindToClose() can be used to save player data in the event of a server shutdown. In this example, player data is stored in a dictionary named playerData with UserIds as keys.
local DataStoreService = game:GetService("DataStoreService")
local RunService = game:GetService("RunService")
local playerDataStore = DataStoreService:GetDataStore("PlayerData")
local allPlayerSessionDataCache = {}
local function savePlayerDataAsync(userId, data)
return playerDataStore:UpdateAsync(userId, function(oldData)
return data
end)
end
local function onServerShutdown(closeReason)
if RunService:IsStudio() then
-- Avoid writing studio data to production and stalling test session closing
return
end
-- Reference for yielding and resuming later
local mainThread = coroutine.running()
-- Counts up for each new thread, down when the thread finishes. When 0 is reached,
-- the individual thread knows it's the last thread to finish and should resume the main thread
local numThreadsRunning = 0
-- Calling this function later starts on a new thread because of coroutine.wrap
local startSaveThread = coroutine.wrap(function(userId, sessionData)
-- Perform the save operation
local success, result = pcall(savePlayerDataAsync, userId, sessionData)
if not success then
-- Could implement a retry
warn(string.format("Failed to save %d's data: %s", userId, result))
end
-- Thread finished, decrement counter
numThreadsRunning -= 1
if numThreadsRunning == 0 then
-- This was the last thread to finish, resume main thread
coroutine.resume(mainThread)
end
end)
-- This assumes playerData gets cleared from the data table during a final save on PlayerRemoving,
-- so this is iterating over all the data of players still in the game that hasn't been saved
for userId, sessionData in pairs(allPlayerSessionDataCache) do
numThreadsRunning += 1
-- This loop finishes running and counting numThreadsRunning before any of
-- the save threads start because coroutine.wrap has built-in deferral on start
startSaveThread(userId, sessionData)
end
if numThreadsRunning > 0 then
-- Stall shutdown until save threads finish. Resumed by the last save thread when it finishes
coroutine.yield()
end
end
game:BindToClose(onServerShutdown)
The following example prints the close reason to the output. It prints Done after three seconds, and then allows Roblox to shut down the experience server.
The close reason matches one of the values in Enum.CloseReason.
game:BindToClose(function(closeReason)
print(`Closing with reason {closeReason}`)
task.wait(3)
print("Done")
end)
GetJobsInfo
Renvoie une table contenant des informations de base sur les tâches effectuées par le planificateur de tâches.
Dans le calcul, un planificateur de tâches est un système responsable de l'exécution de tâches clés aux intervalles appropriés.
Vous pouvez également trouver des statistiques de planificateur de tâches en direct dans la fenêtre Planificateur de tâches dans Roblox Studio.
La première entrée dans la table renvoyée est un dictionnaire de référence contenant les statistiques (ou les rubriques) disponibles. Il est au format suivant :
{["name"] = "name",["averageDutyCycle"] = "averageDutyCycle",["averageStepsPerSecond"] = "averageStepsPerSecond",["averageStepTime"] = "averageStepTime",["averageError"] = "averageError",["isRunning"] = "isRunning",}
Les entrées suivantes dans la table retournées sont des dictionnaires contenant les statistiques ci-dessus pour les tâches effectuées par le planificateur de tâches. Par exemple :
{["name"] = "Heartbeat",["averageDutyCycle"] = 0,["averageStepsPerSecond"] = 0,["averageStepTime"] = 0,["averageError"] = 0,["isRunning"] = false,}
Voir aussi :
Retours
Une table contenant des informations sur les tâches effectuées par le planificateur de tâches, voir ci-dessus pour le format.
Échantillons de code
Here is an example of iterating over the job info.
local jobInfo = game:GetJobsInfo()
local jobTitles = jobInfo[1]
table.remove(jobInfo, 1)
local divider = string.rep("-", 120)
print(divider)
warn("JOB INFO:")
print(divider)
for _, job in pairs(jobInfo) do
for jobIndex, jobValue in pairs(job) do
local jobTitle = jobTitles[jobIndex]
warn(jobTitle, "=", jobValue)
end
print(divider)
end
GetObjects
Cette méthode renvoie une liste de Instances associée à l'URL de contenu donnée.Il peut être utilisé pour insérer du contenu de la bibliothèque Roblox.Il n'est pas possible d'insérer à l'aide de cette méthode car ils n'ont pas d'URL de contenu associée et n'ont qu'une seule URL.
Contrairement à InsertService:LoadAsset(), DataModel:GetObjects() n'exige pas qu'une ressource soit "fidèle", ce qui signifie qu'une ressource n'a pas besoin d'être possédée par l'utilisateur connecté ou créée par Roblox pour être insérée.Cependant, si la ressource n'est pas possédée par l'utilisateur connecté, elle doit être librement disponible.
En raison du contexte de sécurité de cette fonction, elle ne peut être utilisée que par les plugins ou la barre de commande.Pour une alternative qui peut être utilisée dans Scripts et LocalScripts, voir InsertService:LoadAsset() .
Paramètres
L'URL du contenu donné.
Retours
Un ensemble de Instances associé à l'URL du contenu.
Échantillons de code
If you want to view a plugin's source code without installing it, you can use DataModel:GetObjects() to download the plugin. The code sample below includes a function that will take a plugin's website URL and insert the plugin into the currently selected Instance or the Workspace.
Due to GetObjects' security context, this function can only be used in the command line or in a plugin.
local Selection = game:GetService("Selection")
local WEB_URL = "plugin URL here"
local function downloadPlugin(webURL)
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
-- download the objects
local objects = game:GetObjects(contentURL)
-- decide where to parent them
local selection = Selection:Get()
local parent = #selection == 1 and selection[1] or workspace
-- parent the objects
for _, object in pairs(objects) do
object.Parent = parent
end
end
downloadPlugin(WEB_URL)
The content ID of a Decal on the Roblox website is associated with a Decal Instance rather than the actual content ID of the texture.
The code below, will use DataModel:GetObjects() to insert Decal objects into place and read their Decal.Texture property to obtain the image content IDs.
To use this code sample, enter the web URLs of the decals you'd like to convert into the array named IMAGES (as strings). A dictionary with the converted textures will be outputted.
local IMAGES = {
-- Insert Decal web URLs in an array here (as strings)
}
-- open the dictionary
local outputString = "textures = {"
-- utility function to add a new entry to the dictionary (as a string)
local function addEntryToDictionary(original, new)
outputString = outputString
.. "\n" -- new line
.. " " -- indent
.. '["'
.. original
.. '"]' -- key
.. ' = "'
.. new
.. '",' -- value
end
print("Starting conversion")
for _, webURL in pairs(IMAGES) do
-- get the content URL
local contentID = string.match(webURL, "%d+")
local contentURL = "rbxassetid://" .. contentID
local success, result = pcall(function()
local objects = game:GetObjects(contentURL)
return objects[1].Texture
end)
if success then
addEntryToDictionary(webURL, result)
else
addEntryToDictionary(webURL, "Error downloading decal")
end
task.wait()
end
print("Conversion complete")
-- close the dictionary
outputString = outputString .. "\n}"
-- print the dictionary
print(outputString)
IsLoaded
Lorsque toute la réplication initiale Instances dans le jeu a terminé de se répliquer au client, cette fonction renvoie true.
À moins qu'ils ne soient parentés à ReplicatedFirst , LocalScripts ne s'exécute pas jusqu'à ce que le jeu ait été chargé.Le fragment suivant, exécuté à partir d'un LocalScript dans ReplicatedFirst produit jusqu'à ce que le jeu ait été chargé :
if not game:IsLoaded() thengame.Loaded:Wait()end
Voir aussi :
- Ordre de réplication pour un résumé plus détaillé du processus de chargement.
- DataModel.Loaded , un événement qui se déclenche lorsque le jeu est chargé
- Instance:WaitForChild() , une fonction qui peut être utilisée pour attendre qu'un individu Instance se reproduise sans avoir à attendre la fin du chargement du jeu entier.
Retours
Si le client a terminé le chargement du jeu pour la première fois.
Échantillons de code
This sample demonstrates a custom loading screen with a basic TextLabel. The code should be placed in a LocalScript within ReplicatedFirst. To expand on this sample with loading screen animations, see the Custom Loading Screens article.
local Players = game:GetService("Players")
local ReplicatedFirst = game:GetService("ReplicatedFirst")
local player = Players.LocalPlayer
local playerGui = player:WaitForChild("PlayerGui")
-- Create a basic loading screen
local screenGui = Instance.new("ScreenGui")
screenGui.IgnoreGuiInset = true
local textLabel = Instance.new("TextLabel")
textLabel.Size = UDim2.new(1, 0, 1, 0)
textLabel.BackgroundColor3 = Color3.fromRGB(0, 20, 40)
textLabel.Font = Enum.Font.GothamMedium
textLabel.TextColor3 = Color3.new(0.8, 0.8, 0.8)
textLabel.Text = "Loading"
textLabel.TextSize = 28
textLabel.Parent = screenGui
-- Parent entire screen GUI to player GUI
screenGui.Parent = playerGui
-- Remove the default loading screen
ReplicatedFirst:RemoveDefaultLoadingScreen()
--wait(3) -- Optionally force screen to appear for a minimum number of seconds
if not game:IsLoaded() then
game.Loaded:Wait()
end
screenGui:Destroy()
SetPlaceId
Cette fonction définit le DataModel.PlaceId de l'instance de jeu à l'adresse donnée placeId.
Le paramètre both DataModel.PlaceId et DataModel.GameId est requis pour accéder à DataStoreService lorsque l'endroit n'est pas publié, par exemple un fichier local .rbxl.Voir ci-dessous pour un exemple.Notez que l'accès DataStoreService au studio nécessite la régle Activer l'accès du studio aux services d'API de la section Sécurité du panneau Paramètres de jeu.
local DataStoreService = game:GetService("DataStoreService")-- accéder au DataStore 'Data' en définissant PlaceId à placeId et GameId à universeId.game:SetPlaceId(placeId)game:SetUniverseId(universeId)local dataStore = DataStoreService:GetDataStore("Data")
Paramètres
L'ID pour définir le DataModel.PlaceId à.
Retours
SetUniverseId
Cette fonction définit le DataModel.GameId de l'instance de jeu actuelle à l'univers donné universId.Cela est utile lors du test de fichiers locaux .rbxl qui n'ont pas été publiés sur Roblox.
Pour accéder au DataStoreService dans un emplacementnon publié, les deux DataModel:SetUniverseId() et DataModel:SetPlaceId() doivent être configurer.
Paramètres
L'ID pour définir le DataModel.GameId à.
Retours
Évènements
GraphicsQualityChangeRequest
Se déclenche lorsque l'utilisateur demande une augmentation ou une diminution de la qualité des graphiques en utilisant les raccourcis clavier.
Cet événement se déclenche dans les conditions suivantes :
- Si l'utilisateur appuie sur F10, cet événement se déclenche avec un argument betterQuality de true.
- Si l'utilisateur appuie sur ShiftF10, cet événement se déclenche avec un argument betterQuality de false .
Cet événement ne fournit pas le niveau actuel de qualité graphique ou ne couvre pas toutes les mises à jour de la qualité graphique.Par exemple, les modifications apportées dans le menu d'évasion GUI principal ne sont pas enregistrées.
Vous pouvez récupérer la Enum.SavedQualitySetting d'un utilisateur en utilisant UserGameSettings avec le snippet suivant :
UserSettings():GetService("UserGameSettings").SavedQualityLevel
Si les paramètres graphiques de l'utilisateur sont réglés sur automatique, alors le Enum.SavedQualitySetting sera Automatic .Il n'existe actuellement aucun moyen pour les développeurs d'obtenir de manière fiable le niveau de qualité graphique actuel de la machine d'un utilisateur.
Paramètres
Si l'utilisateur a provoqué une augmentation ( vrai ) ou une diminution ( faux ) de la qualité des graphiques.
Échantillons de code
game.GraphicsQualityChangeRequest:Connect(function(betterQuality)
if betterQuality then
print("The user has requested an increase in graphics quality!")
else
print("The user has requested a decrease in graphics quality!")
end
end)
Loaded
Cet événement se déclenche sur le client lorsque toute la réplication initiale Instances dans le jeu a terminé de se répliquer sur le client.
À moins qu'ils ne soient parentés à ReplicatedFirst , LocalScripts ne s'exécute pas jusqu'à ce que le jeu ait été chargé.Le fragment suivant, exécuté à partir d'un LocalScript dans ReplicatedFirst produit jusqu'à ce que le jeu ait été chargé :
if not game:IsLoaded() thengame.Loaded:Wait()end
Voir aussi :
- Ordre de réplication pour un résumé plus détaillé du processus de chargement.
- DataModel.Loaded , un événement qui se déclenche lorsque le jeu est chargé
- Instance:WaitForChild() , une fonction qui peut être utilisée pour attendre qu'un individu Instance se reproduise sans avoir à attendre la fin du chargement du jeu entier.