Aller au contenu
  • 0

Variable en fonction des blocks


Question

Posté(e)

Bonsoir a tous

 

Je suis en train de dev un skript pour un mini jeu qui consiste a pousser des gens dans des trous et en dessous ya des block (redstone block)

quand un joueur est donc expulser qui a été knockback dans un trou, j'ai fait en sorte de mettre des blocks de redstone, dès quil tombe dessus ils sont retp a leurs spawn d'équipe je voudrai savoir si pour la variable {_Red}, des que la team de cette variable touche le block redstone lamp au bout de 50 fois l'équipe avec la variable {_Blue} gagne la partie

 

Et je n'arrive pas a reset ma variable {_Red} et {_Blue}

Voici mon code au cas ou ;)

options:
   mp: BloodKick
   mj: &8[&aBlood&cKick&8]
   ps: 2
   pm: 8
   bg: bedrock
command /stl [<text>] [<text>]:
   trigger:
       if arg 1 is "setlobby":
           if player is op:
               set {lobby.mj} to location of player
               send "{@mj} &7Tu as set le lobby"
       if arg 1 is "setspawn":
           if player is op:
               set {spawn.mj} to location of player
               send "{@mj} &7Tu as set le spawn"
       if arg 1 is "SpawnRouge":
           if player is op:
               set {SpawnRed} to location of player
               send "{@mj} &7Tu as set le Spawn Camp Rouge"
       if arg 1 is "SpawnBleu":
           if player is op:
               set {SpawnBlue} to location of player
               send "{@mj} &7Tu as set le Spawn Camp Bleu"
       if arg 1 is "join":
           if {mj.%player%} is "Dedans":
               set {_listPlayer::*} to player
               send "{@mj} &7Tu es déjà dans le mini jeux {@mp}"
               if {st} is true:
                   send "{@mj}&4Tu ne peux pas rejoindre, partie lancée"
               stop
           else:
               send "&6Choisi ton équipe &b/stl bleu &6ou &c/stl rouge"
               add player to {mj.list::*}
               set {mj.%player%} to "Dedans"
               teleport player to {lobby.mj}
               add 1 to {mj.n}
               wait 1 second
               send "{@mj} &7Tu as rejoins le mini jeux!"
               send "{@mj} &7Joueurs connectés &a%{mj.n}%&8/{@pm}"
       if arg 1 is "rouge":
           set {_player} to {_Red}
           send "{@mj}&cTu as rejoins l'équipe Rouge"
       if arg 1 is "bleu":
           set {_player} to {_Blue}
           send "{@mj}&bTu as rejoins l'équipe Bleu"
       if arg 1 is "leave":
           if {mj.%player%} is "Dedans":
               remove player from {_listPlyer::*}
               remove player from {mj.list::*}
               remove {_player} from {_listPlyer::*}
               clear {mj.%player%}
               teleport player to {hub.ht}
               remove 1 from {mj.n}
               wait 1 second
               send "{@mj} &7Tu as quitté le mini jeux!"

       if arg 1 is "list":
           send "{@mj} &7Joueurs connectés: &a%{mj.n}%"
       if arg 1 is "forcestart":
           if player is op:
               loop all players:
                   if {mj.%loop-player%} is "Dedans":
                       teleport loop-player to {spawn.mj}
                       set {pasb} to true
               broadcast "{@mj} &7Le mini jeux commence dans &65 &7secondes!"
               wait 1 second
               broadcast "{@mj} &7Le mini jeux commence dans &64 &7secondes!"
               wait 1 second
               broadcast "{@mj} &7Le mini jeux commence dans &63 &7secondes!"
               wait 1 second
               broadcast "{@mj} &7Le mini jeux commence dans &62 &7secondes!"
               wait 1 second
               broadcast "{@mj} &7Le mini jeux commence dans &c1 &7seconde!"
               wait 1 second
               set {pasb} to false
               loop all players:
                   if loop-player is in {_Red}:
                       teleport player to {SpawnRed}
                   else:
                       teleport player to {SpawnBlue}
               broadcast "{@mj} &7Le mini jeux commence!"
               broadcast "{@mj} &6&lBonne chance a tous!"
               set {st} to true
               set {stb} to true
               set {str} to true
       if arg 1 is "addsign":
           if player is op:
               add targeted block to {signs::*}
               send "{@mj} &7Tu as ajouter ce panneau dans la liste des panneaux"
       if arg 1 is "leavesign":
           if player is op:
               add targeted block to {leavesigns::*}
               send "{@mj} &7Tu as ajouter ce panneau dans la liste des panneaux"
       if arg 1 is "stop":
           if player is op:
               set {st} to false
               delete {_Red}
               delete {_Blue}
               send "{@mj}&cLa partie est arreter"
               teleport player to {lobby.mj}
command /rrg:
   trigger:
       clear {_Red}
       clear {_Blue}
       send "variable reset"
on step on bedrock:
   if {st} is true:
       loop all players:
           if loop-player is in {_Red}:
               teleport player to {SpawnRed}
               add 1 to {_Blue}
           else:
               teleport player to {SpawnBlue}
               add 1 to {_Red}
           if {_Blue} is more than 2:
               broadcast "{@mj}&bL'équipe Bleu a remporte la partie !"
               execute console command "stl stop"
           if {_Red} is more than 2:
               broadcast "{@mj}&cL'équipe Rouge a remporte la partie !"
               make console execute command "stl stop"

Cordialement

2 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Salutations !

 

Pour reset tes variables, soit tu les remet à zéro, soit tu les supprime !

set {red} to 0
delete {red}
clear {red}

delete ou clear font la même chose.

 

Je n'ai pas compris tout ton jeu, mais tu as des blocs rouges qui envoient l'équipe bleu à la ramasse, et des blocs bleus qui envoient l'équipe rouge à la ramasse ?

Le plus simple, ce serait de faire comme avant tes commandes, tu te met à l'emplacement d'un bloc, et au lieu de set une variable, tu set une liste. Il te faudra ton deux commandes, une pour les bleus et une pour les rouges.

Par exemple :

add %location of player% to {blue.blocklist::*}
add %location of player% to {red.blocklist::*}

Pour optimiser ton code et éviter de vérifier sans arrêt toutes les locations de tes varaibles afin de savoir si un joueur est sur un bloc. Je rajouterais des pressure plates sur les blocs et j'utiliserais l'évènement "On pressure plate". Ensuite tu loop chaque variable en vérifiant si la position du joueur sur la pressure plate = la position d'une variable.

Si ça dis oui, il faut vérifier que le joueur soit dans la bonne équipe. Et si ça dis oui, tu le tp où tu veux. Donc dans un cas vers le spawn bleu, et dans l'autre, le spawn rouge !

 

Il y a des tas de façons différentes de réaliser ce que tu veux, mais en voici une !

Bon courage !

  • 0
Posté(e)

Merci a toi @Goetheus de m'avoir répondu, mon skript est assez compliquer je m'y pert parfois, serai tu en possibilité de venir sur un Teamspeak pour en parler et trouver la solution pour que je la publie ici et enfin résoudre ce pb :)

 

j'ai un autre pb jarrive pas a distinguer ma team rouge de ma team bleu

Comment faire ?

 

cordiamement

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