Aller au contenu
  • 0

Max players sign : mettre a jour/reload un panneau [Contient une variables]


Question

Posté(e)

Bonjour à tous !

 

Je me tourne vers skript-mc car vous vous en doutez..j'ai un problème.

 

Donc sur ce : c'est parti !

 

Synopsis : Hier en cours j'ai eu une illumination (non Dieu ne m'est pas apparu et oui j'écoute quand même les profs ^^) de créer un mini-jeux comme tant d'autres. Pour cela j'ai créer un panneau pour join avec ces lignes-ci.

 

on sign change:
   if line 1 is "$6$nAttacker 1":
       set {attacker.sign.1} to "attackersign1"
       set line 2 of block to "$nJoin"
       set line 3 of block to "&2&n %{attacker.play1}%/20"
set line 4 of block to "In queue"
       if {attacker.play1} is 20:
           wait a second
           set line 3 of block to "&c %{attacker.play1}%/20"
           set line 4 of block to "&4 Complete"

 

Il y a aussi :

on rightclick on sign:
   if line 1 of block is "&6&nAttacker 1":
       make player execute command "/attack play1"
       wait a second
       set line 3 of block to "&2&n %{attacker.play1}%/20"
       set line 4 of block to "In queue"
       if {attacker.play1} is 20: 
           wait 1 second
           set line 3 of block to "&c&n %{attacker.play1}%/20"
           set line 4 of block to "&4 Complete"

 

Et cela me donne ceci qui fonctionne :

<a href=http://image.noelshack.com/minis/2016/01/1452342932-2016-01-09-13-35-55.png' alt='1452342932-2016-01-09-13-35-55.png'> 1452342846-2016-01-09-13-32-58.png

 

Et puis quand on atteint 20 personnes cela donne ceci :

1452342932-2016-01-09-13-35-55.png

 

Mais ce que je voudrais et que je n'arrive pas a faire c'est que quand un joueur quitte la file d'attente le panneau se remet en vert mais cela ne marche pas. J'ai utilisé ce code pour loop le panneau et la variable mais rien ne se passe :

 

every 1 second:
   loop blocks in {__global__}:
       if loop-block is a sign:
           if line 1 of loop-block is "$6$nAttacker 1":
               wait 1 second
               set line 3 of loop-block to "&2&n %{attacker.play1}%/20"
               set line 4 of loop-block to "In queue"
               if {attacker.play1} is 20:
                   wait 2 second
                   set line 3 of loop-block to "&c&n %{attacker.play1}%/20"
                   set line 4 of loop-block to "&4 Complete"

 

Il faut savoir que je voudrais faire un mur avec plusieurs panneau dessus chacun ayant un nom différents (attacker 1, attacker 2etc...) Cepandant, quand je reclique sur le panneau il se met a jour et remet la vrai valeur de la variable. Auriez vous une solution à mon problème ?

 

Si il vous manque quelconque information je vous la donnerai. N'hésitez surtout pas à me dire si ce que je dis n'est pas clair car c'est un peu confus en effet ^^

 

En vous remerciant,

 

Cordialement,

 

AlexFatta

14 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Je sais pas si je suis à côté de la plaque:

