Aller au contenu

Classement


Contenu populaire

Affichage du contenu avec la meilleure réputation depuis le 05/16/19 dans toutes les zones

  1. 3 points
    Hey Sa fait un bail que je ne suis pas revenue ici Je vais pas tarder à m'y remettre mais en ce moment je ne pourrais pas car je doit préparer mon FR mdrr. Sinon, j'ai remarqué que mon script (ChunkLoader) a dépassé les 100 téléchargements ! C'est énorme !! Je vous en remercie du fond du cœur Il y aura une mise à jour avec les contenus à ajouter présent sur le fichier et si vous avez des idées, c'est le bon moment de me proposer vos idées (ici de préf ou sinon en pv DIscord). A très vite
  2. 2 points
    Très bonne méthode de détection ! Excellent encore une fois...
  3. 1 point
    Bravo ! Je trouve que c'est un script super pertinent et abouti ! Je vais pas dire que c'est rare mais presque On voit vraiment que tu t'es investi et que tu as essayé d'optimiser, commenter etc... C'est propre comme résultat. Bon on va pas relever les fautes d'orthographe vu l'aboutissement mais ca fait jamais plaisir d'en lire Et au début de ton code, tu as des caractères un peu randoms, tu as voulu écrire quelque chose ? Si ca peut t'aider j'ai un site qui permet de convertir directement du texte en caractères ASCII: http://patorjk.com/software/taag/#p=display&f=Big&t=FFA BRAIN Si j'ai bien compris tu débute en Skript ? C'est un tout bon début si c'est le cas !
  4. 1 point
    Hey, souvent on voit des demandes d'aide qui consistent en un "ça marche pas, voici mon code". @PsYZiiK avait proposé un formulaire, mais chaque cas étant ce qu'il est, il est difficile d'en avoir un qui couvre vraiment tous ces cas. Aujourd'hui, je vous propose donc de trouver les problèmes de vos plugins pour vous en débarrasser vous-même et ainsi désengorger la section Aide et vous permettre de dire précisément où se situe votre problème aux gens qui vous aident. 1. Les messages d'erreur de Skript Ce qui est génial avec ces messages qui s'affichent quand on recharge un plugin Skript, c'est qu'ils sont (souvent) courts et simples à comprendre. Ils se présentent comme ceci : Explication de l'erreur (Plugin.sk, line X: 'Instruction mise en cause') La ligne C'est le plus important en fait et y'a plein de gens qui passent à côté en lisant leur message d'erreur. Et le principe est tout simple, évident même : c'est la ligne où Skript a trouvé une erreur en chargeant le plugin. Alors pas la peine de désespérer en cherchant d'où peut venir le problème quand vous avez un message d'erreur, c'est écrit exactement où vous devez regarder. Instruction mise en cause C'est juste un copier/coller de la ligne d'où vient le problème. Pour le coup, c'est une partie un peu inutile. Si vous avez le numéro de la ligne -ce qui est toujours le cas-, cette partie du message risque de vous servir rarement. Par contre, si la ligne en question est très longue, cette partie risque de prendre beaucoup de place et rendre le message un peu plus difficile à lire. Le plugin.sk C'est juste au cas où vous rechargez plusieurs plugins en même temps et que du coup, vous ne savez pas si l'erreur vient du premier, du deuxième ou du douzième. L'explication de l'erreur Ici, c'est ce qui va vous permettre, après avoir localisé le problème, de savoir ce qu'il est. Je vais développer un peu chacun d'eux plus loin. indentation error: expected X tabs, but found Y tabs Ce message est un peu particulier, parce qu'en général, il est présent plusieurs fois pour une seule erreur, mais il est très fréquent quand on débute. Il apparaît quand Skript trouve une incohérence dans les tabulations (tabs). Le cas le plus répandu, c'est quand on oublie de mettre deux points ":" à la fin d'une condition ou d'un événement. Dans ce cas, Skript considère la ligne de l'oubli comme une condition sans if ou un effet, deux cas où les lignes suivantes doivent être au même niveau que l'instruction en cause. Du coup, le fait que toutes les lignes suivantes soient décalées d'une tabulation fait que Skript les voit comme mal placées et signale une erreur pour chacune d'elles alors que la ligne où se situe le vrai problème n'est pas signalée par ce message. En revanche, la bonne ligne est souvent signalée par le message d'erreur suivant. Can't understand this condition/effect : Instruction Cette explication, c'est celle qui apparaît quand Skript ne reconnaît pas la syntaxe que vous avez utilisée dans une instruction sans deux points ":" à la fin. Le problème : - comme je disais au dessus, peut venir du fait qu'il manque les deux points ":", puisque Skript lit très différemment les instructions avec et sans. - mais le plus souvent, le problème est que la syntaxe n'est pas reconnue parce qu'elle est ajoutée par un add-on que vous n'avez pas installé ou qui n'est pas à la bonne version (ou de Skript qui n'est pas à la bonne version). Si vous ne savez pas de quel add-on vient une instruction, cherchez-la sur internet. - une autre cause récurrente. c'est que vous vous êtes juste trompé en écrivant l'instruction et que Skript ne comprend pas si c'est juste à peu près la bonne instruction. Dans ce cas, vérifiez la syntaxe là aussi en cherchant l'instruction sur internet. Le mot syntaxe comprend aussi les types d'arguments que vous utilisez. Si vous tentez de mettre potato là où Skript attendait un nombre, vous aurez le même message. Vous pouvez trouver la grande majorité des instructions et les add-ons dont elles dépendent sur SkUnity, ainsi que leur syntaxe, simplement en tapant le début dans le moteur de recherche en haut à droite. Empty configuration section! You might want to indent one or more of the subsequent lines to make them belong to this section or remove the colon at the end of the line if you don't want this line to start a section. Bon je sais, c'est long comme message, mais c'est très simple. Si vous avez une instruction qui finit par deux points ":", mais que la ligne en dessous n'a pas une tabulation en plus, le message apparaît pour dire qu'il faut soit retirer les deux points ":" soit ajouter la tabulation qui manque pour les instructions qui dépendent de celle qui pose problème. En général, on est tête en l'air et il fallait ajouter la tabulation. Beaucoup d'autres messages d'erreurs Il existe beaucoup d'autres erreurs, mais elles sont pour la plupart très simples à comprendre et ne nécessitent pas spécialement d'être développées. Si vous ne comprenez pas, un traducteur en ligne devrait faire l'affaire. Et si vous ne trouvez pas votre bonheur, vous avez toujours la possibilité de chercher votre erreur sur internet au cas où quelqu'un aurait eu le même problème et si vous êtes désespérés, vous pouvez poster un topic dans les demandes d'aide, où vous devrez donner l'erreur qui vous bloque, la partie du code liée, voire le code entier si vous n'êtes pas sûr d'avoir tous les éléments dans une partie réduite et dire ce que vous essayez de faire, puis tout ce que vous avez tenté pour résoudre le problème. 2. Les messages d'erreur Java Hors des messages d'erreur de Skript, on croise parfois d'autres messages qui proviennent des add-on ou de Skript directement. Les messages dans le tchat qui commencent par "An error occured while..." signalent qu'il y a un message d'erreur de ce type à lire dans la console, même si pas toujours. La difficulté de ces messages, c'est qu'ils sont longs et moins explicites. Dans cette partie, on va prendre un exemple très courant : [spoiler=An internal error occurred while checking for the latest version of Skript] [16:11:49] [skript update thread/INFO]: [0;37;22m[[0;33;22mSkript[0;37;22m][m [0;31;22mAn internal error occurred while checking for the latest version of Skript. Please refer to the server log for details.[m [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! [skript] Severe Error: [16:11:49] [skript update thread/ERROR]: #!#! Unexpected error while checking for a new version of Skript [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! If you're developing an add-on for Skript this likely means that you have done something wrong. [16:11:49] [skript update thread/ERROR]: #!#! If you're a server admin however please go to http://forums.skunity.com/t/4148?u=nfell2009 [16:11:49] [skript update thread/ERROR]: #!#! and check whether this error has already been reported. [16:11:49] [skript update thread/ERROR]: #!#! If not please reply with meaningful content, copy & paste this whole error into a pastebin (http://pastebin.com), [16:11:49] [skript update thread/ERROR]: #!#! and describe what you did before it happened and/or what you think caused the error. [16:11:49] [skript update thread/ERROR]: #!#! If you think that it's a trigger that's causing the error please post the trigger as well. [16:11:49] [skript update thread/ERROR]: #!#! By following this guide fixing the error should be easy and done fast. IF YOU DON'T FOLLOW IT, WE'LL HUNT YOU DOWN. [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! Stack trace: [16:11:49] [skript update thread/ERROR]: #!#! javax.xml.stream.XMLStreamException: ParseError at [row,col]:[1,1] Message: Fin prématurée du fichier. [16:11:49] [skript update thread/ERROR]: #!#! at com.sun.org.apache.xerces.internal.impl.XMLStreamReaderImpl.next(Unknown Source) [16:11:49] [skript update thread/ERROR]: #!#! at com.sun.xml.internal.stream.XMLEventReaderImpl.nextEvent(Unknown Source) [16:11:49] [skript update thread/ERROR]: #!#! at ch.njol.skript.Updater.getChangelogs(Updater.java:286) [16:11:49] [skript update thread/ERROR]: #!#! at ch.njol.skript.Updater$2.run(Updater.java:210) [16:11:49] [skript update thread/ERROR]: #!#! at java.lang.Thread.run(Unknown Source) [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! Version Information: [16:11:49] [skript update thread/ERROR]: #!#! Skript: 2.2-Fixes-V9b [16:11:49] [skript update thread/ERROR]: #!#! Bukkit: 1.10-R0.1-SNAPSHOT [16:11:49] [skript update thread/ERROR]: #!#! Minecraft: 1.10 [16:11:49] [skript update thread/ERROR]: #!#! Java: 1.8.0_101 (Java HotSpot(TM) Client VM 25.101-b13) [16:11:49] [skript update thread/ERROR]: #!#! OS: Windows 10 x86 10.0 [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! Running CraftBukkit: false [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! Current node: set {_Ligne} to line 2 of lore of player's tool (Entraînement au tir.sk, line 36) [16:11:49] [skript update thread/ERROR]: #!#! Current item: null [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! Thread: Skript update thread [16:11:49] [skript update thread/ERROR]: #!#! [16:11:49] [skript update thread/ERROR]: #!#! End of Error. [16:11:49] [skript update thread/ERROR]: #!#! A noter que la plupart des informations sont présentes dans le début de l'erreur. On a donc ça (étalé sur deux lignes) : [skript] Severe Error: Unexpected error while checking for a new version of Skript Le premier mot, c'est Skript, mais ça veut pas dire que le problème vient forcément du plugin Skript lui-même, donc on n'apprend pas grand chose. C'est la ligne qui suit les deux points qui est plus intéressante. Elle indique ce que le plugin cherchait à faire quand l'erreur est arrivée. Dans notre cas, Skript cherchait à vérifier si une nouvelle version n'était pas disponible. Dans ce cas-ci, puisque normalement, vous ne tournez pas sur la dernière version de Skript, cette erreur est sans importance et dans ce cas-ci, il vaut mieux désactiver le checking de nouvelle version dans la config' du plugin. Après, je suis pas forcément bien calé en java donc je vais pas trop insister sur cette partie, ça pourrait être cool que quelqu'un la fasse. Le mieux, si l'erreur est incompréhensible pour vous aussi, c'est de chercher le début sur Google avec des guillemets ("votre erreur"). 3. Ça marche pas, mais y'a pas de message d'erreur Agent 007, voici votre équipement pour cette mission : broadcast "Le joueur est dans le bon monde" broadcast "%{Variable}%" send "Il a bien un bâton dans la main" to console Ces outils, les plus élémentaires qui soient, permettent de localiser à peu près n'importe quel problème par logique. Une fois le problème repéré, on peut, au mieux le résoudre soi-même, au pire en donner tous les éléments dans une demande d'aide au lieu d'un "ça marche pas svp". L'intérêt donc des instructions énoncées au dessus, c'est qu'en les disposant un peu partout dans son code, on peut savoir ce qui se passe exactement lorsqu'on exécute son plugin, en regardant quels messages se sont affichés ou non.
  5. 1 point
    Ca je sais pas il faut lui demander
  6. 1 point
    Salut, tu n'as pas besoin de Skript pour ça, il te suffit de modifier le spigot.yml ligne 19 : "unknown-command: Unknown command. Type "/help" for help." Pour les codes couleurs, ça ne sera pas & mais §c par exemple. Cordialement,
  7. 1 point
    on join: #remplace ça par ce que tu veux faire. add player to {tycoon_players::*} send "%player% a rejoint le Tycoon !" to {tycoon_players::*}
  8. 1 point
    Tu as codeshare si tu veux: https://codeshare.io
  9. 1 point
    Ouais, je vois ^^ Tte façon, on a des addon lol
  10. 1 point
    Bonjour ! Pour la première proposition, saurais-tu avec des coordonnées ? Car j'aimerai que quand on marche sur une laine rouge, elle devienne verte ! Pour la 2ème, C'est exactement ce que je voulais ! Merci ! Et pour la troisième, tu n'as rien compris x) Je vais mieux m'expliquer : Imaginons que Julie et Paul veulent jouer au jeu, Quand Julie rejoint, bah sa la tp et tous..... mais je veux que quand c'est Paul qui rejoint, Julie et SEULEMENT Julie et les autres joueur qui sont dans la partie reçoive le message de join ! De préférence grâce à une liste qui est dans mon Skript !
  11. 1 point
    Je vous remercie tous, du coup je vais pouvoir m'améliorer, d’ailleurs désolé de ne pas vous avoir répondue.
  12. 1 point
    Le skript proposé par @Acenox est le mieux. Il n'est pas si compliquer à modifier.. Un peu de recherches, traductions, et c'est bon. Malheureusement tout ne tombe pas du ciel. Bonne journée.
  13. 1 point
  14. 1 point
    Bonjour, Je suis également intéressé, pouvez-vous me communiquer en message privé plus de précisions ? Cdt, Ethnae
  15. 1 point
    format gui slot 12 of player with grass named "&3hgfeq" with lore "&1dfhfkls" to close then run player command "hub" set line 2 of lore of current inventory of player's slot 12 to "&2kfdjskjfd" Teste ça
  16. 1 point
    options: monde: world message_sans_permission: Tu n'a pas la permission ! All: 49 Common: 35 Rare: 10 Rare+: 5 Rare++: 1 rayon: 10 timing: 20 command /coffrealéatoire <string>: trigger: if arg-1 is "baton": if player is op: give 1 stick named "&4&lBaton de zone" to player if arg-1 is "coffre": if player is op: set {_r} to 1 while {_r} = 1: set {_randomx} to a random integer between {xpost1} and {xpost2} set {_randomz} to a random integer between {zpost1} and {zpost2} set {_y} to 40 while {_y} is not 100: if block at location ({_randomx}, {_y}, {_randomz}) is air or tall grass: if block under block at location ({_randomx}, {_y}, {_randomz}) is not air or water or lava or trapped chest: if block above block at location ({_randomx}, {_y}, {_randomz}) is air: set {_reely} to {_y} set {_y} to 99 set {_r} to 0 add 1 to {_y} set block at location ({_randomx}, {_reely}, {_randomz}) to chest add {_randomx} to {xchest::*} add {_randomz} to {zchest::*} wait 1 tick delete {chance::*} delete {chance.All::*} delete {chance.Common::*} delete {chance.Rare::*} delete {chance.Rare+::*} delete {chance.Rare++::*} loop {@All} times: add "All" to {chance::*} loop {@Common} times: add "Common" to {chance::*} loop {@Rare} times: add "Rare" to {chance::*} loop {@Rare+} times: add "Rare+" to {chance::*} loop {@Rare++} times: add "Rare++" to {chance::*} add "32 stone:&8Ultra Commun" to {chance.All::*} add "32 dirt:&8Ultra Commun" to {chance.All::*} add "leather chestplate:&aCommun" to {chance.Common::*} add "stone sword:&aCommun" to {chance.Common::*} add "iron sword:&bRare" to {chance.Rare::*} add "golden chestplate:&bRare" to {chance.Rare::*} add "diamond sword of sharpness 2:&5Rare+" to {chance.Rare+::*} add "iron chestplate:&5Rare+" to {chance.Rare+::*} add "diamond chestplate of protection 2:&6Rare++" to {chance.Rare++::*} delete {slot::*} set {n} to 0 loop 26 times: add {n} to {slot::*} add 1 to {n} set {l} to a random integer between 1 and 6 loop {l} times: set {c} to a random element of {chance::*} set {i} to a random element of {chance.%{c}%::*} set {_bp::*} to {i} split at ":" set {_b} to {_bp::1} set {_b} to {_b} parsed as item type set {_p} to {_bp::2} set {n} to a random element of {slot::*} remove {n} from {slot::*} set slot {n} of inventory of block at location ({_randomx}, {_reely}, {_randomz}) to {_b} named "%{_p}%" broadcast "creation du coffre en x : %{_randomx}% y : %{_reely}% z : %{_randomz}% " loop all players: if gamemode of loop-player is survival: if distance between loop-player's location and location ({_randomx}, {_reely}, {_randomz}) > 10: message "-----------------------------------------------------" to loop-player message "&6un coffre est apparu &7x : %{_randomx}% y : %{_reely}% z : %{_randomz}%" to loop-player message "<tooltip:Téléportation à {@rayon} blocks du coffre><command:/coffrealéatoire tp>&2[Se téléporter]<reset>" to loop-player message "-----------------------------------------------------" to loop-player if arg-1 is "tp": set {_n} to size of {xchest::*} set {_randomx} to {xchest::%{_n}%} set {_randomz} to {zchest::%{_n}%} broadcast "%{_randomx}% %{_randomz}%" set {_rc} to {@rayon} * {@rayon} broadcast "r = %{_rc}%" set {_sqrtrc} to sqrt of {_rc} broadcast "r root = %{_sqrtrc}%" set {_x} to a random number between {_randomx} - {_sqrtrc} and {_randomx} + {_sqrtrc} set {_zc} to {_x} * {_x} - 2 * {_randomx} * {_x} + {_randomx} * {_randomx} set {_rc} to {@rayon} * {@rayon} set {_z} to {_rc} - {_zc} broadcast "%{_z}%" set {_z} to sqrt of {_z} set {_opp} to a random integer between 0 and 1 if {_opp} = 0: set {_z} to {_randomz} + {_z} if {_opp} = 1: set {_z} to {_randomz} - {_z} set {%player%.nodamagechute} to 1 teleport player at location ({_x}, 100, {_z}) if arg-1 is "on": set {auto} to 1 if arg-1 is "off": set {auto} to 0 if arg-1 is "reset": delete {xchest::*} delete {zchest::*} on damage: if {%victim%.nodamagechute} = 1: if damage cause is fall: cancel event set {%victim%.nodamagechute} to 0 every {@timing} seconds: set {_r} to 1 if 1 = {auto}: if 3 = 3: if 2 = 2: while {_r} = 1: set {_randomx} to a random integer between {xpost1} and {xpost2} set {_randomz} to a random integer between {zpost1} and {zpost2} set {_y} to 40 while {_y} is not 100: if block at location ({_randomx}, {_y}, {_randomz}) in world "{@monde}" is air or tall grass: if block under block at location ({_randomx}, {_y}, {_randomz}) in world "{@monde}" is not air or water or lava or chest or trapped chest: if block above block at location ({_randomx}, {_y}, {_randomz}) in world "{@monde}" is air: set {_reely} to {_y} set {_y} to 99 set {_r} to 0 add 1 to {_y} set block at location ({_randomx}, {_reely}, {_randomz}) in world "{@monde}" to chest add {_randomx} to {xchest::*} add {_randomz} to {zchest::*} wait 1 tick delete {chance::*} delete {chance.All::*} delete {chance.Common::*} delete {chance.Rare::*} delete {chance.Rare+::*} delete {chance.Rare++::*} loop {@All} times: add "All" to {chance::*} loop {@Common} times: add "Common" to {chance::*} loop {@Rare} times: add "Rare" to {chance::*} loop {@Rare+} times: add "Rare+" to {chance::*} loop {@Rare++} times: add "Rare++" to {chance::*} add "32 stone:&8Ultra Commun" to {chance.All::*} add "32 dirt:&8Ultra Commun" to {chance.All::*} add "leather chestplate:&aCommun" to {chance.Common::*} add "stone sword:&aCommun" to {chance.Common::*} add "iron sword:&bRare" to {chance.Rare::*} add "golden chestplate:&bRare" to {chance.Rare::*} add "diamond sword of sharpness 2:&5Rare+" to {chance.Rare+::*} add "iron chestplate:&5Rare+" to {chance.Rare+::*} add "diamond chestplate of protection 2:&6Rare++" to {chance.Rare++::*} delete {slot::*} set {n} to 0 loop 26 times: add {n} to {slot::*} add 1 to {n} set {l} to a random integer between 1 and 6 loop {l} times: set {c} to a random element of {chance::*} set {i} to a random element of {chance.%{c}%::*} set {_bp::*} to {i} split at ":" set {_b} to {_bp::1} set {_b} to {_b} parsed as item type set {_p} to {_bp::2} set {n} to a random element of {slot::*} remove {n} from {slot::*} set slot {n} of inventory of block at location ({_randomx}, {_reely}, {_randomz}) in world "{@monde}" to {_b} named "%{_p}%" loop all players: if gamemode of loop-player is survival: if distance between loop-player's location and location ({_randomx}, {_reely}, {_randomz}) in world "{@monde}" > 10: message "-----------------------------------------------------" to loop-player message "&6un coffre est apparu &7x : %{_randomx}% y : %{_reely}% z : %{_randomz}%" to loop-player message "<tooltip:Téléportation à {@rayon} blocks du coffre><command:/coffrealéatoire tp>&2[Se téléporter]<reset>" to loop-player message "-----------------------------------------------------" to loop-player on break: if gamemode of player is creative: if player's tool is a stick named "&4&lBaton de zone": cancel event set {zpost1} to z-coordinate of location of block set {xpost1} to x-coordinate of location of block broadcast "Les coordonée ont bien été prise en compte" on rightclick: if clicked block is set: if gamemode of player is creative: if player's tool is a stick named "&4&lBaton de zone": set {zpost2} to z-coordinate of location of block set {xpost2} to x-coordinate of location of block broadcast "Les coordonée ont bien été prise en compte"
  17. 1 point
    Cool mec ! Tu viens d'être marqué comme spammeur par toutes les plateformes IPS ! C'est-à-dire beaucoup ! Tu sais les trous du cul qui sont justes là pour faire chier leur monde ils ne sont pas les bienvenues et on prend soin de l'annoncer à tout le monde. Alors bon, on essayera de faire pareil avec toutes les plateformes. Tu peux pas répondre à ça mais ça permettra à tout le monde de voir que toi et ton intelligence ça fait deux. D'autant plus que tu as inviter tout un discord à venir spam ici c'est petit et tu as été le seul. Faut croire que tu n'es pas beaucoup populaire. Sur ce mon petit manche à couille, si tu veux pas être affiché partout comme spammeur va mieux falloir que tu ne revienne pas et je pense que si tu es revenu ici c'est que tu déprimes de pas pouvoir nous voir ;-; c'est dommage mais personne ne t'aime alors passe ton chemin Sur ce, bonne soirée.
  18. 1 point
    on any move ? on walk on water marche
  19. 1 point

    Version 0.6c

    29 downloads

    Bonsoir a vous ! Aujourd'hui pour votre plaisir je vous présente un skript, que j'ai nommé "Gui-Creator", cette ressource vous permet entre autre, de crée des menus (qui essaye d'être optimisés, et personnalisable), Commandes gui_creator create <nom du menu>" gui_creator function <nom de la fonctions>" gui_creator console_command <nom de la commande>" gui_creator player_command <nom de la commande>" gui_creator name <nom de l'item>" Explications des commandes gui-creator create <nom du menu>, (Il faut viser un coffre..), cette commande sert tout simplement a la création du gui, les autres commandes sont "optionnelle". gui_creator function <nom de la fonctions>, (Il faut tenir un item dans la main..), cette commande permet de crée un objet avec une fonctions, associés, dans le menu. gui_creator console_command <nom de la commande>, (Il faut tenir un item dans la main..), cette commande permet de crée un objet avec une commande (exécutée par la console), associés, dans le menu. gui_creator player_command <nom de la commande>, (Il faut tenir un item dans la main..), cette commande permet de crée un objet avec une commande (exécutée par un joueur), associés, dans le menu. gui_creator name <nom de l'item>, (Il faut tenir un item dans la main..), cette commande permet d'attribuer un nom a l'objet dans le menu (Les couleurs sont disponible) Permissions Il n'y a qu'une permission "gui.creator", .. x) Mise en garde: Ce script est en version bêta, beaucoup de chose reste à venir et sont a modifié ! Addons: Wildskript
  20. 1 point
    Pas de soucis, met ton sujet en résolu et #like si tu veut (personne te force)
  21. 1 point
    Salut ! Merci pour le partage ! Je comptais en créer un mais tu vien de me rendre la tâche plus facile ! ?
  22. 1 point
    Bonjour, Je pense que tout a été dit, mais qu'aucune n'aide ne t'a été apporté, voilà une petit coup de pouce: Syntax: force %player% to respawn Cordialement, FyRoOxX
  23. 1 point
    Bonjour, Bonsoir à tous. L'équipe de Skript-MC tient particulièrement à remercier tous nos donateurs qui ont permit à cette V2 de sortir. Nous remercions aussi toutes les personnes qui ont pu agir directement et indirectement et qui ont pu s'investir dans le projet et le développement. Cette V2 vous offre plein de nouveautés. Je vais essayer de vous en citer le plus: - Niveau des profils, les donateurs auront accès au GIF pour leur photo de profil. Vous êtes tous dans la mesure d'ajouter une bannière à votre profil pour vous distinguer comme sur Youtube ! - Les membres actifs et les donateurs sont en mesure de créer au nombre maximum de 3 des clubs publiques ou privés. Organisez des évents ou même faites vos propres messages dans vos clubs. Les membres doivent demander l'autorisation a l'équipe de modération pour éviter les abus. - La page des ressources a été complètement rafraîchie. Tous les skripts ont été supprimés donc postez de nouvelles versions de vos anciens projets si vous le souhaitez. - Les membres actifs possèdent un petit GIF de Chuck Norris sur le profil. Un GIF qui démontre leur fiabilité à la communauté (malgré le fait qu'ils soient plus ou moins actif) - La rubrique Add-ons a été mise en place pour les développeurs Java ! Pour pouvoir poster dans ce canal, demandez le grade aux administrateurs et leur fournissant le lien de votre/vos github(s) qui sert de support de développement pour votre add-on. Plein d'autres choses sont à découvrir ? Bon voyage au sein de ce forum tout neuf ! Cordialement, Vengelis_
  24. 1 point
    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 ici 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] #Effet open {virtual %inventory type% inventory [with size %integer%] [(named|with (name|title)) %string%]} to %players% #Seulement l'expression entre accolades, qui retourne un inventaire vide, est de TuSKe #Le reste est juste l'effet de Skript vanilla [spoiler=Créer un GUI] #Effets (format|create|make) [a] gui slot %integers% of %players% with %item stack% [to [do] nothing] (format|create|make) [a] gui slot %integers% of %players% with %item stack% to close [(using|with) %click action% [(button|click|action)]] (format|create|make) [a] gui slot %integers% of %players% with %item stack% to [close then] (run|exe[cute]) %sender% command %string% [with permission %string%] [(using|with) %click action% [(button|click|action)]] [(using|with) cursor [item] %item stack%] (format|create|make) [a] gui slot %integers% of %players% with %item stack% to [close then] (run|exe[cute]) function %function% [(using|with) %click action% [(button|click|action)]] [(using|with) cursor [item] %item stack%] #Déprécié : explication ci-dessous (format|create|make) [a] gui slot %integers% of %players% with %item stack% to (run|exe[cute]) [gui [click]] event #Nouveauté de la 1.7.5 (voir ci-dessous) (format|create|make) [a] gui slot %numbers% of %players% with %itemstack% to (run|exe[cute]) [(using|with) %click action% [(button|click|action)]] [spoiler=Enlever un GUI] #Effets (unformat|remove) [the] gui slot %integers% of %players% (unformat|remove) [all] [the] gui slots of %players% [spoiler=Conditions] %player% has [a] gui %player% does(n't| not) have [a] gui slot %number% of %player% is [a] gui slot %number% of %player% is(n't| not) [a] gui 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] left [mouse button] right [mouse button] (shift left|left mouse button with shift) (shift right|right mouse button with shift) double click [using mouse] middle [mouse button] number key drop [key] (control drop|drop key with control) "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] open virtual chest to player format gui slot 0 of player with stone to run: send "Ce message sera envoyé quand le joueur clique" format gui slot 1 of player with arrow to close with middle click: send "Ce message sera envoyé après avoir été fermé si le joueur clique avec sa molette" format gui slot 2 of player with diamond to run using left click: if gui-cursor-item is a stone: # si le curseur est de la stone set gui-clicked-item to gui-cursor-item # l'item cliqué devient l'item du curseur set gui-cursor-item to air # et ce dernier est supprimé 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] command /gui: trigger: if sender is console: broadcast "Exécuté par la console!" stop if player has permission "*": send "Le joueur a exécuté cette commande avec la permission ""*""" wait a tick if player doesn't have permission "*": send "Le joueur n'a plus la permission." else: send "Le joueur a toujours la permission, c'est sans doute un OP" else: send "Le joueur a exécuté la commande sans permission" command /guiExample: trigger: open virtual chest inventory to player format gui slot 0 of player with stone named "Ne fera rien" format gui slot 1 of player with stone named "Ne fera que se fermer" to close format gui slot 2 of player with stone named "Se fermera que si on clique avec une touche de nombre" to close using number key format gui slot 3 of player with stone named "Cela va exécuter une commande par le joueur, mais il n'aura peut-être pas la permission" to run player command "/gui" format gui slot 4 of player with stone named "Cela va exécuter une commande avec la permission ""*"" par le joueur" to run player command "/gui" with permission "*" format gui slot 5 of player with stone named "Cela va exécuter la commande par la console" to run console command "/gui" format gui slot 6 of player with stone named "Va exécuter la fonction faireQuelqueChose()" to run function faireQuelqueChose() format gui slot 7 of player with stone named "Va fermer le gui et exécuter faireQuelqueChose()" to close then run function faireQuelqueChose() format gui slot 8 of player with stone named "Va exécuter faireQuelqueChose() si on clique avec une pierre" to run function faireQuelqueChose() with cursor stone format gui slot 9 of player with stone named "Va exécuter l'event de GUI" to run gui event # Déprécié format gui slot 10 of player with stone named "Va exécuter la code ci-dessous": send "Salut." to player give a stone to player heal player function faireQuelqueChose(i: int = 0): #TuSKe pourra exécuter la fonction même si elle a été chargée après broadcast "Et ça l'a fait" on gui click: # Déprécié send "Exécuté via un event séparé" [spoiler=Exemple d'actions multiples] L'exemple ci-dessous montre comment exécuter différentes actions dépendamment du type de clic function changerNom(p: Player, clicktype: String): set {_number} to name of slot 4 of {_p}'s current inventory parsed as number #Requiert SkQuery ou les versions de Bensku if {_clicktype} is "gauche": remove 1 from {_number} else if {_clicktype} is "shift gauche": remove 100 from {_number} else if {_clicktype} is "droit": add 1 to {_number} else if {_clicktype} is "shift droit": add 100 to {_number} set name of slot 4 of {_p}'s current inventory to "%{_number}%" command /multiactionExample: trigger: open virtual dispenser inventory named "Multi-action example" to player set {_item} to diamond named "1" set line 1 of lore of {_item} to "&7Clic gauche : enlève 1" set line 2 of lore of {_item} to "&7Shift clic gauche: enlève 100" set line 3 of lore of {_item} to "&7Clic droit : ajoute 1" set line 4 of lore of {_item} to "&7Shift clic droit : ajoute 100" format gui slot 4 of player with {_item} to run function changerNom(player, "gauche") with "left" click format gui slot 4 of player with {_item} to run function changerNom(player, "shift gauche") with "shift left" click format gui slot 4 of player with {_item} to run function changerNom(player, "droit") with "right" click format gui slot 4 of player with {_item} to run function changerNom(player, "shift droit") with "shift right" click [spoiler=GUI à plusieurs pages] function ouvrirMenu(p: Player, type: String): if {_type} is "page 1": open virtual chest inventory with size 1 named "Page 1" to {_p} make a gui slot 0 of {_p} with stone named "Aller à la page 2" to run function ouvrirMenu({_p}, "page 2") else if {_type} is "page 2": open virtual chest inventory with size 1 named "Page 2" to {_p} make a gui slot 0 of {_p} with stone named "Aller à la page 3" to run function ouvrirMenu({_p}, "page 3") #Et pareil jusqu'à la dernière page else if {_type} is "page 3": open virtual chest inventory with size 1 named "Page 3" to {_p} make a gui slot 0 of {_p} with stone named "Revenir à la page 1" to run function ouvrirMenu({_p}, "page 1") 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] #Expression pour créer un inventaire #Elles font toutes la même chose, il y en a plusieurs pour mettre à disposition tous les usages possible de la syntaxe virtual %inventorytype% [inventory] [with size %-number%] [(named|with (name|title)) %-string%] virtual %inventorytype% [inventory] [with %-number% row[s]] [(named|with (name|title)) %-string%] virtual %inventorytype% [inventory] [(named|with (name|title)) %-string%] with size %-number% virtual %inventorytype% [inventory] [(named|with (name|title)) %-string%] with %-number% row[s] #Effets create [a] [new] gui [[with id] %-string%] with %inventory% [and shape %-strings%] (change|edit) %guiinventory% [spoiler=Formatter un GUI] (make|format) next gui [slot] (with|to) %itemstack% (make|format) gui [slot] %strings/numbers% (with|to) %itemstack% [spoiler=Fermer un GUI] #C'est un effet qui va exécuter du code quand le gui est fermé run (when|while) clos(e|ing) [gui] [spoiler=Changer les propriétés du GUI] #Change les propriétés d'un gui, comme le nom et la taille de l'inventaire ou l'arrangement des items change gui inventory to name %string% and size %number% change gui shape [of (items|actions)] to %strings% change gui properties of inventory to name %string% [with %-number% row[s]] and shape [of (items|actions)] to %strings% [spoiler=GUI Expressions] #Expressions générales last[ly] [created] gui #Retourne le gui le plus récemment créé. Est dépendant de l'event, comme une variable locale gui [with id] %string% #Retourne un gui à partir d'un identifiant #GUI expressions (voir plus loin) # Retourne le numéro du slot cliqué gui-slot # Retourne le slot cliqué "cru" # Un nombre de 0 à la taille de l'inventaire du haut veut dire un slot de l'inventaire du haut # Un nombre supérieur ou égal à la taille de l'inventaire du haut + 1 veut dire un sloot de l'inventaire du joueur. # Pas encore utilisé, simplement une option qui pourra devenir utile dans le futur gui-raw-slot # Le numéro correspondant si le type de clic est "number key" gui-hotbar-slot # L'inventaire impliqué dans l'action gui-inventory # L'action d'inventaire (valeurs listées ci-dessous) gui-inventory-action # Le type de clic gui-click-(type|action) # L'item dans le curseur et l'item cliqué. Ces deux expressions sont modifiables (add/remove/set/clear/delete) gui-cursor gui-[(clicked|current)-]item # Le type de slot (pas de grande utilité) gui-slot-type # Le joueur qui a cliqué gui-player # La liste de tous les joueurs pour qui le gui actuel est ouvert gui-players # Le nom de l'inventaire (pareil que "name of event-inventory") gui-inventory-name # L'identifiant texte du slot, voir ci-dessous gui-slot-id # L'objet du gui lui-même, permettant de le modifier gui [spoiler=Types] gui inventory: Représente un inventaire de gui, ce type est seulement utilisé quand on édite un gui déjà créé click (type|action): Représente un type de clic dans un event de "on inventory click". À partir de la 1.7.4-beta/1.7.5, il utilise les valeurs de Bensku pour compatibilité. Valeurs: left [mouse button], (shift left|left mouse button with shift), right [mouse button], (shift right|right mouse button with shift), middle [mouse button], number key, double click [using mouse], drop [key], (control drop|drop key with control) inventory action: Représente une action d'inventaire (=/= type de clic). À partir de la 1.7.4-beta/1.7.5, il utilise les valeurs de Bensku pour compatibilité. Valeurs: nothing, pickup all, pickup some, pickup half, pickup one [item], place all, place some, place one, swap with cursor, drop all [from] cursor, drop one [from] cursor, drop all [from] slot, drop one [from] slot, (move to other inventory|instant move), hotbar move and read, (hotbar swap|swap with hotbar), clone stack, collect to cursor, unknown slot type: Représent le type d'un slot dans un event de "on inventory click" Valeurs: armor, container, crafting, fuel, outside, quickbar, result Si vous utilisez les versions de Bensku, référez vous aux valeurs de click action et inventory action 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: create [a] [new] gui ) [[with id] %-string%] with %inventory% [and shape %-strings%] create a gui with virtual chest with 6 rows named "&4Select the server" 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 : create a gui with virtual chest with 6 rows named "&4Select the server": #Syntaxes: # (make|format) next gui [slot] (with|to) %itemstack% # (make|format) gui [slot] %strings/numbers% (with|to) %itemstack% make next gui with diamond sword named "&4PvP server" # It will format the next free slot that is not formatted yet. make next gui with grass named "&aSkyBlock" 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 : create a gui with virtual chest with 6 rows named "&4Select the server": make next gui with diamond sword named "&4PvP server": send "You will be teleported to the Pvp server" execute player command "/server pvp" make next gui with grass named "&aSkyBlock": send "You will be teleported to the Skyblock server" execute player command "/server skyblock" 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: open last gui to player Et voilà, le gui le plus basique se résume à ça. Voici ce à quoi votre code devrait ressembler : command /servers: trigger: create a gui with virtual chest with 6 rows named "&4Choix de serveur": make next gui with diamond sword named "&4Serveur PvP": send "Vous allez être tp au serveur PvP" execute player command "/server pvp" # exemple make next gui with grass named "&aSkyBlock": send "Vous allez être tp au serveur SkyBlock" execute player command "/server skyblock" #exemple open last gui to player Il y a aussi un effet pour exécuter du code quand le gui est fermé create new gui with virtual chest named "Sac à dos": run when close the gui: # Ce code va être exécuté AVANT d'enlever les items set {Variable::%gui-player%::*} to all items of gui-inventory 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. create a gui with virtual chest with 6 rows named "&4Choix de serveur": make next gui with diamond sword named "&4Serveur PvP": send "%clicked item%" #Umbaska Mais pour ne pas vous en rendre dépendant, TuSKe apporte ses propres expressions (voir "GUI Expressions" ci-dessus). Exemple : create a gui with virtual chest with 6 rows: make next gui with glass: if gui-click-action is left mouse buttom or right mouse buttom: set gui-clicked-item to gui-cursor-item set gui-cursor-item to air # Seuls ces deux expressions peuvent être changées GUIs globaux Maintenant vous pouvez créer des guis globaux grâce à un identifiant texte on skript load: create a gui with virtual chest with 6 rows named "&4Choix de serveur": make next gui with diamond sword named "&4Serveur PvP": send "Vous allez être tp au serveur PvP" execute player command "/server pvp" # exemple make next gui with grass named "&aSkyBlock": send "Vous allez être tp au serveur SkyBlock" execute player command "/server skyblock" #exemple command /servers: trigger: open gui "HUB" to player 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): on quit: delete gui "PlayerStats.%player%" # Va supprimer le gui et le fermer s'il est ouvert pour un joueur 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". command /edit: trigger: edit gui "HUB": # L'item va automatiquement se changer si le GUI est ouvert pour un joueur make gui 0 with diamond sword named "Le serveur PvP est en maintenance." 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. #syntax: create [a] [new] gui [[with id] %string%] with %inventory% [and shape %strings%] add "xxxxxxxxx" to {_forme::*} add "x--------x" to {_forme::*} add "xxxxxxxxx" to {_forme::*} create a gui with virtual chest and shape {_forme::*} 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. add "xxxxxxxxx" to {_forme::*} add "x--------x" to {_forme::*} add "xxxxxxxxx" to {_forme::*} create a gui with virtual chest and shape {_forme::*}: make gui slot "x" with iron ingot make gui slot "-" with diamond 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 #Syntaxes: change gui inventory to name %string% and size %number% change gui shape [of (items|actions)] to %strings% change gui properties of inventory to name %string% [with %-number% row[s]] and shape [of (items|actions)] to %strings% 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: create new gui with id "Exemple" with virtual hopper and shape "ABCDE": # vous pouvez créer la forme en une ligne loop 9 times: make next gui with a random item of all items open last gui to player /!\\ 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 : edit last gui: loop 10 times: wait 1 second change gui shape of items to "EABCD" 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 command /example <text>: trigger: set {_arg} to arg # peut être une event-value create new gui with virtual chest: make gui slot 0 with diamond: send "%{_arg}%" * 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 : create gui with virtual chest: make gui slot 0 with diamond: add 1 to {_count} send "%{_count}%" # Va augmenter à chaque fois qu'on clique * Ces variables ne sont pas partagées entre slots, excepté si on utilise les gui "formés" (avec une forme) command /example2: trigger: set {_var} to 1 create new gui with virtual chest: loop integers from 0 to 35: make gui slot loop-integer with diamond: add 1 to {_var} send "%{_var}%" # tous les slots débuteront avec une valeur de 1, mais les valeurs augmenteront indépendemment entre chaque slot 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
  25. 1 point
    Salut , ta présentation est bien mais je trouve que les textes sont trop collés fait des alinéas , espace entre chaque chapitre (oui je sais je fait un peu le prof de FR la xD)
×

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.