Tout le monde voulait enregistrer des données et les recharger à chaque fois qu'un joueur entre à nouveau dans le jeu ? Depuis que la persistance des données est devenue futile, ROBLOX introduit des magasins de données beaucoup plus fonctionnels. Le guide pratique suivant vous permettra de travailler avec des banques de données pour ROBLOX.
Pas
Méthode 1 sur 3: Configuration du magasin de données
Étape 1. Configurez l'API
Cela n'implique aucun script, mais pour activer toute l'API du magasin de données, vous devez d'abord activer l'accès à l'API. Pour ce faire, allez dans l'onglet Développer, et cliquez sur "Jeux". Cela devrait vous diriger vers tous les lieux de jeu actuels que vous possédez. Trouvez votre jeu et cliquez sur l'engrenage. Il devrait apparaître un menu déroulant, et appuyez simplement sur "Configurer". Cochez la case "Activer l'accès de Studio aux services API" et enregistrez. Vous devriez maintenant avoir accès à l'API complète.
Étape 2. Récupérez le magasin de données
Utilisez l'API Data Store pour appeler le magasin de données, car nous devrons le référencer. Pour commencer, ouvrez un script sur ROBLOX et nommez une variable que nous aimerions utiliser pour appeler la référence.
magasin de données local = jeu:GetService("DataStoreService"):GetDataStore("nom")
Étape 3. Utilisez la variable selon vos besoins
Vous avez appelé avec succès le magasin de données avec la variable "datastore". Désormais, chaque fois que vous avez besoin de récupérer le magasin de données, vous pouvez simplement le nommer par sa variable.
Veuillez noter que si un magasin de données n'a pas encore été créé, il en créera automatiquement un nouveau
Méthode 2 sur 3: Utilisation des méthodes de stockage de données
Étape 1. GetAsync
Utilisez GetAsync pour renvoyer la valeur de l'entrée dans le magasin de données avec la clé donnée. Assurez-vous de donner à chaque joueur un jeu de clés unique, car définir la même clé à deux joueurs remplacera leurs propres données dans le jeu, provoquant le chaos entre les deux parties. Si vous voulez savoir comment définir une clé unique, lisez la suite.
- Le code suivant affichera nil, car le serveur n'a trouvé aucune valeur liée à la clé; il est important de montrer au serveur exactement ce que nous essayons de sortir, afin que le serveur sache ce qui doit être affiché.
magasin de données local = jeu:GetService("DataStoreService"):GetDataStore("nom") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:GetAsync(key) end)
Étape 2. SetAsync
Utilisez SetAsync pour définir la valeur de la clé et remplace toutes les données existantes stockées pour la clé unique.
- Si l'ensemble d'informations précédent est important, envisagez d'utiliser UpdateAsync, qui sera enseigné ci-dessous.
- Le code suivant vous montre comment implémenter à la fois les méthodes ":GetAsync()" et ":SetAsync()".
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:SetAsync(key, 90) - - définit la clé sur la valeur, 90 local data_stored = datastore:GetAsync(key) -- est capable de détecter le changement de valeur print(data_stored) -- imprime la fin de sortie)
Étape 3. Utilisez UpdateAsync pour renvoyer la valeur de la clé et la met à jour avec une nouvelle valeur
Celui-ci valide les données, et doit donc attendre que le serveur trouve le temps de les mettre à jour. Pour que cela fonctionne, vous devrez passer deux paramètres; la première est une chaîne qui prend la clé unique que vous avez configurée: "'user_'.. player.userId", et la seconde est une fonction qui prendra l'ancienne valeur.
magasin de données local = jeu:GetService("DataStoreService"):GetDataStore("nom") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) -- faire des trucs fin) fin)
magasin de données local = jeu:GetService("DataStoreService"):GetDataStore("nom") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local new = old ou 0 -- pourrait être nil new = new + 1 -- ajoute 1 à l'ancienne valeur return new -- le renvoie avec la nouvelle valeur end) end)
Étape 4. Utilisez IncrementAsync pour incrémenter la valeur d'une clé et renvoie la valeur incrémentée
Cette méthode ne fonctionne que sur des entiers.
Méthode 3 sur 3: Événements du magasin de données et mise à jour des données
Étape 1. Définissez une clé unique
Il est extrêmement vital que chaque joueur ait une clé qui lui soit propre. Ils conserveront cette clé, qui stockera toutes leurs données. Pour ce faire, nous utilisons l'ID du joueur. Une fois que vous avez défini le magasin de données, appelez simplement une fonction pour charger le lecteur, puis recherchez l'ID du lecteur. Le code devrait ressembler à ceci:
local datastore = game:GetService("DataStoreService"):GetDataStore("name") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId end)
Étape 2. Mettez à jour les données
Maintenant que vous avez une clé unique pour chaque joueur, vous êtes prêt à mettre à jour le magasin de données et à récupérer les données. Sous votre clé, vous voudrez ajouter une méthode qui convient le mieux à vos besoins. Dans ce cas, nous utiliserons "UpdateAsync".
- Commencez par une fonction pour aider le serveur à comprendre ce que vous avez l'intention de faire.
magasin de données local = jeu:GetService("DataStoreService"):GetDataStore("nom") game. Players. PlayerAdded:connect(function(player) local key = "user_".. player.userId datastore:UpdateAsync(key, function(old) local newValue = old ou 0 -- pourrait être nil newValue = newValue + 50 return newValue end) end)
Étape 3. Félicitations
Vous avez réussi à stocker et à mettre à jour les données d'un joueur.
Mises en garde
- Lors de la première création de votre magasin de données, assurez-vous d'avoir "game:GetService("DataStoreService")", avec la bonne majuscule. Il ne fonctionnera pas efficacement s'il est appelé de manière incorrecte.
- Assurez-vous de savoir quand utiliser "SetAsync" et "UpdateAsync", car l'utilisation du mauvais peut transformer les choses en désordre lors de la récupération de données. Dans la plupart des cas, les développeurs utiliseront "UpdateAsync".