Aller au contenu
  • 0

Skript de vote de map


Question

Posté(e)

Salut,

 

Alors voila, j'ai 12 maps et je voudrais que celle qui a reçu le plus de vote soit élue. Les seuls skript que j'ai trouver j'ai pas tout compris ou alors c'est que pour deux variables.

 

Ps: Merci d'avance pour ton aide ;)

 

Voila mon code:

[spoiler=Mon code]

variables:
{beatmap.osu.13}= 0
{beatmap.osu.cat}= 0
{beatmap.osu.blocks}= 0
{beatmap.osu.chirp}= 0
{beatmap.osu.far}= 0
{beatmap.osu.mall}= 0
{beatmap.osu.mellohi}= 0
{beatmap.osu.stal}= 0
{beatmap.osu.strad}= 0
{beatmap.osu.ward}= 0
{beatmap.osu.11}= 0
{beatmap.osu.wait}= 0

command /osvote [<text>] [<text>] [<player=%player%>]:
trigger:

	if arg-1 is "musique":
		if arg-2 is "13" or "cat" or "blocks" or "chirp" or "far" or "mall" or "mellohi" or "stal" or "strad" or "ward" or "11" or "wait":
			if {game.osu.start} is true:
				if {vote.%arg-player%} is not set:
					set {vote.%arg-player%.osu} to arg-2
					set {vote.%arg-player%} to true
					send "{@prefix} &aTon vote a était pris en compte." to arg-player
					add 1 to {beatmap.osu.%arg-2%}
					stop
				else:
					send "{@prefix} &cTu a déjà voté." to arg-player
					stopclose then run 
		if arg-2 is "retirer":
			if {game.osu.start} is true:
				if {vote.%arg-player%} is true:
					delete {vote.%arg-player%}
					remove 1 from {beatmap.osu.%{vote.%arg-player%.osu}%}
					delete {vote.%arg-player%.osu}
					send "{@prefix} &cTu viens de retirer ton vote." to arg-player
					stop
		if arg-2 is "choisir":
			if {beatmap.osu.13} is equal to 10:
				set {beatmap.game} to "records.13"
				stop
			if {beatmap.osu.cat} is equal to 10:
				set {beatmap.game} to "records.cat"
				stop
			if {beatmap.osu.blocks} is equal to 10:
				set {beatmap.game} to "records.blocks"
				stop
			if {beatmap.osu.chirp} is equal to 10:
				set {beatmap.game} to "records.chirp"
				stop
			if {beatmap.osu.far} is equal to 10:
				set {beatmap.game} to "records.far"
				stop
			if {beatmap.osu.mall} is equal to 10:
				set {beatmap.game} to "records.mall"
				stop
			if {beatmap.osu.mellohi} is equal to 10:
				set {beatmap.game} to "records.mellohi"
				stop
			if {beatmap.osu.stal} is equal to 10:
				set {beatmap.game} to "records.stal"
				stop
			if {beatmap.osu.strad} is equal to 10:
				set {beatmap.game} to "records.strad"
				stop
			if {beatmap.osu.ward} is equal to 10:
				set {beatmap.game} to "records.ward"
				stop
			if {beatmap.osu.11} is equal to 10:
				set {beatmap.game} to "records.11"
				stop
			if {beatmap.osu.wait} is equal to 10:
				set {beatmap.game} to "records.wait"
				stop
			else:
		#Je reste bloquer pour les départager maintenant...

 

10 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Car j'ai besoin de ces variables que sur ce skript, je voudrais ressortir avec juste une seule variable pour aller vers un autre skript qui la réutiliseras.

  • 0
Posté(e)

Les variables locales sont perdus dès que le code est fini, donc si tu mets une condition qui demande si la variable est set ne sera jamais true vu qu'elle doit être set dans le même code juste avant

  • J'aime 1
  • 0
Posté(e)

Je comprend pas vraiment, tu peux expliquer le code plz?

set {_map} to 0
loop {uneliste::*}:	# Tu mets les choix dans cette liste
if {beatmap.osu.%loop-value%} is more than {_map}:
	set {_map} to {beatmap.osu.%loop-value%}
	set {_map::choisi} to "%loop-value%"

  • 0
Posté(e)

Tu mets tout les noms dans la liste, et tu vas loop ta liste, donc elle va te sortir les noms et donc ta variable tu prends le nombre de votes de chacune des maps et tu regardes si elle est plus elevé que la plus elevé. Si oui, tu la mets comme la plus elevé

  • J'aime 1
  • 0
Posté(e)

Donc comme ca c'est parfait? ^^

 

[spoiler=Code]

variables:
   {beatmap.osu.13}= 0
   {beatmap.osu.cat}= 0
   {beatmap.osu.blocks}= 0
   {beatmap.osu.chirp}= 0
   {beatmap.osu.far}= 0
   {beatmap.osu.mall}= 0
   {beatmap.osu.mellohi}= 0
   {beatmap.osu.stal}= 0
   {beatmap.osu.strad}= 0
   {beatmap.osu.ward}= 0
   {beatmap.osu.11}= 0
   {beatmap.osu.wait}= 0

command /osvote [<text>] [<text>] [<player=%player%>]:
   trigger:

       if arg-1 is "musique":
           if arg-2 is "13" or "cat" or "blocks" or "chirp" or "far" or "mall" or "mellohi" or "stal" or "strad" or "ward" or "11" or "wait":
               if {game.osu.start} is true:
                   if {vote.%arg-player%} is not set:
                       set {vote.%arg-player%.osu} to arg-2
                       set {vote.%arg-player%} to true
                       send "{@prefix} &aTon vote a était pris en compte." to arg-player
                       add arg-2 to {beatmap.osu.liste::*}
                       add 1 to {beatmap.osu.%arg-2%}
                       stop
                   else:
                       send "{@prefix} &cTu a déjà voté." to arg-player
                       stop
           if arg-2 is "retirer":
               if {game.osu.start} is true:
                   if {vote.%arg-player%} is true:
                       delete {vote.%arg-player%}
                       remove {vote.%arg-player%.osu} from {beatmap.osu.liste::*}
                       remove 1 from {beatmap.osu.%{vote.%arg-player%.osu}%}
                       delete {vote.%arg-player%.osu}
                       send "{@prefix} &cTu viens de retirer ton vote." to arg-player
                       stop
           if arg-2 is "choisir":
               set {_beatmap.osu.compa} to 0
               loop {beatmap.osu.liste::*}:
                   if {beatmap.osu.%loop-value%} is more than {_beatmap.osu.compa}:
                       set {beatmap.game} to "%loop-value%"
                       exit loop
                       stop

 

×
×
  • 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.