Healthpower Posté(e) le 19 août 2017 Posté(e) le 19 août 2017 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
Xamez Posté(e) le 20 août 2017 Posté(e) le 20 août 2017 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
Healthpower Posté(e) le 20 août 2017 Auteur Posté(e) le 20 août 2017 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 ?
angelus76 Posté(e) le 20 août 2017 Posté(e) le 20 août 2017 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.
Azer_Flaash Posté(e) le 20 août 2017 Posté(e) le 20 août 2017 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)
Healthpower Posté(e) le 20 août 2017 Auteur Posté(e) le 20 août 2017 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é !
Healthpower Posté(e) le 20 août 2017 Auteur Posté(e) le 20 août 2017 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
Healthpower Posté(e) le 21 août 2017 Auteur Posté(e) le 21 août 2017 @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é)..
Messages recommandés