bonjour
Voici ma première publication en Skript,
Une liste déroulante sur un panneau
- Minecraft 1.10.2
- skript 2.2 dev 29
- wildSKript 1.9
- SkQuery 1.10
- SkRayFall 1.9.10
- tuSKe 1.8.2 dev 4
-wildskript gestion des fichiers yaml
- SkQuery pour les subroutines
- skUtilities 0.9.0
- SkRayFall pour les scoreboards
- tuSKe pour le gui
Liste des permission: une seule permission sk.admin
DIVERS
Les listes sont sauvegardées en format yaml et lors du premier démarrage une liste appelée nombres est crée
- a la création d'une liste la valeur 1 est crée avec comme valeur VIDE un simple /cm replacevalue <liste> <Ancienne valeur> <Nouvelle Valeur> suffit.
- clic droit avec un bâton pour sélectionner un panneau et gauche pour le désélectionner, un scoreboard d'information apparaît ou disparaît
- si la liste n'existe pas une indication liste inexistante est affichée sur le panneau
syntaxe pour créer un panneau :
ligne 1 : cm <nom du panneau>
ligne 2 : <le nom de la liste>
ligne 3 : sens <h ou v> pour horizontale ou vertical Paramètre Facultatif
pour détruire un panneau:
il faut avoir la permission et se mettre en Sneak
Maintenant tout se fait a partir d'un seul gui accessible par la commande /cm mais,
Spoiler: commandes pour ceux qui veulent le faire en manuel
1ere partie : la gestion des listes
/cm listl indique toute les listes existantes et leurs contenus
/cm listl <nom> n'affiche que la liste <nom> et son contenu
/cm remove <nom> supprime la liste <nom>
/cm create <nom> crée la liste <nom> avec comme valeur "VIDE" pour le 1er champ
/cm addvalue <liste> <valeur> ajoute une valeur a la liste <liste>
/cm replacevalue <liste> <ancienne valeur> <nouvelle valeur> remplace <ancienne valeur> par <nouvelle valeur> dans la liste <liste>
/cm removevalue supprime la valeur <valeur> a la liste <liste>
2eme partie : la gestion des panneaux
if faut tout dabord sélectionner la valeur avec un clic droit par un bâton
/cm PNom <nouveau nom> pour changer le nom du panneau
/cm PListe <nouvelle liste> pour changer la liste sur le panneau
/cm PSens vertical ou horizontal> pour changer le sens de défilement
/cm PDefaut <valeur> pour changer la valeur par défaut
3eme partie : la gestion générale
/cm debug change le flag pour debug
/cm rad remet tout les panneaux a la valeur par défaut
/cm razlist supprime toutes les listes ainsi que les fichiers yaml A Utiliser avec précaution
/cm list affiche la liste des panneaux ainsi que les données DES panneau avec position, valeur par défaut et le sens
/cm list <nom> affiche les données du panneau <nom> telle que position, valeur par défaut et le sens
- optimiser le code
- revérifier les "fotes d'ortaugraf" lol
- au lieu de sub-routines peut être mettre des fonctions
Q: Le skript ne fonctionne pas, que doit-je faire ?
R: Ce n'est pas un problème,
Il suffit de m'envoyer un message privé en indiquant vos erreurs dans les balises de code ou pastebin
Merci de décrire vos erreurs. Ne pas simplement dire "ça ne marche pas"
De plus une variable debug permet de voir les infos nécessaires
Q: Mais a quoi cela peut-il servir ?
R: pour mon cas je l'utilise pour le choix de destination pour les portails, mais je pense que cela peut aussi servir pour des QCM, des warps, un choix de KIT, ETC .
PS: exemple d'utilisation pour les portails
https://skript-mc.fr/forum/resources/1-10-2-★-skportal-★-v1.1516/
et petit skript rapide pour l'utilisation de skcm avec les warp
# warp 2 pour skcm grod0026 le 18 02 18 options: repertoire: plugins/Skript/Listes/ # le répertoire ou sont les listes fichiercm: plugins/Skript/scripts/SKcm 1.02.sk # fichier pour les panneaux défilant on load: set {list.warp::*} to "world", "event", and "games" # bien entendu c'est des warps qui ont déjà été crée par /setwarp <nom> # ici mettez VOS warp #------------ vérification si skcm existe ou pas ---------------- set {_fichier} to "{@fichiercm}" set {cmP} to false if file {_fichier} exists: set {cmP} to true send "&e[WARP] SKcm EST lié" to console set {_trouve} to 0# ensuite on créé la fausse liste car sinon liste inexistante loop {cm.list::*}: if "%loop-value%" is "warp": set {_trouve} to loop-index exit loop if {_trouve} is not equal to 0: broadcast "&e[WARP] liste des warps déjà ajouté -> %{cm.list::*}%" else: add "warp" to {cm.list::*} broadcast "&e[WARP] nouvelle liste des warps -> %{cm.list::*}%" # NB la nouvelle liste n'est pas enregistré en yaml else: send "&e[WARP] SKcm N'EST PAS lié" to console #----------------------------------------------------------------- on join: clear {resultat.SKcm.%player%}# remet a zéro le compteur pour le player # ensuite il faut un déclencheur ça peut être: #- une commande #- un événement par exemple un on region enter pour mon skportal #- un clic sur un panneau ( ce qu'on va faire ici) on right click on sign: set {_li1} to line 1 of block # on regarde si contient : warp set {_li2} to line 2 of block # et en 2eme ligne : validation if {_li1} is "warp": if {_li2} is "validation": if {cmP} is false: broadcast "ici on fait la suite de votre code" else: if {resultat.SKcm.%player%} is set: broadcast "/warp %{resultat.SKcm.%player%}%" # au lieu de broadcast faire un make player execute command # et si on veut decommander la validation set line 2 of block to "&cvalidation" # car on compare validation et pas &4validation else: send "&e[WARP] merci de cliquer avant sur votre destination" to player