Mais tu devrais stocker dans une liste tes panneaux (et leur position) et avec ton "every 1 second" actualiser ces panneaux (s'il y a besoin) donc plutôt quand quelqu'un rejoint, quitte tu actualise :D

  • 0
Posté(e)

Merci de t'intéresser au sujet ^^ le problème est que je ne sais pas comment l'actualiser ! Eh oui ! C'est bien pour ca que je suis la xD J'y ai pensés mais google ne trouve rien quand : "plugins skript reload/mettre a jour sign/panneau" J'ai essayé les 4 et devinez quoi ? Eh bien non ! Aucune sujet relativisant mon soucis. xD voilou voilou :)

  • 0
Posté(e)

Okay je pense avoir compris sauf la variable {actuserver} ainsi que sa commande. J'ai pas compris il fallait que je remplace quoi par quoi. Car je ne dois pas copier tout le code si ?

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

Rebonjour à tous ! Cela ne fonctionne pas pour une raison que j'ai identifié. La variable {actuserv::%location of event-block%} ne se met pas en place du tout. Le code de base ne fonctionne pas erreur a la ligne to location of event-block%} il me met que "block" n'est pas un type : "'block' is not a type".

 

Pouvez vous m'aider ? :)

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

Tu dois créer une commande qui te permettra de sauvegarder tous les panneaux:

command /signs <text>:
   trigger:
       if player is op:
           if arg 1 is "add":
               if targeted block is sign:
                   add location of targeted block to {game.signs::*}
                   send "&aLe bloc en %location of targeted block% a été ajouté!"
               else:
                   send "&cVous ne pointez pas un panneau!" to player
           else if arg 1 is "remove":
               if targeted block is sign:
                   add location of targeted block to {game.signs::*}
                   send "&cLe bloc en %location of targeted block% a été retiré!"
               else:
                   send "&cVous ne pointez pas un panneau!" to player

Ensuite tu actualises toutes les secondes avec:

every seconds:
   loop {game.signs::*}:
       if {attacker.play1} is 20:
           set line 3 of block at loop-value to "&c&n %{attacker.play1}%/20"
           set line 4 of block at loop-value to "&4 Complete"
       else:
           set line 3 of block at loop-value to "&2&n %{attacker.play1}%/20"
           set line 4 of block at loop-value to "In queue"

 

Tu as donc /signs add qui permet d'ajouter le panneau que tu pointes dans la liste {game.signs::*} et /signs remove qui permet de le supprimer

 

Si tu as besoin de plusieurs arène, tu peux utiliser ceci:

every seconds:
   loop {game.signs::*}:
       line 1 of block at loop-value is "&6&nAttacker 1"
       add 1 to {_i}
       if {attacker.play%{_i}%} is 20:
           set line 3 of block at loop-value to "&c&n %{attacker.play%{_i}%}%/20"
           set line 4 of block at loop-value to "&4 Complete"
       else:
           set line 3 of block at loop-value to "&c&n %{attacker.play%{_i}%}%/20"
           set line 4 of block at loop-value to "In queue"

  • 0
Posté(e)

Merci à toi j’essaierai ceci demain en faisant juste un copier coller et je modifierai a près si ca roule. Je te tiens au jus :p

 

Cordialement,

 

AlexFatta

 

PS : J'ai pas compris ces lignes tu peux m’expliquer pour que je comprenne ? ^^' "add 1 to {_i}

if {attacker.play%{_i}%} is 20:"

  • 0
Posté(e)

En gros dans la variable {game.sign::*} il y a un nombre x de panneaux. À chaque fois que le plugin testera un panneau, il ajoutera 1 à la variable {_i}. Ainsi vu que tes variables de jeu sont du genre {attacker.play1/2/3/4...}, ce sera relatif au panneau. Imaginons que tu as 3 arènes pour ce jeu, le troisième panneau que tu aura ajouté grâce à la commande aura les joueurs et variables de l'arène 3

  • 0
Posté(e)

Bonjour,

 

Désolé du retard ^^ le plugin n'arrive pas a s'y retrouver avec la variable {_i}. Cela ne fonctionne pas. De plus il me met de suite le 0/20 en rouge o_O, et il ne m'ajoute pas 1 à la variable {attacker.play.X} Auriez vous une solution ? ^^

 

Cordialement,

 

AlexFatta

  • 0
Posté(e)

Okay ! J'ai du nouveau ! Nashoba le skript fonctionne mais uniquement pour un seul panneau (code du milieu). Pour le troisième, il n'y a plus d'erreur mais le panneau clignote en rouge et vert et passe de "Complete" à "In Queue" toutes les secondes xD donc si tu aurai une quelconque solution je suis preneur :p Je vais continuer a chercher de mon côté je vous tient au jus concernant tout ça :)

 

En attendant vos réponses,

 

Cordialement,

 

AlexFatta

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