Aller au contenu
antoinech

Sauvegarde d'un item sous forme de texte (sérialisation)

Messages recommandés

Posté(e) (modifié)

Bonjour à tous,

C'est mon premier post sur ce forum mais j'ai vraiment besoin d'aide.

J'ai cherché partout sur internet, sur tous les sites skripts, sur bukkit, spigot, en français, en anglais et j'ai rien trouvé qui proposait une solution à mon problème

 

Alors voila, je cherche un moyen de sauvegarder un item sous forme de texte, qui contient toutes les données de l'item (Enchants, durabilité, lore, nom, nbt)

Bon objectif est de pouvoir ensuite stocker cet item dans une base de donnée MySql, puis de le re-transformer en item pour pouvoir le give à un joueur.

En fait c'est tout simplement de la sauvegarde d'item sous Base de données SQL, mais je ne veux pas que ça soit dans la table automatique de skript (variables21). Je veux pouvoir sauvegarder les items comme je veux dans la BDD

J'ai vu plein de moyen de le faire en java (avec la méthode de sérialisation de Bukkit) mais aucun moyen en skript.

J'ai trouvé plein de fois la syntaxe:

set {inventory} to player's serialized inventory

Mais elle ne fonctionne pas alors que j'ai tous les add-ons, et je ne suis pas sur qu'elle soit une solution à mon problème.

 

PS: J'utilise Skript 2.2-dev37c pour Paper Spigot 1438 (Minecraft 1.12.2)

J'ai les add-ons suivants: 

Skellett, SkQuery, skRayFall, skript-db, Skript, skUtilities, Vixio, WildSkript

 

En espérant que quelqu'un puisse m'aider, antoinech

Modifié par antoinech

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, merci de ta réponse.

J'ai regardé mais ça ne répond pas à mon problème.

Dans la fonction du sujet, les items sont stockés dans une variable de skript, et non en tant que texte brut...

Partager ce message


Lien à poster
Partager sur d’autres sites
Posté(e) (modifié)
Il y a 23 heures, antoinech a dit :

Salut, merci de ta réponse.

J'ai regardé mais ça ne répond pas à mon problème.

Dans la fonction du sujet, les items sont stockés dans une variable de skript, et non en tant que texte brut...

Une variable en général stocke une chaîne de caractères si tu regardes sa valeur.  Après je n'ai plus l'addon mais il y a un moyen de faire une belle table dans ta BDD avec Skript sans utiliser les variables.

Modifié par MrUrica
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Salut, pourquoi ne pas set une variable temporaire à chaque choses voulue ta BDD, name tool, lore,... tu les envoies sur ta BDD dans une catégorie et après tu rècupèré ?

  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Le 07/01/2019 à 10:31, > NoaGamingFR a dit :

Salut, pourquoi ne pas set une variable temporaire à chaque choses voulue ta BDD, name tool, lore,... tu les envoies sur ta BDD dans une catégorie et après tu rècupèré ?

Salut, j'ai commencé à faire une fonction de Sérialisation en faisant comme tu dis, le problème c'est qu'il manque certaines informations dans les items, par exemple:

  • Les attributs d'un item
  • Le contenu des shulkers
  • La texture des têtes

En réalité il ne me manque surtout que les attributs, les autres sont très facultatifs pour ce que je veux faire

 

PS: En réalisant ma fonction de sérialisation, je met la ligne suivante:

set name of {_item} to "%{_name}%"

Pour définir le nom de l'item contenu dans la variable "{_item}". J'ai vérifier et il s'agit de la bonne syntaxe, pourtant j'obtient l'erreur suivante:

Citation

name of {_item} can't be set to anything

Quelqu'un sait comment résoudre le problème?

Partager ce message


Lien à poster
Partager sur d’autres sites

Ta variable {_item} est de type item ?

set name of {_item} parsed as item to {_name}

Quelque chose comme ça devrait passé (logiquement ^^)

 

Ou alors ce que tu voulais faire serait plutôt ceci : ?

set {_name} to the name of {_item}

 

Modifié par WeBer_Le_Pecheur
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
à l’instant, Spartan9802 a dit :

Bonjour @antoinech,
Qu'elle est ta version de SkQuery ? (/ver SkQuery)

@Spartan9802 J'ai SkQuery version 3.6.0-Lime

 

Le 11/01/2019 à 17:37, WeBer_Le_Pecheur a dit :

Ta variable {_item} est de type item ?

set name of {_item} parsed as item to {_name}

Quelque chose comme ça devrait passé (logiquement ^^)

 

Ou alors ce que tu voulais faire serait plutôt ceci : ?

set {_name} to the name of {_item}

 

J'ai essayé ta première proposition, mais ça ne marche pas, même erreur

Partager ce message


Lien à poster
Partager sur d’autres sites
il y a 2 minutes, Spartan9802 a dit :

Il y a une erreur quand tu exécute l'effect que tu a cité au début ?

Je viens de re-tester pour voir si ça marche, et miraculeusement je n'ai plus d'erreur! (WTF??)

Du coup je teste de refaire ma fonction et tout ce qui va avec, et si ça fonctionne je passe le sujet en résolu

(Je comprends pas pourquoi la ça marche et pas avant)

 

PS: Est ce que on peut utiliser la même syntaxe mais pour un item seulement (le tool of player par exemple), au lieu de tout l'inventaire?

Partager ce message


Lien à poster
Partager sur d’autres sites

Hum, j'ai quand même un problème, en fait 2.

Premièrement quand j'utilise ca:

set serialized contents of player's inventory to {inventory}

Ça ne me give absolument rien dans mon inventaire (alors que la variable {inventory} contient le contenu sérialisé.

 

Ensuite j'aimerais seulement give un item, et non remplacer complètement l'inventaire du joueur, je ne sais pas si c'est possible d'un manière ou d'une autre avec cette syntaxe.

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Vous postez un commentaire en tant qu’invité. Si vous avez un compte, merci de vous connecter.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.