Syst3ms 102 Posté : 4 juin 2017 GUI Manager Bonjour ! Aujourd'hui, je vais vous expliquer les GUI de TuSKe, qui sont pour moi la meilleure manière de créer des GUIs avec Skript. Quelques clarifications : Ce tutoriel n'est qu'une traduction du wiki du créateur, Tuke-Nuke, disponible Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Je suis conscient qu'il y a déjà un tutoriel sur les GUIs avec TuSKe, mais il ne comprend pas la V2 du GUI Manager, et n'est pas très avancé (ce qui n'est pas toujours mal) La V2 du GUI Manager n'est disponible qu'à partir de la version 1.7.7 de TuSKe Pour le moment, il n'est pas possible de formatter le slot d'un inventaire d'un joueur. À propos: Le GUI Manager est une API simple qui permet de facilement créer des guis avec la meilleure performance possible. Il y a deux types disponibles: gui simple et gui avancé. Si vous êtes un débutant ou que vous voulez simplement un gui simple, choisissez la première option. Sinon, vous pouvez essayer le gui avancé. [spoiler=GUI simple - Les fonctionnalités les plus basiques, mais assez pour créer vos propres guis facilement] Syntaxe: [spoiler=Ouvrir l'inventaire] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Créer un GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Enlever un GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Conditions] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Ce que les effets font: Il y a 4 types d'actions : "do nothing" (alias "unstealable" de SkQuery), "run command", "run function" and "run code". Les 3 premiers types ont une option pour fermer le GUI lors d'un clic ; pour faire ça, incluez simplement "to close". Il est également possible de n'exécuter l'action que si l'on clique d'une certaine façon ; pour faire ça, incluez juste "using %clicktype%". Types de clic possibles: [spoiler=Types de clic] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. "run command" et "run function" ont une possibilité de ne s'exécuter que si le joueur clique avec un certain item dans son curseur. Pour ça, incluez "(using|with) cursor [item] %itemstack%". "Run command" vous permet d'exécuter une commande quand on cliquee ; on peut choisir entre "console" et "player" pour le "sender" (celui qui exécute la commande). On peut également ajouter "with permission %string%" (qui n'a d'effet que quand le "sender" est "player"), ce qui fera exécuter la commande par le joueur avec une certaine permission, qui disparaîtra immédiatement après l'exécution de la commande. NOTE : Utiliser une permission est plus sûr que le "as op" pouvant avoir été utilisé avec skQuery. Astuce : Pour répliquer l'effet de ce dernier, utilisez "with permission "*"", "*" étant la permission d'avoir toutes les permissions "Run function" permet d’exécuter une fonction quand on clique. Le format est exactement le même que celui pour appeler une fonction dans Skript : "<nom de la fonction>(<paramètres s'il y en a>)". Le "run code" est beaucoup plus simple :il exécute le code à l'intérieur d'un effet "format gui slot", ce qui supprime le besoin de créer un fonction ou une commande. Pour cette raison, l'utilisation de "to run gui click event" est découragée. Vous pouvez utiliser les event-values de l'event "on inventory click" provenant de n'importe quel addon ou utiliser les expressions intégrées à TuSKe pour ça (voir "Expressions de GUI" dans "GUI avancé"). Elles requièrent la version "1.7.5" ou plus. [spoiler=Exemple] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Structure basique: Pour créer un gui, vous devez suivre deux étapes simples: * Utiliser n'importe quel effet pour ouvrir un inventaire * Utiliser n'importe quel effet parmi ceux ci-dessus pour formatter un gui Voici un exemple type de code Exemples: [spoiler=Test de tous les effets] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Exemple d'actions multiples] L'exemple ci-dessous montre comment exécuter différentes actions dépendamment du type de clic Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=GUI à plusieurs pages] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Choses à savoir: * Si vous voulez changer un item après qu'il ai déjà été formatté, pas besoin de le re-formatter, utilisez juste n'importe quel effet pour changer un item dans un inventaire. Par exemple, "set slot 0 of player's current inventory to {_nouvelItem}". * Si vous formattez un slot avec de l'air, un slot vide et verouillé sera créé. Le joueur ne peut pas non plus y placer un item * Vous pouvez formatter le même slot avec le même item mais une différente action ; une commande avec un clic droit et une fonction avec un clic gauche, par exemple. * Dans l'event "on gui click", vous devrez utiliser la condition "the name of event-inventory is the gui name that you want", car plusieurs scripts peuvent utiliser à la fois. * utiliser "uncancel event" dans l'event "on gui click" permettra au joueur d'enlever l'item et de verrouiller le slot après pour la raison ci-dessus. Si vous ne voulez pas que le slot soit verrouillé, utilisez "unformat gui slot event-number of player" * À partir de la version 1.7.2 de TuSKe, les fonctions utilisées dans "to run function" n'ont pas nécessairement à être déclarées au dessus. * À partir de la version 1.7.5 de TuSKe, vous pouvez exécuter du code directement sous l'effet. Voir exemples ci-dessus [spoiler=GUI avancé - Plus de ressources, qui permettent de faire des guis plus rapidement et proprement] Syntaxes: Se familiariser avec les syntaxes [spoiler=Créer/éditer un GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Formatter un GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Fermer un GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Changer les propriétés du GUI] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=GUI Expressions] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. [spoiler=Types] Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Si vous utilisez les versions de Bensku, référez vous aux valeurs de Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. et Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. dans sa documentation. TuSKe n'utilise les mêmes valeurs que si vous utilisez une version ancienne. Comment créer un gui D'abord, ce système de guis utilise un nouveau format pour en créer un : au lieu d'ouvrir l'inventaire puis de formatter les slots, on crée un gui puis on l'ouvre au joueur. Il faut d'abord la base pour le créer: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant, quelque chose de nouveau : des effets dans des effets. NDLR : Ceci étant une traduction, vous entendrez l'avis de Tuke-Nuke. Personnellement, je pense que c'est des éléments à part, comme Tlatoani (développeur de MundoSK) En utilisant ce concept, vous devez y utiliser l'effet "Make GUI" *à l'intérieur*. Exemple : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Pour le moment, c'est juste un item verrouillé (comme le "to do nothing" de la v1). Au lieu d'utiliser des commandes ou des fonctions, vous pouvez maintenant utiliser du code Skript directment (des effets dans des effets dans des effets ? Effet-ception !). NDLR : Idem, c'est toujours l'avis de Tuke-Nuke Pour faire ça, mettez simplement la code à l'intérieur de l'effet, comme si c'était une boucle ou une condition : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Maintenant, vous n'avez qu'à ouvrir le gui déjà créé au joueur en utilisant l'expression "last[ly] [created] gui" + l'effet "open inventory" to player: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Et voilà, le gui le plus basique se résume à ça. Voici ce à quoi votre code devrait ressembler : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Il y a aussi un effet pour exécuter du code quand le gui est fermé Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Les event-values de "on inventory click" Maintenant, vous pouvez utiliser les event-values de l'event "on inventory click" même hors de l'event, au cas où vous avez un addon qui a ces event-values. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Mais pour ne pas vous en rendre dépendant, TuSKe apporte ses propres expressions (voir "GUI Expressions" ci-dessus). Exemple : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. GUIs globaux Maintenant vous pouvez créer des guis globaux grâce à un identifiant texte Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. NOTE: Tous les guis (globaux ou locaux) partagent le même inventaire. Cela veut dire que si vous changez un item pour un joueur, alors il changera pour tous les joueurs. Le meilleur usage pour les guis globaux sont des guis "statiques" (un sélecteur de serveur ou un gui pour montrer les stats d'une faction, par exemple), où les valeurs ne dépendent pas du joueur. Vous pouvez aussi créer des guis globaux par joueur pour ne pas avoir à les recréer à chaque fois, mais n'oubliez pas de supprimer un gui quand il n'est plus utilisé (quand un joueur dee déconnecte par exemple): Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Editer un GUI Si vous voulez éditer un gui, en reformattant un slot ou changer les propriétés du gui (plus d'infos dessous), vous pouvez juste utiliser l'effet "edit" au lieu de "create". Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. GUIs avec forme Pour rendre vos guis simples et modulable, vous pouvez utiliser des formes. Ces formes utilisent le même concept que les formes des recettes de craft : un caractère représente un slot d'un inventaire. Avec ça, il devient plus simple de faire des guis dynamiques personnalisés. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Imaginez que les textes ci-dessus représentent un inventaire. Chaque slot qui est représenté par le même caractère sera le même, donc quand ils seront formattés et que le joueur clique, alors ils auront le même item et la même action. Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Regardez les exemples dessous pour en voir l'utilité. Changer les propriétés d'un GUI Ces effets vous aideront à changer l'inventaire du GUI proprement. Vous devez les utiliser dans "(edit|change) %gui inventory%" (Il n'est pas nécessaire de changer lors de la création). NDLR : la phrase entre parenthèses est possiblement incorrecte, la phrase originale en anglais n'ayant pas trop de sens Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. La **première* permet simplement de changer le nom et la taille si c'est un coffre d'un gui. Pas grand chose d'autre à dire. La deuxième est plus complexe : elle permet de changer l'arrangement des items, leur action, ou les deux. Prenons ce gui pour exemple: Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. /!\\ ATTENTION /!\\ : cette forme n'est pas la même que celle dont nous avons parlé au dessus. En utilisant "change gui shape of items <...>", vous devez utiliser une forme où on bouge un slot X vers un autre slot Y. En utilisant la forme "EABCD", notez que "E" a été déplacé vers le premier slot et que les autres ont été décalés vers la droite. Donc : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. va décaler tous les items vers le slot de "droite". En utilisant "change gui shape of actions <...>", on va uniquement changer les actions des items, donc : - si on a un gui avec deux slots et la forme "AB" et qu'on change la forme des actions à "BA", l'action exécutée dans le slot 0 précédemment sera exécutée dans le slot 1 maintenant. En utilisant "change gui shape to <...>" on va changer les items et les actions à la fois. C'est comme utiliser les deux syntaxes précédentes à la fois. Choses à savoir: * On ne peut pas utiliser des event-values dans le code à exécuter en cas de click * Pour éviter ça, utilisez une variable temporaire Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. * Les variables à l'intérieur du code de click se comporteront comme des "variables de slot". Cela veut dire qu'elle garderont la même valeur à chaque fois que le joueur clique : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. * Ces variables ne sont pas partagées entre slots, excepté si on utilise les gui "formés" (avec une forme) Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Examples de code : [spoiler=À faire] Si vous avez des exemples, n'hésitez pas à me les proposer sur Discord et peut-être que je les posterais ici ! Mon identifiant discord est Syst3ms#9959 et je suis présent sur les serveurs de skUnity et de Skript-MC, pour ne nommer qu'eux 8 Partager ce message Lien à poster Partager sur d’autres sites
tutur1004 58 Répondu : 4 juin 2017 J'ai pas trop compris ce qu'il y a de nouveau :' Partager ce message Lien à poster Partager sur d’autres sites
Syst3ms 102 Répondu : 4 juin 2017 Des choses comme ça : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Lis bien la partie avancée Partager ce message Lien à poster Partager sur d’autres sites
DoctorWhoFR 16 Répondu : 4 juin 2017 Tutoriel sympathique, assez bien expliquez dans l'ensemble. GG! Partager ce message Lien à poster Partager sur d’autres sites
Olyno 196 Répondu : 4 juin 2017 Bon tutoriel MAIS d'autres tutoriels ont été faits sur TuSke. La moindre des choses est de citer ces tutoriels. Tu en as parler vite fait "Je suis conscient qu'il y a déjà un tutoriel sur les GUIs avec TuSke, mais il ne comprend pas la V2 du GUI Manager" et c'est tout. Certe ces tutoriels ne parle en aucun cas de la V2 mais ils parlent de TuSke. Partager ce message Lien à poster Partager sur d’autres sites
Syst3ms 102 Répondu : 4 juin 2017 Bon tutoriel MAIS d'autres tutoriels ont été faits sur TuSke. La moindre des choses est de citer ces tutoriels. Tu en as parler vite fait "Je suis conscient qu'il y a déjà un tutoriel sur les GUIs avec TuSke, mais il ne comprend pas la V2 du GUI Manager" et c'est tout. Certe ces tutoriels ne parle en aucun cas de la V2 mais ils parlent de TuSke. En effet, je vais éditer le post de ce pas. 1 Partager ce message Lien à poster Partager sur d’autres sites
PheonBest 48 Répondu : 10 juin 2017 J'ai pas trop compris ce qu'il y a de nouveau :' Y'a des gui locaux et globaux, tu peux modifier les items du gui facilement surtout si c'est fait avec une shape (forme) spéciale. Mais par contre pour le "edit last gui", si un gui est ouvert après celui pour qui l'event est prévu, ça ne va modifier que le premier gui j'espère ? Après je préfère tout de même SkQuery :p (enfin je crois que c'est celui-ci qui gère les gui ^^) Partager ce message Lien à poster Partager sur d’autres sites
Syst3ms 102 Répondu : 10 juin 2017 Y'a des gui locaux et globaux, tu peux modifier les items du gui facilement surtout si c'est fait avec une shape (forme) spéciale. Mais par contre pour le "edit last gui", si un gui est ouvert après celui pour qui l'event est prévu, ça ne va modifier que le premier gui j'espère ? Après je préfère tout de même SkQuery :p (enfin je crois que c'est celui-ci qui gère les gui ^^) Laisse ce com' tranquille, c'est juste que @tutur1004 était assez bourré à ce moment là ^^. Aussi, skQuery est rempli de bugs. Pour n'en citer que quelques uns : wait a tick nécessaire Il est parfois possible de prendre les items hors du gui Il y a certains autres bugs avec des loops, et la façon de les résoudre est, comment dire... pas vraiment meilleure Sans parler du manque de fonctionnalités. 3 Partager ce message Lien à poster Partager sur d’autres sites
PheonBest 48 Répondu : 10 juin 2017 Laisse ce com' tranquille, c'est juste que @tutur1004 était assez bourré à ce moment là ^^. Aussi, skQuery est rempli de bugs. Pour n'en citer que quelques uns : wait a tick nécessaire Il est parfois possible de prendre les items hors du gui Il y a certains autres bugs avec des loops, et la façon de les résoudre est, comment dire... pas vraiment meilleure Sans parler du manque de fonctionnalités. Mouais mouais ... pour moi ça fonctionne parfaitemeeeent :) Je te montrerai un jour sur mon serveur ce qu'est un véritable gui petit. Un gui de renom forgé par SkQuery. Partager ce message Lien à poster Partager sur d’autres sites
Syst3ms 102 Répondu : 10 juin 2017 @PheonBest J'ai jamais dit qu'ils ne marchent pas pour autant. Ensuite le "petit" je crois qu'il a plus d'expérience (=/= ancienneté) que toi. Partager ce message Lien à poster Partager sur d’autres sites
PheonBest 48 Répondu : 10 juin 2017 @PheonBest J'ai jamais dit qu'ils ne marchent pas pour autant. Ensuite le "petit" je crois qu'il a plus d'expérience (=/= ancienneté) que toi. Peu importe, j'Ose le dire xD Partager ce message Lien à poster Partager sur d’autres sites
LavaPower 149 Répondu : 12 juin 2017 Il est vrai que j'ai eu du mal à comprendre ce tutoriel. Mais à la deuxième lecture, j'ai compris. Merci ^^ Partager ce message Lien à poster Partager sur d’autres sites
angelus76 222 Répondu : 8 juillet 2017 Merci pour le tuto qui me parais essentiel ;) j'y ais appris pas mal de chose Partager ce message Lien à poster Partager sur d’autres sites
Skripting 605 Répondu : 9 juillet 2017 Ahaha tu m'as bien fait rire toi. Essaye ce code : Contenu masqué Réagissez ou répondez à ce message afin de consulter le contenu masqué. Puis une fois sur ton serveur, fais /guiskquery. T'auras un magnifique GUI avec les lettres A, B, C, D, E et F. Essaye de cliquer sur toutes cettes lettres. Que se passe-t-il ? Ah mince y a toujours la lettre F qui s'affiche. Mais si tu fais /guituske, et que tu cliques sur une lettre, t'auras dans le chat la même lettre que ce soit A, B, C, D, E ou F. Mouais mouais ... pour moi ça fonctionne parfaitemeeeent :) Je te montrerai un jour sur mon serveur ce qu'est un véritable gui petit. On voit c'est qui le petit maintenant. 3 Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 20 juillet 2019 Comment on fais par exemple pour enlever le "+7 Attack Damage" a une épée en diamant ? j'ai pas trouvé je sais que c'est possible j'ai déjà réussit mes j"ai oublié Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 20 juillet 2019 Merci Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 20 juillet 2019 give a diamond sword named "nom" with lore "ce que tu veux" with no nbt et comment je peut faire executé une commande ? Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 20 juillet 2019 stp juste sa et plus besoin de rien Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 20 juillet 2019 beh faire éxécute une commande a l'épée give a diamond sword named "nom" with lore "ce que tu veux" with no nbt Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 21 juillet 2019 (modifié) Marche pas "An internal error occurred while attempting to perform this command" Modifié 21 juillet 2019 par Salameche #Rim'K Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 21 juillet 2019 Pas d'erreur mes c'est dans un menu donc sa marche pas Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 21 juillet 2019 format gui slot 19 of player with diamond sword named "Ahahah" with lore "hihihi" with no nbt Partager ce message Lien à poster Partager sur d’autres sites
Salameche #Rim'K 1 Répondu : 21 juillet 2019 Merci sa marche Partager ce message Lien à poster Partager sur d’autres sites
Joriis 267 Répondu : 21 juillet 2019 Bonsoir, Evitez de déterrer des vieux sujets, tu aurais pu simplement créer une demande d'aide dans la catégorie "Aides". Bonne soirée ! Partager ce message Lien à poster Partager sur d’autres sites