Aller au contenu

Messages recommandés

Posté(e)

Bonjour à tous, je réalise un skript de mini jeux.

 

La partie qui me pose problème est l'ajout d'un joueur à une équipe. Le code en lui même n'est pas un problème c'est plutôt sa réaction.

 

Aucune erreur lors du reload, ni lors de l’exécution de la commande cependant rien ne se passe. J'ai donc mis des 'send "ok" ' un peu partout pour voir d'ou viens le problème et il s'avère que le skript mouline lors du premier loop... Une idée ?

 

En clair, le skript reste bloqué lors du premier loop du moins c'est mon impression et empêche donc le reste de la commande de s'effectuer ..

 

command bthjoinbleu:
   trigger:
       if player has permission "breaktheheart.use":
           loop {bthequipebleulist::*}:
               if loop-value is "%player%":
                   send "&a[&9B&6T&cH&a] &cVous êtes déjà dans cette équipe !" to player
               else:
                   loop {bthequiperougelist::*}:
                       if loop-value-2 is "%player%":
                           if {bthequipebleu} <8:
                               remove 1 from {bthequiperouge}
                               remove "%player%" from {bthequiperougelist::*}
                               add 1 to {bthequipebleu}
                               add "%player%" to {bthequipebleulist::*}
                               send "&a[&9B&6T&cH&a] &cVous avez rejoins l'équipe bleu !" to player
                           else:
                               send "&a[&9B&6T&cH&a] &cL'équipe bleu est complète. Merci de sélectionner l'équipe rouge !" to player
                       else:
                           if {bthequipebleu} <8:
                               add 1 to {bthequipebleu}
                               add "%player%" to {bthequipebleulist::*}
                               send "&a[&9B&6T&cH&a] &cVous avez rejoins l'équipe bleu !" to player
                           else:
                               send "&a[&9B&6T&cH&a] &cL'équipe bleu est complète. Merci de sélectionner l'équipe rouge !" to player

Posté(e)

Salut,

 

Je pense que l'erreur vient du fait que tu fais cela:

 

if loop-value is "%player%":

Car cela regarde si la valeur est le joueur et non si elle le contient.

 

Alors qu'il faudrait faire:

 

if loop-value contains "%player%":

 

En espérant t'avoir aidé (si oui lache un like ;))

 

Cordialement

Posté(e)
Salut,

 

Je pense que l'erreur vient du fait que tu fais cela:

 

if loop-value is "%player%":

Car cela regarde si la valeur est le joueur et non si elle le contient.

 

Alors qu'il faudrait faire:

 

if loop-value contains "%player%":

 

En espérant t'avoir aidé (si oui lache un like ;))

 

Cordialement

Merci de ta réponse mais ca ne marche pas non plus :/ toujours le même problème au même endroit... Une autre idée ?

Posté(e)

Arreter de conseiller d'utiliser "containe" n'importe comment.

Si dans la list j'ai " Angelus, Angel "

Si j'utilise containe pour remove "Angel" sa va remove "Angelus" car c'est le premier de la liste et il contien "Angel" !

 

Sinon a la lecture de ton code j'ai l'impression qu'il bloque avec les conditions.

Je n'ai pas la possibilité de te composer le code, mais revoie tes condition.

Posté(e)

Avec le premier loop le deuxième se répétera a chaque boucle.

 

Si il est dans l'équipe tu dois set une variable tempo sur true puis quitter le loop vu qu'il ne te sert plus (exit loop)

A la place de ton else tu dois check si la variable temporaire est true puis faire de même de l'autre loop.

 

(Je te fait pas de code car j'suis sur tel)

Posté(e)
Arreter de conseiller d'utiliser "containe" n'importe comment.

Si dans la list j'ai " Angelus, Angel "

Si j'utilise containe pour remove "Angel" sa va remove "Angelus" car c'est le premier de la liste et il contien "Angel" !

 

Sinon a la lecture de ton code j'ai l'impression qu'il bloque avec les conditions.

Je n'ai pas la possibilité de te composer le code, mais revoie tes condition.

Oui je sais, en essayant avec contains j'ai pensé à ce problème mais bon je voulais au moins voir si cela marché !

Posté(e)
Avec le premier loop le deuxième se répétera a chaque boucle.

 

Si il est dans l'équipe tu dois set une variable tempo sur true puis quitter le loop vu qu'il ne te sert plus (exit loop)

A la place de ton else tu dois check si la variable temporaire est true puis faire de même de l'autre loop.

 

(Je te fait pas de code car j'suis sur tel)

 

Hum j'ai bien compris ton message et ce que ca devait faire par contre je vois pas ou placer la première variable tempo.. Si t'as un peu de temps, je veux bien que tu restructure le code :rolleyes:, merci d'avance, sinon j'essaierai un peu partout.. @Azer_Flaash

Posté(e)

@Azer_Flaash Bon ben j'ai essayé ca mais même problème... pas d'erreur mais pas de message non plus..

 

command bthjoinbleu:
   trigger:
       if player has permission "breaktheheart.use":
           if {_bthequipebleudeja} is false:
               loop {bthequipebleulist::*}:
                   if loop-value is "%player%":
                       set {_bthequipebleudeja} to true
                       send "&a[&9B&6T&cH&a] &cVous êtes déjà dans cette équipe !" to player
                       exit loop
           else if {_bthequipebleudeja} is false:
               loop {bthequiperougelist::*}:
                   if loop-value is "%player%":
                       if {bthequipebleu} <8:
                           set {_bthequipebleudeja} to true
                           remove 1 from {bthequiperouge}
                           remove "%player%" from {bthequiperougelist::*}
                           add 1 to {bthequipebleu}
                           add "%player%" to {bthequipebleulist::*}
                           send "&a[&9B&6T&cH&a] &cVous avez rejoins l'équipe bleu !" to player
                           exit loop
                       else:
                           send "&a[&9B&6T&cH&a] &cL'équipe bleu est complète. Merci de sélectionner l'équipe rouge !" to player
                           exit loop
           else if {_bthequipebleudeja} is false:
               if {bthequipebleu} <8:
                   set {_bthequipebleudeja} to true
                   add 1 to {bthequipebleu}
                   add "%player%" to {bthequipebleulist::*}
                   send "&a[&9B&6T&cH&a] &cVous avez rejoins l'équipe bleu !" to player
               else:
                   send "&a[&9B&6T&cH&a] &cL'équipe bleu est complète. Merci de sélectionner l'équipe rouge !" to player
           wait 1 seconds
           set {_bthequipebleudeja} to false

 

en testant avec des send, je sais que ca bloque juste après le premier else if mais je comprends pas pourquoi.. Sachant que la variable n'est pas sur true puisqu'elle ne passe pas le premier morceau (testé)..

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