3 façons de travailler avec les magasins de données sur Roblox

Table des matières:

3 façons de travailler avec les magasins de données sur Roblox
3 façons de travailler avec les magasins de données sur Roblox
Anonim

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

7815950 1
7815950 1

É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.

7815950 2
7815950 2

É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")

7815950 3
7815950 3

É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

7815950 4
7815950 4

É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)

7815950 5
7815950 5

É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)

  • Remarque: Cela ne fonctionnera pas, sauf si vous avez activé l'accès à l'API. Pour ce faire, lisez la première instruction de ce guide.
7815950 6
7815950 6

É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)

  • Dans ce cas, nous avons appelé l'ancienne valeur "old". À l'intérieur de cette fonction, nous devrons créer une variable qui tiendra compte de notre score mis à jour, puis la retourner afin qu'elle puisse afficher notre nouveau score.
  • 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)

  • Notez que le serveur renverra nil si la clé n'existe pas ou n'est pas attribuée correctement.
  • Si la fonction n'existe pas, la mise à jour sera annulée.
7815950 7
7815950 7

É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

7815950 8
7815950 8

É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)

  • Cela créera automatiquement une clé unique à ce joueur uniquement, car chaque joueur aura un identifiant unique. Le "user_" n'aura pas d'importance.
7815950 9
7815950 9

É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)

  • Dans cette fonction, nous mettons en place une autre fonction, ancienne. "old" était nos données précédemment enregistrées. Dans ce scénario, chaque fois qu'un joueur entrait sur le serveur, le serveur localisait sa clé, qui est son identifiant, et mettait à jour les données de 50 points, renvoyant et affichant cette nouvelle valeur.
7815950 10
7815950 10

É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".

Conseillé: