GauvainWizard Posté(e) le 19 septembre 2016 Posté(e) le 19 septembre 2016 Salut à tous ! Si vous êtes ici c'est que vous vous voulez en savoir plus sur les fichiers .yml (yaml) et sur leur utilisation avec WildSkript. Vidéo sur vous n'aimez pas l'écrit: Enfin bref ! Commençons dés maintenant le TMTCPas #2 (Toi même tu sais pas #2) Tout d'abord, il faut savoir qu'un fichier .yml peut ressembler à ça: nombre de parents: 2 famille: 1 parent: Jean 2 parent: Jeanne enfants: - Edouard - Michel Nous avons donc ici plusieurs données, tout d'abord les données "basiques" : nombre de parents Les données qui sont dite "parents" c'est à dire que vous ne pouvez rien écrire après les ":", ici c'est le cas pour "famille" Ensuite vous avez les données qui sont dite "enfant", ici c'est le cas pour "1 parent","2 parent" et "enfants" les données "1 parent" et "2 parent" contiennent des données "basiques" tandis que "enfants" contient une liste. Pour pouvoir éditer un fichier yml et parfois même un dossier.. eh bien il faut savoir le créer, et voilà comment on créer un fichier/dossier : create folder "plugins/TMTCPas" # Va créer un nouveau dossier nommé "TMTCPas" create file "plugins/TMTCPas/config.yml" # Va créer un nouveau fichier nommé "config.yml" qui se situera à l'intérieur du dossier TMTCPas delete file "plugins/TMTCPas/config.yml" # Detruit le fichier "config.yml" situé dans le dossier "TMTCPas" # Ces fichiers/dossier se situeront dans le dossier plugins de votre serveur. La Documentation Create File/Folder La Documentation Delete File/Folder Bon, maintenant passons à l'écriture dans votre fichier config, imaginons que vous vouliez faire une config automatique à chaque fois que le script est installé sur votre serveur. Voilà comment nous allons procéder pour écrire à l'intérieur d'un fichier : write file "TMTCPas: 2" to "plugins/TMTCPas/config.yml" # On utilise l’événement write file (ou wf) pour écrire dans un fichier La Documentation WF/Write File En mettant des données à l'intérieur d'un fichier, vous pourrez par la suite les réutiliser, prenons par exemple ce fichier: nombre de parents: 2 famille: 1 parent: Jean 2 parent: Jeanne age: parent: 1: 40 2: 42 enfants: - Edouard - Michel Il faudra procéder comme ceci: set {_nombre.parents} to single value "nombre de parents" get of "plugins/TMTCPas/config.yml" # La variable {_nombre.parents} contient : "2" set {_famille.1parent} to single value "famille.1 parent" get of "plugins/TMTCPas/config.yml" # Pour marquer la séparation entre une valeur "parent" et une valeur "enfant", il faut utiliser un "." set {_age.parent1} to single value "famille.age.parent.1" get "plugins/TMTCPas/config.yml" # On récupère l'âge du premier parent. set {_list.enfant::*} to value list "famille.enfants" get of "plugins/TMTCPas/config.yml" # On récupère la liste des enfants. # Sachez que lorsque vous faites comme ceci, votre variable sera considéré comme de type text, il faudra donc la parsed as number ou autre pour la réutiliser comme vous le souhaitez. La Documentation Single Value La Documentation Value List Ensuite, vous pouvez également changer les données qui sont situés à l'intérieur d'un fichier, prenons ce fichier: Pour changer la valeur "nombre de parents" on va faire comme ceci: set "nombre de parents" to "3" in yaml file "plugins/TMTCPas/config.yml" # Change "nombre de parents: 2" en "nombre de parents: 3" Pour "1 parent" on fera comme ceci: set "famille.1 parent" to "Laurent" in yaml file "plugins/TMTCPas/config.yml" # Change la valeur "1 parent: Jean" et "1 parent: Laurent" La Documentation Change Yaml Value Pour ajouter/retirer une valeur d'une liste, il faut faire comme ça: remove "Edouard" from yaml list "famille.enfants" from file "plugins/TMTCPas/config.yml" # Retire Edouard de la liste des enfants add "SNOWACH" to yaml list "famille.enfants" from file "plugins/TMTCPas/config.yml" # Ajoute @Snowach à la liste des enfants add "PsYZiiK" to yaml list "famille.enfants" from file "plugins/TMTCPas/config.yml" # Ajoute @PsYZiiK à la liste des enfants Il n'y a pas de documentation pour ça. Sachez également que vous pouvez récupérer l'ensemble d'un fichier dans une variable : set {_content} to content of file "plugins/TMTCPas/config.yml" # La varialbe {_content} contient tout le texte situé dans le fichier "config.yml" create file "plugins/TMTCPas/config2.yml" # Creation d'un nouveau fichier wf "%{_content}%" to "plugins/TMTCPas/config2.yml" Attention : Cet fonctionnalité de WildSkript ne fonctionne pas si Umbaska est installé sur votre serveur. La Documentation Content Of File Ce tutoriel est désormais fini ! Si tu n'as pas compris ce tutoriel, envoie-moi un MP qu'on règle tout ça ensemble :) 3
LavaPower Posté(e) le 20 septembre 2016 Posté(e) le 20 septembre 2016 Toujours aussi sympas ces TMTCPas, je ne connaissais pas les yml mais ils sont très pratiques ! 1
ShiRzoOa Posté(e) le 1 octobre 2016 Posté(e) le 1 octobre 2016 Et @GauvainWizard , sais-tu comment récupérer le texte en tant que location ? Je n'y arrive pas :/
Skripting Posté(e) le 1 octobre 2016 Posté(e) le 1 octobre 2016 Et @GauvainWizard , sais-tu comment récupérer le texte en tant que location ? Je n'y arrive pas :/ Il faut récupérer d'abord les points X, Y et Z et le monde la location et ensuite on fusionne le tout pour en faire une location. set {ta.variable} to position X, Y, Z of world "Monde" 2
ShiRzoOa Posté(e) le 1 octobre 2016 Posté(e) le 1 octobre 2016 Il faut récupérer d'abord les points X, Y et Z et le monde la location et ensuite on fusionne le tout pour en faire une location. set {ta.variable} to position X, Y, Z of world "Monde" Je pense que je me suis mal exprimé, et que j'ai oublié de donner des informations importantes :p Pour essayer les .yml, j'ai voulu faire un système de /sethome. Je peux créer le fichier, y ajouter/supprimer des données mais je ne peux pas récupérer le texte en tant que location :/ Par exemple, je fais /sethome 1 . Du coup, ma location est inscrite en tant que single value of "Home1" . Mais quand je récupère dans une variable, je ne peux pas tp le joueur à celle-ci. [spoiler=Mon Code] Oui, c'est vraiment pas optimisé. Mais je cherche à tester les yml, non essayer de raccourcir au maximum. command /sethome <number>: trigger: if file "plugins/Skript/SaveBase/%player%.data.yml" doesn't exists: create file "plugins/Skript/SaveBase/%player%.data.yml" wf "Home1:" to "plugins/Skript/SaveBase/%player%.data.yml" wf "Home2:" to "plugins/Skript/SaveBase/%player%.data.yml" if arg 1 is 1 or 2: if arg 1 is 1: set {_loc.home} to location of player set "Home1" to "%{_loc.home}%" in yaml file "plugins/Skript/SaveBase/%player%.data.yml" if arg 1 is 2: set {_loc.home} to location of player set "Home2" to "%{_loc.home}%" in yaml file "plugins/Skript/SaveBase/%player%.data.yml" else: send "&cErreur : Vous ne pouvez pas avoir plus de 2 home !" command /home <number>: trigger: if arg 1 is 1 or 2: if arg 1 is 1: set {_loc.home1.tp} to single value "Home1" get of "plugins/Skript/SaveBase/%player%.data.yml" teleport player to {_loc.tp} if arg 1 is 2: set {_loc.home2.tp} to single value "Home2" get of "plugins/Skript/SaveBase/%player%.data.yml" teleport player to {_loc.home2.tp} on script load: if folder "plugins/Skript/SaveBase" doesn't exists: create folder "plugins/Skript/SaveBase"
GauvainWizard Posté(e) le 1 octobre 2016 Auteur Posté(e) le 1 octobre 2016 Je pense que je me suis mal exprimé, et que j'ai oublié de donner des informations importantes :p Pour essayer les .yml, j'ai voulu faire un système de /sethome. Je peux créer le fichier, y ajouter/supprimer des données mais je ne peux pas récupérer le texte en tant que location :/ Par exemple, je fais /sethome 1 . Du coup, ma location est inscrite en tant que single value of "Home1" . Mais quand je récupère dans une variable, je ne peux pas tp le joueur à celle-ci. [spoiler=Mon Code] Oui, c'est vraiment pas optimisé. Mais je cherche à tester les yml, non essayer de raccourcir au maximum. command /sethome <number>: trigger: if file "plugins/Skript/SaveBase/%player%.data.yml" doesn't exists: create file "plugins/Skript/SaveBase/%player%.data.yml" wf "Home1:" to "plugins/Skript/SaveBase/%player%.data.yml" wf "Home2:" to "plugins/Skript/SaveBase/%player%.data.yml" if arg 1 is 1 or 2: if arg 1 is 1: set {_loc.home} to location of player set "Home1" to "%{_loc.home}%" in yaml file "plugins/Skript/SaveBase/%player%.data.yml" if arg 1 is 2: set {_loc.home} to location of player set "Home2" to "%{_loc.home}%" in yaml file "plugins/Skript/SaveBase/%player%.data.yml" else: send "&cErreur : Vous ne pouvez pas avoir plus de 2 home !" command /home <number>: trigger: if arg 1 is 1 or 2: if arg 1 is 1: set {_loc.home1.tp} to single value "Home1" get of "plugins/Skript/SaveBase/%player%.data.yml" teleport player to {_loc.tp} if arg 1 is 2: set {_loc.home2.tp} to single value "Home2" get of "plugins/Skript/SaveBase/%player%.data.yml" teleport player to {_loc.home2.tp} on script load: if folder "plugins/Skript/SaveBase" doesn't exists: create folder "plugins/Skript/SaveBase" Quand j'enregistre une location, j'enregistre les x, y et z un par un pour ensuite pouvoir les récupérer plus facilement ^^ Je te conseille de faire de même 1
ShiRzoOa Posté(e) le 1 octobre 2016 Posté(e) le 1 octobre 2016 Donc dans le .yml ça devrait ressembler à un truc comme ça ? Home1: x: blablabla y: blablabla z: blablabla Home2: etc EDIT : Enfin réussi :D Au lieu de set une variable à la location, j'ai fais un run command "/tp x y z" as op. C'est beaucoup plus simple *-* Merci à vous deux ! 1
GauvainWizard Posté(e) le 19 octobre 2016 Auteur Posté(e) le 19 octobre 2016 Complétement logique, il faut mettre deux espaces à la place des tabulations.
tutur1004 Posté(e) le 20 octobre 2016 Posté(e) le 20 octobre 2016 Intéressant mais, je te conseil de refaire ce tuto avec les functions proposées par SkUtilities, WildSkipt n'étant plus développé et apparemment instable (Source: avis des dev').. vu que SkUtilities à repris tout ça :D Sinon cool d'apprendre les YAML au gens
GauvainWizard Posté(e) le 22 novembre 2016 Auteur Posté(e) le 22 novembre 2016 Edition : Ajout d'une vidéo si vous aimez pas l'écrit ^^
Snowach Posté(e) le 23 novembre 2016 Posté(e) le 23 novembre 2016 J'ai été cité ! Et je n'avais même pas remarqué x') Bon tutoriel et bonne vidéo ^^ 1
Syst3ms Posté(e) le 12 décembre 2016 Posté(e) le 12 décembre 2016 De plus, skUtilities ne dépend d'aucune version, donc ça peut marcher aussi bien en 1.6 qu'en 1.11
DevilishDante Posté(e) le 8 mai 2018 Posté(e) le 8 mai 2018 Bonour j'ai le droit, je ne sais pas si j'ai le droit de poser une question mais elle est relative au tuto en effet: dans le fichier yml de l'exemple je cherche a retourner l'information suivante: set {_nombre.parents} to single value "nombre de parents" get of "plugins/TMTCPas/config.yml" # La variable {_nombre.parents} contient : "2" Sauf que je ne veux pas retourner deux mais "Nombre de parent" pour mieux comprendre je stock un uuid par section comme ceci: f5834312-7d83-4a83-8b81-ab75f02c0fe2: Bypass: 'false' Pseudo: - DevilishDante - Test - OuiOui IP: - xx.xx.xxx.xxx Mais impossible de recupèré l'uuid :/, merci d'avance de votre aide
GauvainWizard Posté(e) le 8 mai 2018 Auteur Posté(e) le 8 mai 2018 Salut salut Je te conseille de t'orienter vers skript-yaml pour travailler avec des fichiers yaml, je ne peux pas t'aider pour Wildskript. Et un piti conseil, évite les gros up Merci, Gauvain
Vengelis_ Posté(e) le 9 mai 2018 Posté(e) le 9 mai 2018 Salut salut Je te conseille de t'orienter vers skript-yaml pour travailler avec des fichiers yaml, je ne peux pas t'aider pour Wildskript. Et un piti conseil, évite les gros up Merci, Gauvain On va dire qu'il y a une tombe qui c'est mal décomposée.
DevilishDante Posté(e) le 12 mai 2018 Posté(e) le 12 mai 2018 (modifié) Pardon ça me semblait approprié de poster ici vu que mon soucis découlait directement d'ici X) j'uperais plus ! PS: Merci pour les indications mais je pense avoir trouvé en effet pour récuperer ce que je veux il faut que je fasse comme le fichier de groupmanager en gros: User: xxxx-xxxx-xxxx-xxxx-xxxx: pseudo: DevilishDante voilla si jamais quelqu'un a le même soucis que moi il a sa réponse X) Modifié le 12 mai 2018 par Invité
Messages recommandés
Créer un compte ou se connecter pour commenter
Vous devez être membre afin de pouvoir déposer un commentaire
Créer un compte
Créez un compte sur notre communauté. C’est facile !
Créer un nouveau compteSe connecter
Vous avez déjà un compte ? Connectez-vous ici.
Connectez-vous maintenant