noftaly Posté(e) le 13 janvier 2018 Posté(e) le 13 janvier 2018 Salut à tous ! Voici mon premier tuto ! Et aujourd'hui je vais parler du switch, car c'est une fonctionnalité présente dans tous les langages de programmation (C, C++, Java, JavaScript...) et qui est très utile ! Et j'ai découvert il n'y a pas très longtemps, qu'il existe aussi en skript ! (mais il n'est pas aussi complet que sur les autres langages...) Il vous faut soit MundoSK soit ExertSK (ce dernier est apparemment obsolète). Pour ma part je vais utiliser MundoSK. 1° switch-case, kesako ? C'est très simple. Le switch (ou match) et un effet qui va pouvoir remplacer les if, else if, else. Si vous avez beaucoup de if / else if / else à la suite, le switch pourra rendre tout ca un peu plus lisible. 2° Le switch Pour commencer, voyons la syntaxe (MundoSk) : (switch|match) %object%: Cela veut dire que l'on va l'utiliser de cette façon: switch {variable}: switch arg-1: match event-block: match {_variable}: 3° Le case Maintenant que l'on a ca, il va falloir aller à la ligne et incrémenter, puis commencer à dire nos conditions. Pour faire une condition, on utilise ca: (case|matches) %object%: donc par exemple: case 1: case "salut": case stone: case "noftaly": Évidemment ce sont des exemples, et si l'object que vous avez switch et de type text, mettez que des case de type text :) Donc prenons un exemple, avec une commande command /macommande [<text>]: trigger: switch arg-1: case "list": message "Tu veux voir la liste !" case "add": message "Tu veux ajouter quelque chose !" case "remove": message "Tu veux supprimer quelque chose" case "cocu": message "Tu n’es pas content !" tadaaaaa ! 4° Le break (exit) En général, à la fin d'un code dans un case, on ajout un break, pour dire que l'on "sort" du switch. Mais en skript, il n'y a pas de break, car il y a déjà une syntaxe présente de base dans skript : le exit. La on veut sortir de 2 sections, alors on va utiliser : exit 2 sections Exemple: command /macommande [<text>]: trigger: switch arg-1: case "list": message "Tu veux voir la liste !" exit 2 sections case "add": message "Tu veux ajouter quelque chose !" if arg-2 is 1: message "&aWaaa" exit 2 sections message "&cBouhhh" case "remove": message "Tu veux supprimer quelque chose" exit 2 sections case "cocu": message "Tu n’es pas content !" exit 2 sections Évidemment dans ce cas ca n’a pas trop d’utilité, mais ca peut s’avérer très utile dans certains cas ! 5° Le default (true) Je vais finir ce tuto par le default. Dans les autres langages, on utilise default pour exprimer la valeur par défaut, donc si aucun des "case" que l’on a mis avant n’est validé. En skript, ce n’est pas default, mais true. On va donc l’utiliser comme ca: command /macommande [<text>]: trigger: switch arg-1: case "list": message "Tu veux voir la liste !" exit 2 sections case "add": message "Tu veux ajouter quelque chose !" if arg-2 is 1: message "&aWaaa" exit 2 sections message "&cBouhhh" case "remove": message "Tu veux supprimer quelque chose" exit 2 sections case "cocu": message "Tu n’es pas content !" exit 2 sections true: message "&cTu es nul ! Jetons lui des pierres !" Comme ca, si on ne mets ni "list" ni "add" ni "remove" ni "cocu", le "true" se déclenche, et on reçoit "Tu es nul ! Jetons lui des pierres !" 6° A savoir Juste deux petits trucs a savoir : on peut mettre un switch dans un switch (dans un case plutôt). switch arg-1: case "remove": switch arg-2: case "salut": message "salut" true: message "au revoir" case "add": message "On ajoute !" exit 2 sections Et on peut mettre un "or" dans les case, pour déclencher le même block avec un cas ou avec un autre command /macommande [<text>] [<text>]: trigger: switch arg-1: case "remove" or "rem": message "Utilisation du or !" case "add": message "On ajoute !" exit 2 sections Voila ! J'espère que ça vous a plu et que vous avez appris quelque chose ! Si vous avez des questions, n'hésitez pas ! 1
Syst3ms Posté(e) le 13 janvier 2018 Posté(e) le 13 janvier 2018 Je préfère que tu ne recommandes pas ExertSK du tout. Il n'y a même pas de débat, l'addon est vieux et buggé. Et aussi, il y a quelques problèmes d'indentation. Il est aussi important de noter qu'il veut mieux utiliser un switch quand on veut tester plusieurs égalités strictes. À part ça, bon tutoriel. 1
BoBsmil3Y Posté(e) le 25 octobre 2018 Posté(e) le 25 octobre 2018 Hello there, Perso je ne trouve pas dans la doc de MundoSK le switch ? Il y aurait-il une soluce du coup ? ^^ J'essaye de rendre plus propre mon code ?
noftaly Posté(e) le 30 octobre 2018 Auteur Posté(e) le 30 octobre 2018 Pourquoi est ce que tu veux la doc ? Le tuto est là pour ça ! Tout est détaillé, c'est marqué exactement comment faire etc... Sinon pour la doc je te conseil skripthub.net/docs
BoBsmil3Y Posté(e) le 31 octobre 2018 Posté(e) le 31 octobre 2018 C'est mon MundoSk qui se lance pas ... j'ai fait un petit /pl et hop il est tout rouge le vilain. https://pastebin.com/jBDk4xZ7 voilà le message d'erreur. Je précise que lé c'était pour la 1.8.3 du plugin, mais j'ai testé en 1.8.4 et 1.8.5 version plugin et même erreur ... Mon skript est pas upgrade (2.2 dev37c) pour ma part car dans les dernières versions j'avais eu des bons bugs.
noftaly Posté(e) le 31 octobre 2018 Auteur Posté(e) le 31 octobre 2018 Essaye avec cette version : https://skripttools.net/dl/MundoSK+1.8.6-BETA.57.jar 1
BoBsmil3Y Posté(e) le 31 octobre 2018 Posté(e) le 31 octobre 2018 Ça marche niquel ! Merci beaucoup !
noftaly Posté(e) le 3 août 2019 Auteur Posté(e) le 3 août 2019 Il y a 3 heures, KneaXy a dit : Ok mais... A quoi ça sert... (J'explore tes topics, dans ta signature noftaly) Quelle utilité à cette syntaxe ? \: Je n'ai pas bien compris par rapport à tout les "if" "else if " "else"... Mais en tout cas, je ne sais pas en quoi ça changera ^^ Ca rend ton code plus propre + ca évite d'avoir pleins de if. Tu switch une expression, puis en fonction des résultats qu'elle peut avoir, tu fais quelque chose ! Comme c'est pas natif en skript, ca perd pas mal d'intérêt, c'est vrai... Mais sinon (dans tous les autres langages) c'est censé être une bonne habitude a utiliser
Romitou Posté(e) le 3 août 2019 Posté(e) le 3 août 2019 Je n'en aurait pas l'utilité pour le moment mais peut-être que je l'utiliserai plus tard. Merci ! 👌
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