Aller au contenu

Messages recommandés

Posté(e)

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.

Posté(e)

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}%")

 

 

  • J'aime 1
Posté(e)

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é.

Posté(e)
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 ?

Posté(e)
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.

  • J'aime 1
Posté(e)

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.

  1. loop all registered uuid
  2. loop all registered players
  3. 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

1520679188-capture.png

1520679219-capture2.png

 

Bonne utilisation. (pti like)

  • J'aime 2
Posté(e)
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.

  1. loop all registered uuid
  2. loop all registered players
  3. 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

1520679188-capture.png

1520679219-capture2.png

 

Bonne utilisation. (pti like)

Skript-Mirror non compatible en 1.12.2.

  • J'aime 1
×
×
  • 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.