Gaotike Posté(e) le 5 juin 2019 Posté(e) le 5 juin 2019 Version MC: Minecraft 1.8 Version de skript: Je sais pas :o Type de skript: skript de classement Bien le bonjour cher(e)s skripteur(euse)s: Je souhaiterais dans la mesure du possible que quelqu'un réalise pour moi un skript assez complexe bien que réalisable que je n'ai pas trouvé sur le forum. En effet je cherche un skript de classement joueur. J'ai fait sur mon serveur un système de classement joueur plutôt que classement faction comme il y a partout. Les joueurs gagnent des points classement (tout les 5 kills = 1point, faire des quêtes = x points) et mon objectif et de récompenser les meilleurs joueurs en terme de point, privilégier le farming, le pvp ... que le tryhard et la domination des grosse faction. Tout est fonctionnel malgré le plus important : le classement la commande serait attention suspens... /classement :o et la variable de point est {classement.%player%} Je vous remercie d'avance pour l'intérêt porté à ma demande et je remercie aussi fortement d'avance les personnes qui donneront de leur temps pour m'aider Bonne soirée à tous et bonne chance
PlayScripts Posté(e) le 5 juin 2019 Posté(e) le 5 juin 2019 Salut. J'avais déjà fait un algorithme permettant de faire un classement (lien ici). Je l'ai repris pour l'adapter à ta demande. Le code suivant devrait marcher (je n'ai pas pu tester) : command /classement: executable by: players trigger: loop all players: add {classement.%loop-player%} to {_list::*} loop {_list::*}: set {_value} to 1 loop {_results::*}: loop-value-1 <= loop-value-2 add 1 to {_value} set {_index} to {_value} + 1 set {_numbers::*} to {_results::*} loop (size of {_results::*} - {_value} + 1) times: set {_index.2} to {_index} - 1 set {_results::%{_index}%} to {_numbers::%{_index.2}%} add 1 to {_index} set {_results::%{_value}%} to loop-value loop {_results::*}: loop all players: if loop-value-1 is {classment.%loop-value-2%}: loop {_players::*}: if loop-value-2 is loop-value-3 set {_result} to true if {_result} is not set: add loop-value-2 to {_players::*} send "Voici le classement des joueurs en ligne :" loop {_players::*}: send "%loop-index% - %loop-value% avec %{_results::%loop-index%}% point(s)." to player
Gaotike Posté(e) le 5 juin 2019 Auteur Posté(e) le 5 juin 2019 il y a 34 minutes, PlayScripts a dit : Salut. J'avais déjà fait un algorithme permettant de faire un classement (lien ici). Je l'ai repris pour l'adapter à ta demande. Le code suivant devrait marcher (je n'ai pas pu tester) : command /classement: executable by: players trigger: loop all players: add {classement.%loop-player%} to {_list::*} loop {_list::*}: set {_value} to 1 loop {_results::*}: loop-value-1 <= loop-value-2 add 1 to {_value} set {_index} to {_value} + 1 set {_numbers::*} to {_results::*} loop (size of {_results::*} - {_value} + 1) times: set {_index.2} to {_index} - 1 set {_results::%{_index}%} to {_numbers::%{_index.2}%} add 1 to {_index} set {_results::%{_value}%} to loop-value loop {_results::*}: loop all players: if loop-value-1 is {classment.%loop-value-2%}: loop {_players::*}: if loop-value-2 is loop-value-3 set {_result} to true if {_result} is not set: add loop-value-2 to {_players::*} send "Voici le classement des joueurs en ligne :" loop {_players::*}: send "%loop-index% - %loop-value% avec %{_results::%loop-index%}% point(s)." to player Salut à toi, Tout d'abord merci beaucoup de ta réponse c'est très sympa de vouloir m'aider. Ensuite j'ai une erreur ligne 22 -> " if loop-value-2 is loop-value-3" de plus je chercherais a classer les joueurs qu'ils soient connectés ou non serait - il possible de réaliser ça ? merci d'avance
PlayScripts Posté(e) le 5 juin 2019 Posté(e) le 5 juin 2019 Désolé pour cette erreur, je n'avais pas remarqué. Je l'ai corrigée. Pour classer les joueurs qu'ils soient connectés ou non, il te faut une version récente de Skript. Voici le code avec l'erreur corrigée et le classement qui prend en compte les joueurs non connectés : command /classement: trigger: loop all offline players: if {classement.%loop-value%} is set: add {classement.%loop-value%} to {_list::*} loop {_list::*}: set {_value} to 1 loop {_results::*}: loop-value-1 <= loop-value-2 add 1 to {_value} set {_index} to {_value} + 1 set {_numbers::*} to {_results::*} loop (size of {_results::*} - {_value} + 1) times: set {_index.2} to {_index} - 1 set {_results::%{_index}%} to {_numbers::%{_index.2}%} add 1 to {_index} set {_results::%{_value}%} to loop-value loop {_results::*}: loop all offline players: if {classement.%loop-value-2%} is set: if loop-value-1 is {classment.%loop-value-2%}: loop {_players::*}: if loop-value-2 is loop-value-3: set {_result} to true if {_result} is not set: add loop-value-2 to {_players::*} send "Voici le classement des joueurs :" loop {_players::*}: send "%loop-index% - %loop-value% avec %{_results::%loop-index%}% point(s)." Normalement, ça devrait fonctionner (je n'ai pas pu tester).
Gaotike Posté(e) le 6 juin 2019 Auteur Posté(e) le 6 juin 2019 Il y a 17 heures, PlayScripts a dit : Désolé pour cette erreur, je n'avais pas remarqué. Je l'ai corrigée. Pour classer les joueurs qu'ils soient connectés ou non, il te faut une version récente de Skript. Voici le code avec l'erreur corrigée et le classement qui prend en compte les joueurs non connectés : command /classement: trigger: loop all offline players: if {classement.%loop-value%} is set: add {classement.%loop-value%} to {_list::*} loop {_list::*}: set {_value} to 1 loop {_results::*}: loop-value-1 <= loop-value-2 add 1 to {_value} set {_index} to {_value} + 1 set {_numbers::*} to {_results::*} loop (size of {_results::*} - {_value} + 1) times: set {_index.2} to {_index} - 1 set {_results::%{_index}%} to {_numbers::%{_index.2}%} add 1 to {_index} set {_results::%{_value}%} to loop-value loop {_results::*}: loop all offline players: if {classement.%loop-value-2%} is set: if loop-value-1 is {classment.%loop-value-2%}: loop {_players::*}: if loop-value-2 is loop-value-3: set {_result} to true if {_result} is not set: add loop-value-2 to {_players::*} send "Voici le classement des joueurs :" loop {_players::*}: send "%loop-index% - %loop-value% avec %{_results::%loop-index%}% point(s)." Normalement, ça devrait fonctionner (je n'ai pas pu tester). ya un probleme avec le loop all offline players
PlayScripts Posté(e) le 6 juin 2019 Posté(e) le 6 juin 2019 Salut. Il te faut la dernière version stable de Skript, la 2.3.6. Voici le lien de téléchargement : https://github.com/SkriptLang/Skript/releases/download/2.3.6/Skript.jar.
Rémi Posté(e) le 14 juin 2019 Posté(e) le 14 juin 2019 Bonjour, Sujet inactif, je verrouille. Venez en MP pour le ré-ouvrir. Bonne journée, Rémi.
Messages recommandés