Aller au contenu

[Classement] Classement joueur avec une variable


Messages recommandés

Posté(e)

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

 

 

 

 

 

Posté(e)

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

 

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

Posté(e)

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

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

  • Rémi a verrouillé ce sujet
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.