Mildojos Posté(e) le 7 mars 2018 Posté(e) le 7 mars 2018 Bonjour ou bonsoir à tous, en ce moment, je suis en train de créer l'économie de mon serveur. J'aurais besoin d'un script de classement de l'argent de tous les joueurs inscrits sur mon serveur, connectés et même déconnectés. On utiliserait la commande /balancetop pour ce faire. Je préfère ne pas avoir de permission pour pouvoir faire la commande. Quand on rejoint mon serveur, ce que je fais c'est que je vérifie si le serveur a une certaine variable de définis, si ce n'est pas le cas, je définis cette variable. Cette variable c'est : {serveurnavaria.inscription.%player's uuid%} . J'ai aussi une autre variable qui stocke l'argent des joueurs sur mon serveur. Cette variable c'est " {navaria_money.%player's uuid%} ". Ce que je souhaite c'est que quand on va faire la commande /balancetop ça va vérifier si il existe plus de 10 joueurs inscrits sur le serveur. Si c'est le cas ça va afficher les 10 joueurs avec leur argent. Prenons exemple qu'il y a juste 4 joueurs d'inscrits, ça doit afficher les 4 joueurs sans de none par la suite. Si il y a plus de 10 joueurs, il y aura un message 'Clique ici pour voir la page suivante.'. Quand on va cliquer dessus ça nous affichera la suite et de même à l'infini. Exemple(s): #1 Mildojos - 450$ #2 Mildojos1 - 449$ #3 Mildojos2 - 448$ #4 Mildojos3 - 447$ #5 Pascal1234 - 110$ #6 Pascal123 - 119$ #7 Koala123 - 37$ #8 AxeEasy - 32$ #9 Jessica12 - 12$ #10 Nicolas - 9$ Clique ici pour voir la page suivante. #11 Mildojos - 450$ #12 Mildo165 - 449$ #13 Mildo13 - 448$ #14 Mildo - 447$ #15 Pascal14 - 110$ #16 Pascal134 - 119$ #17 Koala- 37$ #1 Mildojos - 10$ #2 Nicolas - 9$ #3 Nicolas2 - 8$ #4 Nicolas43 - 6$ Mon serveur est en 1.12.2, ce dernier est sous spigot. Je ne donne pas mes addons car je prendrais les votres si nécessaires. J'espère que j'ai été clair dans ma demande sinon n'hésitez pas et merci en avance.
LeCraftDeOuf Posté(e) le 8 mars 2018 Posté(e) le 8 mars 2018 J'peut essayer de te faire sa demain :) 1
Mildojos Posté(e) le 8 mars 2018 Auteur Posté(e) le 8 mars 2018 J'peut essayer de te faire sa demain :) Ça me ferait super plaisir, merci beaucoup en avance. 1
LeCraftDeOuf Posté(e) le 8 mars 2018 Posté(e) le 8 mars 2018 Voilà :D Aucun addons nécessaire. Juste le skript Json.sk. [spoiler=Code] options: chat.format.kill.1: &6&m----------&a&o Classement balance %{_entre}%&a&o-%{_et}% &6&m---------- chat.format.kill.2: &6» &7##&b%loop-index% &c%loop-value%&7: &3%{navaria_money::%loop-value%}%$ command /balancetop [<number=1>] [<number=10>]: trigger: send "&7Recherche en cours..." BalanceTop(player, arg 1, arg 2) function BalanceTop(p: player, entre: number, et: number): loop {navaria_money::*}: add 1 to {_size} if {_low.to.high.list::%loop-value%} is not set: set {_low.to.high.list::%loop-value%} to loop-index else: set {_n} to 0 loop {_size} times: set {_n} to {_n}+1 {_low.to.high.list::%loop-value-1%.%{_n}%} is not set set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index stop loop wait 1 tick set {_n} to size of {_low.to.high.list::*} loop {_low.to.high.list::*}: set {_high.to.low.list::%{_n}%} to loop-value set {_n} to {_n}-1 wait 1 tick send "{@chat.format.kill.1}" to {_p} if {_entre} = 1: if {_et} = 10: loop {_high.to.low.list::*}: loop-value is {_p} set {_o.%loop-value%} to loop-index parsed as number wait 2 ticks if {_o.%loop-value%} = 1: send "&3Vous êtes &e%{_o.%loop-value%}% &3er" to {_p} send " " to {_p} stop loop else: send "&3Vous êtes &e%{_o.%loop-value%}% &3ième" to {_p} send " " to {_p} stop loop loop {_high.to.low.list::*}: add 1 to {_result} if {_result} >= {_entre}: if {_result} <= {_et}: send "{@chat.format.kill.2}" to {_p} clear {_high.to.low.list::*} and {_result} and {_size} and {_n} and {_low.to.high.list::*} set {_Bal} to {_entre}+10 set {_Bal2} to {_et}+10 loop {navaria_money::*}: add 1 to {_size} if {_low.to.high.list::%loop-value%} is not set: set {_low.to.high.list::%loop-value%} to loop-index else: set {_n} to 0 loop {_size} times: set {_n} to {_n}+1 {_low.to.high.list::%loop-value-1%.%{_n}%} is not set set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index stop loop wait 1 tick set {_n} to size of {_low.to.high.list::*} loop {_low.to.high.list::*}: set {_high.to.low.list::%{_n}%} to loop-value set {_n} to {_n}-1 wait 1 tick loop {_high.to.low.list::*}: add 1 to {_result} if {_result} >= {_Bal}: if {_result} <= {_Bal2}: set {_True?} to true stop loop if {_True?} is true: json("%{_p}%", "&cClique ici pour voir la page suivante.||cmd:/BalanceTop %{_Bal}% %{_Bal2}%") 1
Mildojos Posté(e) le 9 mars 2018 Auteur Posté(e) le 9 mars 2018 Ma demande tient toujours vu que le script a un bug majeur et vu que un fragment de code du script que @LeCraftDeOuf m'a fait ne fonctionne pas et vu que se fragment de code a été repris, nous sommes incapable de corriger ce bug. Si quelqu'un veut tenter, merci de me contacter en message privé.
kimidu1609 Posté(e) le 9 mars 2018 Posté(e) le 9 mars 2018 Ma demande tient toujours vu que le script a un bug majeur et vu que un fragment de code du script que @LeCraftDeOuf m'a fait ne fonctionne pas et vu que se fragment de code a été repris, nous sommes incapable de corriger ce bug. Si quelqu'un veut tenter, merci de me contacter en message privé. As-tu bien le skript « Jason.sk » dispo sur Spigot ?
Mildojos Posté(e) le 9 mars 2018 Auteur Posté(e) le 9 mars 2018 As-tu bien le skript « Jason.sk » dispo sur Spigot ? Oui et là ne vient pas le problème. C'est loin d'être à cause du json. Si tu veux avoir plus de détails viens en message privé svp. 1
Mildojos Posté(e) le 9 mars 2018 Auteur Posté(e) le 9 mars 2018 Je vois pas comment faire les pages xD En gros, personne arrive à faire ma demande de script. :( Merci beaucoup d'essayer.
Mildojos Posté(e) le 9 mars 2018 Auteur Posté(e) le 9 mars 2018 Je vais te faire ça. Sérieusement ? Gros merci beaucoup juste pour avoir répondu au topic.
McLincoln2 Posté(e) le 10 mars 2018 Posté(e) le 10 mars 2018 Bonjour, je poste la solution ici: Premièrement vous allez avoir besoin de skript-mirror Merci à @AlexLew pour son tutoriel. Ce script contient de nouvelles expressions. loop all registered uuid loop all registered players player with registered uuid %string% Ces expressions vont chercher des informations dans un fichier stockant "UUID et PSEUDO" de tous les joueurs se connectant sur votre serveur dans le but de pouvoir chercher les joueurs s'étant déjà connecté mais ne l'étant pas. Vous pouvez configurer la taille de la première page, des pages suivantes et du "mini" classement affiché sur les pages autre que la première. options: firstpagesize: 10 sizepage: 7 topsize: 4 Ce script s'applique dans le cas ou votre variable est enregistrée sur l'uuid comme '{navaria_money.%player's uuid%}'. Pour appliquer le script à votre variable il faut dans le cas ci-dessus faire ceci options: variable: navaria_money. En mettant tout ce qui précède %player's uuid%. Voilà le code.[spoiler=Plutôt court] options: firstpagesize: 10 sizepage: 7 topsize: 4 variable: navaria_money. # Permet d'avoir les UUID de tous les joueurs get plural expression all [registered] uuid: set {_uuid::*} to configuration section "registered" get of "Server/registered.yml" return {_uuid::*} # Permet d'avoir les PSEUDOS de tous les joueurs get plural expression all (offline players|registered players): loop all registered uuid: set {_p} to single value "registered.%loop-value%" get of "Server/registered.yml" add {_p} to {_players::*} return {_players::*} # Permet de retrouver un joueur avec son UUID get expression player with [registered] uuid %string%: set {_p} to single value "registered.%expression-1%" get of "Server/registered.yml" return "%{_p}%" join: loop all registered uuid: if loop-value is uuid of player: if single value "registered.%uuid of player%" get of "Server/registered.yml" is "%player%": stop set "registered.%uuid of player%" to "%player%" in yaml file "Server/registered.yml" command /balancetop [<integer = 1>]: aliases: /baltop trigger: loop all registered uuid: set {_copy::%loop-value%} to "%{{@variable}%loop-value%}%" # Stockage des données (montant, uuid) ensuite pour récupérer le joueur 'player with registered uuid loop-value' et non loop-index # Tri des données par ordre croissant while size of {_copy::*} is not 0: loop {_copy::*}: if {_maxv} is not set: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index else if loop-value parsed as number is bigger or equal to {_maxv}: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index add {_maxv} to {_value::*} add {_maxi} to {_index::*} do [clear {_copy::%{_maxi}%}]->[clear {_maxv}]->[clear {_maxi}] # Condition pour savoir si le rangement a bugué if size of {_value::*} is equal to (size of {_value::*} + size of {_index::*}) / 2: if argument is 1: set {_min} to 1 set {_max} to {@firstpagesize} else: set {_min} to 1 + {@firstpagesize} + {@sizepage}*arg - 2*{@sizepage} set {_max} to 1 + {@firstpagesize} + {@sizepage}*arg - {@sizepage} loop all numbers between {_min} and {_max}: if {_ok} is not set: if "%{_value::%loop-number%}%" is not "<none>": set {_ok} to true send "§f§m-----------------§f Page %arg% §f§m-----------------" to sender send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender else: send "§cLa page demandée n'a pas pu être affichée." to sender stop else if {_ok} is true: if "%{_value::%loop-number%}%" is not "<none>": send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender if argument is not 1: send "" to sender loop all numbers between 1 and {@topsize}: send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender execute console command "/tellraw %sender% {text:""Clique ici pour afficher la page suivante"",clickEvent:{action:run_command,value:""/baltop %arg + 1%""},hoverEvent:{action:show_text,value:""Clic""}}" else: send "§cLa page demandée n'a pas pu être affichée." to sender Cas d'utilisation: 16 joueurs enregistrés Bonne utilisation. (pti like) 2
Mildojos Posté(e) le 10 mars 2018 Auteur Posté(e) le 10 mars 2018 Merci beaucoup, j'ai un petit problème, je ne trouve pas skript-mirror en 1.12.2. Là j'ai 7 erreurs à cause que je n'ai pas cette addon compatible.
LeCraftDeOuf Posté(e) le 10 mars 2018 Posté(e) le 10 mars 2018 As-tu bien le skript « Jason.sk » dispo sur Spigot ? Oui, il la bien le soucis est que J'arrive pas a afficher tous les Bonjour, je poste la solution ici: Premièrement vous allez avoir besoin de skript-mirror Merci à @AlexLew pour son tutoriel. Ce script contient de nouvelles expressions. loop all registered uuid loop all registered players player with registered uuid %string% Ces expressions vont chercher des informations dans un fichier stockant "UUID et PSEUDO" de tous les joueurs se connectant sur votre serveur dans le but de pouvoir chercher les joueurs s'étant déjà connecté mais ne l'étant pas. Vous pouvez configurer la taille de la première page, des pages suivantes et du "mini" classement affiché sur les pages autre que la première. options: firstpagesize: 10 sizepage: 7 topsize: 4 Ce script s'applique dans le cas ou votre variable est enregistrée sur l'uuid comme '{navaria_money.%player's uuid%}'. Pour appliquer le script à votre variable il faut dans le cas ci-dessus faire ceci options: variable: navaria_money. En mettant tout ce qui précède %player's uuid%. Voilà le code.[spoiler=Plutôt court] options: firstpagesize: 10 sizepage: 7 topsize: 4 variable: navaria_money. # Permet d'avoir les UUID de tous les joueurs get plural expression all [registered] uuid: set {_uuid::*} to configuration section "registered" get of "Server/registered.yml" return {_uuid::*} # Permet d'avoir les PSEUDOS de tous les joueurs get plural expression all (offline players|registered players): loop all registered uuid: set {_p} to single value "registered.%loop-value%" get of "Server/registered.yml" add {_p} to {_players::*} return {_players::*} # Permet de retrouver un joueur avec son UUID get expression player with [registered] uuid %string%: set {_p} to single value "registered.%expression-1%" get of "Server/registered.yml" return "%{_p}%" join: loop all registered uuid: if loop-value is uuid of player: if single value "registered.%uuid of player%" get of "Server/registered.yml" is "%player%": stop set "registered.%uuid of player%" to "%player%" in yaml file "Server/registered.yml" command /balancetop [<integer = 1>]: aliases: /baltop trigger: loop all registered uuid: set {_copy::%loop-value%} to "%{{@variable}%loop-value%}%" # Stockage des données (montant, uuid) ensuite pour récupérer le joueur 'player with registered uuid loop-value' et non loop-index # Tri des données par ordre croissant while size of {_copy::*} is not 0: loop {_copy::*}: if {_maxv} is not set: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index else if loop-value parsed as number is bigger or equal to {_maxv}: set {_maxv} to loop-value parsed as number set {_maxi} to loop-index add {_maxv} to {_value::*} add {_maxi} to {_index::*} do [clear {_copy::%{_maxi}%}]->[clear {_maxv}]->[clear {_maxi}] # Condition pour savoir si le rangement a bugué if size of {_value::*} is equal to (size of {_value::*} + size of {_index::*}) / 2: if argument is 1: set {_min} to 1 set {_max} to {@firstpagesize} else: set {_min} to 1 + {@firstpagesize} + {@sizepage}*arg - 2*{@sizepage} set {_max} to 1 + {@firstpagesize} + {@sizepage}*arg - {@sizepage} loop all numbers between {_min} and {_max}: if {_ok} is not set: if "%{_value::%loop-number%}%" is not "<none>": set {_ok} to true send "§f§m-----------------§f Page %arg% §f§m-----------------" to sender send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender else: send "§cLa page demandée n'a pas pu être affichée." to sender stop else if {_ok} is true: if "%{_value::%loop-number%}%" is not "<none>": send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender if argument is not 1: send "" to sender loop all numbers between 1 and {@topsize}: send "## %loop-number% %player with registered uuid {_index::%loop-number%}% - %{_value::%loop-number%}%$" to sender execute console command "/tellraw %sender% {text:""Clique ici pour afficher la page suivante"",clickEvent:{action:run_command,value:""/baltop %arg + 1%""},hoverEvent:{action:show_text,value:""Clic""}}" else: send "§cLa page demandée n'a pas pu être affichée." to sender Cas d'utilisation: 16 joueurs enregistrés Bonne utilisation. (pti like) Skript-Mirror non compatible en 1.12.2. 1
Mildojos Posté(e) le 10 mars 2018 Auteur Posté(e) le 10 mars 2018 Grâce à @LeCraftDeOuf , @McLincoln2 et quelques autres personnes, j'ai pu faire mon code. Je le donnerais une fois terminé, j'éditerais mon poste.
Messages recommandés