Aller au contenu

Classement

Contenu populaire

Affichage du contenu avec la meilleure réputation le 30/06/2017 dans Messages

  1. Bonjour ! @AlexLew m'avait obligé demandé de présenter un petit système de traduction que j'avais imaginé pour l'aider dans l'optimisation de ses scripts, mais vu qu'il est impatient il l'a présenté lui même, en oubliant certains éléments (et optimisations :O). Voilà pourquoi je vous présente aujourd'hui un petit système de traduction amélioré. Bon alors on est pas dans la section tutoriel, et puis le code ne fait que 5 lignes, donc je vous décris pas chaque lignes de codes, mais plutôt son utilisation ! function MsgLang(id: text, p: player, arg: texts="NoValue") :: text: set {_content} to single value "ID.%{_id}%.%{lang::%{_p}%}%" get of "language.yml" loop (size of {_arg::*}) times: replace all "[%loop-value%]" in {_content} with {_arg::%loop-value%} return {_content} L'idée de base de cette fonction est de, en lui renseignant le joueur et un ID de texte, renvoyer le texte correspondant dans la langue du joueur (définie par {lang::%player%}). Toutes ces traductions vont être enregistrées au préalable dans un fichier au format YAML, en suivant cet exemple: ID: newjoin: FR: [1] a rejoint pour la première fois le serveur, dites lui bienvenue ! EN: [1] is a new player on the server, say him hello ! NL: [1] is een nieuwe speler op de server, zeg hem hallo ! jointeam: FR: Vous avez rejoint l'équipe [1] ! Vos équipiers sont [2]. EN: You joined the [1] team. Your teammates are [2]. NL: Je ben in de [1] ploeg. Jouwe teamgenoten zijn [2]. Donc comme déjà dit, ce système est légèrement amélioré dans le sens où vous pouvez utiliser des arguments/paramètres/champs personnalisés (appelez ça comme vous voulez) destinés à contenir une liste de joueurs, un timer, ... bref, une donnée variable ! En gros, dans votre fichier de traduction, vous pouvez inclure à des endroits des [1], [2], etc (utilisez en autant que vous voulez) pour dire à la fonction "À cet endroit là, je veux que tu utilises ce texte: ..." À ce moment là, vous indiquer en troisième argument de la fonction le ou les champs à compléter. Petite astuce, vous pouvez écrire directement la liste de "champs personnalisés" à passer sans utiliser de variables liste en utilisant: MsgLang(<id>, <player> , ("<première argument>", "<deuxième argument>", ...)) Cependant, ce système a quelques défauts, par exemple, dans le 2e texte "jointeam", il faudrait également traduire les couleurs des équipes disponibles... Voilà c'est tout, il ne vous reste plus qu'à créer un système pour définir la langue du joueur, par exemple avec une commande, et à compléter le fichier de traduction ! 4rno
    2 points
  2. Tu peux tenter un truc comme sa on right click on chest: set {_chest.%player%} to 1 wait 2 ticks delete {_chest.%player%} on sound: if {_chest.%player%} is 1: set sound to "mob.spider.say": #Faut bien mettre un son hein set volume to 0 set pitch to 0
    2 points
  3. Tu refais un kobra et tu remets le code dessus ;)
    1 point
  4. This File is Private This file is only accesible by people that the owner directly adds to it. Please provide the owner of this file with your username to gain access to it.
    1 point
  5. Oulala le vilain!! xD Tu vas recevoir la fessée attention :P
    1 point
  6. if player do not have permission "permission": Ceci alors?
    1 point
  7. if player has not permission "ta permission": format slot [ton slot] to red wool
    1 point
  8. Punaise, la différence de niveau d'explications entre toi et moi est flagrante ! Tu sais tellement mieux expliquer que moi ! Bruh.
    1 point
×
×
  • 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.