Aller au contenu

Classement


Contenu populaire

Affichage du contenu avec la meilleure réputation le 09/14/19 dans toutes les zones

  1. 1 point
    Bonjour/bonsoir ! Dans les dernières versions de Skript se trouve une nouvelle fonctionnalité assez utile, permettant d'utiliser le format JSON dans des messages de manière à mon goût très simple et plus pratique qu'avec json.sk. ➤ Qu'est ce qu'un message contentant du 'json' ? Comment en faire via Skript ? Le json est un format permettant de stocker des données, et n'est pas utilisé que par Minecraft. Dans Minecraft, il permet entre autres d'envoyer des messages en couleur, contenant des commandes cliquables, des infobulles, et autres choses que l'on verra par la suite. Pour l'utiliser directement dans minecraft, il faut se servir de la commande "/tellraw", une commande à la syntaxe très restrictive et compliquée à utiliser. C'est le mode de fonctionnement de l'API json.sk. L'inconvénient est qu'avec ceci, il est difficile (impossible ?) d'envoyer plusieurs formats différents sur la même ligne, par exemple 2 commandes cliquables sur 2 portions de textes différentes de la même ligne. De plus cela envoie dans la console le log de la commande tellraw. Il existe aussi une syntaxe contenue dans SkQuery permettant d'envoyer des messages json, pouvant contenir plusieurs formats, mais cette syntaxe reste assez restrictive elle aussi, et nécessite l'addon. ➤ La nouvelle méthode Depuis longtemps il existe dans skript des bouts de codes intégrable directement dans l'effet "message/send", permettant de faire la mise en forme : message "<red><bold>Message en rouge et en gras<reset> en blanc <green> en vert" Ils sont très peu utilisés, car il est bien plus simple de se servir de "&4 , &l , &2 , &r , ...". Mais c'est avec des balises de ce type que l'on va intégrer des commandes/tooltip à nos messages. Voici les 4 balises disponibles : <url:url>texte cliquable, ouvre la fenêtre 'Êtes vous sûr de vouloir ouvrir..'<reset> <command:/commande>texte cliquable, exécute la commande<reset> <suggest command:commande>texte cliquable, écrit la commande dans la barre de tchat<reset> <tooltip:texte de la tooltip>Quand on passe la souris sur le texte, affiche la tooltip<reset> Et voici quelques exemples d'utilisations et le résultat en jeu: [spoiler=Exemples] #1 message "<command:/say J'ai cliqué><tooltip:§4Allez, clique%nl%§2§lSteuplé%nl%&1 :)>Passe ta souris....<reset>" #2 message "<url:[Contenu masqué] ici pour ouvrir%nl%le magnifique forum>Ouvrir le forum skript-mc.fr<reset>" #3 message "<tooltip:Clique pour faire /say Bonsoir><command:/say bonsoir>clic ?<reset>%nl%<tooltip:Clique pour préparer la commande /say><suggest command:/say >ou bien ici ?<reset>" [spoiler=Résultats](Après avoir cliqué sur le message) #1 [ATTACH=full]7864[/ATTACH] J'ai sauté quelques lignes pour ne pas cacher le texte, mais normalement il n'y a pas de saut de ligne. On remarque que dans les tooltips, le code couleur doit être mit avec le symbole § et non &, si vous écrivez le texte directement. Néanmoins si le texte de la tooltip est stocké dans une variable, alors le caractère & fonctionnera. Exemple : set {_tooltip} to "&1Bonsoir" message "<tooltip:%{_tooltip}%>Bonjour<reset>" affichera bien Bonsoir en bleu dans la tooltip. #2 [ATTACH=full]7867[/ATTACH] et au clic : [ATTACH=full]7868[/ATTACH] [spoiler=Résultats] #3 [ATTACH=full]7866[/ATTACH] Juste pour montrer qu'il est possible de faire plusieurs commandes dans le même message, sur plusieurs parties de textes différentes. C'est bien sûr aussi possible avec les url. ➤ Remarques ● Certaines combinaisons de formatage ne sont pas possibles, si elles sont mises sur la même portion de texte: - commande + commande suggérée - commande + url - commande suggérée + url ● Ils n'est pas possible d'associer plus d'un format du même type à la même portion de texte. Par exemple, les codes suivants ne fonctionneront que partiellement : message "<command:/say premier message><command:/say 2eme message>clic<reset> -> n'exécute que la 2eme commande message "<tooltip:premiere><tooltip:deuxième><tooltip:troisième>texte<reset>" -> n'affiche que la 3ème tooltip etc.. ● Les caractères < et > écrits dans l'un des formatages le fera boguer. Je n'ai personnellement pas trouvé d'autre moyen que de les remplacer par un caractère unicode comme ➤ ou ▶ ● Les commandes cliquables et les commandes suggérées ne peuvent pas faire plus de 100 caractères, sinon seuls les 100 premiers caractères seront exécutés. ● Placer le symbole § dans une commande cliquable fera kick le client, avec l'erreur "illegal characters in chat". Si vous placez un § dans une commande suggérée, la couleur sera bien appliquée dans le tchat, mais le joueur sera kick s'il exécute la commande, avec la même erreur. ● Les urls doivent commencer par "http(s)://", sinon le texte ne sera pas cliquable ● Ces formats ne sont pas utilisables avec l'effet broadcast Je rappelle qu'il faut avoir une version assez récente de skript, prenez les dernières releases de Bensku pour être sûr, et parce que c'est bien d'être à jour ;) Pour info, cette fonctionnalité a été ajoutée dans la dev26. Voilà, en espérant que ça vous sera utile :)
  2. 1 point
  3. 1 point
    Merci beaucoup ! Car bon de mon côté je ne savais pas comment faire, même niveau maths tout ça, donc ça m’intéressait x) Je déplace en résolu !
  4. 1 point
    Salut ! Désolé d'avoir eu cette réaction vu que je pense que si le sujet est resté inactif c'est que personne en avait vraiment l'utilité. Je tiens à préciser que je ne souhaitais absolument pas le Skript mais uniquement des idées de comment utiliser les mathématiques dans ce cas par exemple, ce qui fait que mon code n'est pas non plus complètement fou. Je vais donc comme demandé partager mon code ici et désolé si j'ai pu paraître "égoïste" dans mon message. Bonne journée à tous et désolé Acenox. Merci de me contacter si vous avez des questions. function chance(p: player, t: text) :: integer: set {_chance} to {chance::%{_t}%::%{_p}%} if {_chance} is not set: return 0 stop loop {_chance} times: add {_p} to {list::*} set {_return} to {_chance} / amount of {list::*} * 100 return {_return}
  5. 1 point
    Bonjour, tout d'abord, sache qu'il n'y a quasiment que des avantages à passer en 1.12, et si ce n'est que le pvp qui te retiens, il existe plein de moyen pour que le pvp de l'1.12 soit comme en 1.8. Ensuite, sur ce forum, les gens donnent de leur temps aux autres afin de les aider, la moindre des choses c'est de dire merci, même si le skript n'est pas encore achevé, en te comportant comme tu le fais, tu ne fais que dissuader les autres de t'aider. Pour finir, un "J'ai tous les addons principaux" ne nous permet pas de savoir précisément de quels addons tu dispose, je te prie donc de modifier ta demande afin que nous puissions t'aider d'avantage.
  6. 1 point
    options: min.x: 200 max.x: 3000 min.z: 200 max.z: 3000 min.y: 0 max.y: 230 cooldown: 5 minutes SpamMsg: &4Merci de ne pas spammer cette commande. &7&oDisponible tous les 5 minutes. Command /rtp: permission: permission permission message: &cTun'as pas la perm trigger: if difference between {cooldowns.randomtp.%player%} and now < {@cooldown}: send "{@SpamMsg}" else: send "&f&lTera&6&lnia &f: &eTéléportation en cours de chargement. Merci de ne pas bouger" to player wait 1 tick send "&7Téléportation dans 5 secondes." set {_x.%player%} to x-location of player set {_y.%player%} to y-location of player set {_z.%player%} to z-location of player wait 20 ticks if {_x.%player%} is x-location of player: if {_y.%player%} is y-location of player: if {_z.%player%} is z-location of player: set {_true.%player%} to true if {_true.%player%} is true: wait 20 ticks if {_x.%player%} is x-location of player: if {_y.%player%} is y-location of player: if {_z.%player%} is z-location of player: set {_true2.%player%} to true if {_true2.%player%} is true: wait 20 ticks if {_x.%player%} is x-location of player: if {_y.%player%} is y-location of player: if {_z.%player%} is z-location of player: set {_true3.%player%} to true if {_true3.%player%} is true: wait 20 ticks if {_x.%player%} is x-location of player: if {_y.%player%} is y-location of player: if {_z.%player%} is z-location of player: set {_true4.%player%} to true if {_true4.%player%} is true: wait 20 ticks if {_x.%player%} is x-location of player: if {_y.%player%} is y-location of player: if {_z.%player%} is z-location of player: set {_loc::new} to location at random number between {@min.x} and {@max.x}, random number between {@min.y} and {@max.y}, random number between {@min.z} and {@max.z} set {_loc::new2} to {_loc::new} set block at {_loc::new} to glass add 1 to y-coordinate of {_loc::new2} teleport player to {_loc::new2} set {_Dist1} to {_loc::new} set {_Dist2} to {_loc::new} add 4 to x-coordinate of {_Dist1} add -4 to z-coordinate of {_Dist1} add -4 to x-coordinate of {_Dist2} add 4 to z-coordinate of {_Dist2} loop blocks within {_Dist1} to {_Dist2}: set loop-block to glass else: send "&cVous ne devez pas bouger ! Téléportation annulé." else: send "&cVous ne devez pas bouger ! Téléportation annulé." else: send "&cVous ne devez pas bouger ! Téléportation annulé." else: send "&cVous ne devez pas bouger ! Téléportation annulé."
×
×
  • Créer...

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.