Aller au contenu
  • 0

Erreurs script de duels


Question

Posté(e)

Bonjour/Bonsoir ^^

 

Je suis un Skripter débutant (j'ai commencé à skripter il y a une semaine) et j'ai quelques problèmes avec un Skript de Duel.

 

Mon idée est de faire en sorte que lorsqu'un joueur fait /pvp join, il rejoint une file d'attente qui peut contenir maximum 2 personnes (c'est un duel)

 

Une fois que la file d'attente est pleine (2/2) les deux joueurs sont téléportés à leurs positions respectives, {pvp.pos1} pour le premier joueur, {pvp.pos2} pour le second.

Ensuite le combat sera lancé, et dès qu'un joueur sera tué, le combat se terminera et le gagnant sera TP en {pvp.exit}

 

Pour l'instant j'ai créé:

- la commande qui permet de set les positions (/setpoint 1, 2 ou exit)

- la file d'attente

- la commande /pvp quit qui permet de quitter la file d'attente

 

Mon problème est que je n'arrive pas à téléporter chaque joueur à deux points différents, et mon skript a plusieurs autres défaults que je ne saurais expliquer ...

 

J'ai appris à un peu skripter en fouillant sur Internet, soyez indulgents si vous trouvez des erreurs de débutant mdr ;)

 

Mon code:

 

variables:
   {pvp.slots} = 0 #(entre 1 et 2) Indique le nombre de joueurs dans le jeu


command /setpoint <text>:
   aliases: /sp
   trigger:
       if arg 1 is "1":
           set {pvp.pos1} to the player's position
           send "&aPosition &b&l1 &acreee"
           stop
       if arg 1 is "2":
           set {pvp.pos2} to the player's position
           send "&aPosition &b&l2 &acreee"
           stop
       if arg 1 is "exit":
           set {pvp.exit} to the player's position
           send "&aSortie creee"
           stop
       if arg 1 is not set:
           send "&cUtilisation: &b/setpoint 1,2 ou exit"
           stop


command /pvp <text>:
   trigger:
       if arg 1 is "join":
           if {pvp.slots} is 2:
               send "&cLa file d'attente est pleine"
               stop
           if {pvp.start} is true:
               send "&cLa partie a deja commence"
               stop
           if {pvp.%player%.attente} is true:
               send "&cTu es deja dans la file d'attente"
           add 1 to {pvp.slots}
           wait 1 tick
           wait 1 tick
           set {pvp.%player%.attente} to true
           set {pvp.%player%.slot} to a random number between 1 and 2
           broadcast "&b%player% &arejoins la file d'attente &b(%{pvp.slots}%/2)"             
           if {pvp.slots} is 2:
               set {pvp.%player%.attente} to false
               set {pvp.start} to true
               set {pvp.%player%.start} to true
               set {pvp.slots} to 0
               wait 1.5 seconds
               broadcast "&aLe combat va commencer"
               if {pvp.pos1} is set:
                   if {pvp.pos2} is set:
                       if {pvp.%player%.slot} is 1:
                           teleport player to {pvp.pos1}
                       if {pvp.%player%.slot} is 2:
                           teleport player to {pvp.pos2}
               else:
                   broadcast "&cPosition &b1 &cn'a pas ete creee"
               wait 5 seconds
               set {pvp.start} to false
               wait 1 tick
               if {pvp.%player%.start} is true:
                   teleport player to {pvp.exit}
               set {pvp.%player%.start} to false
               set {pvp.%player%.attente} to false
               send "&cFin du test."
               wait 1 tick
               stop
       if arg 1 is "quit":
           if {pvp.%player%.attente} is true:
               remove 1 from {pvp.slots}
               set {pvp.%player%.attente} to false
               broadcast "&b%player% &cquitte la file d'attente &b(%{pvp.slots}%/2)"
               stop
           if {pvp.start} is true:
               send "&cTu ne peux pas quitter pendant le combat!"
               stop
       if arg 1 is "reset":
           set {pvp.%player%.attente} to false
           set {pvp.start} to false
           set {pvp.%player%.start} to false
           set {pvp.slots} to 0
           stop
       if arg 1 is not "join" or "quit":
           send "&aUtilisation de la commande: &b/pvp join ou /pvp quit"


on disconnect:
   loop all players:
       if {pvp.%player%.attente} is true:
           remove 1 from {pvp.slots}
           set {pvp.%player%.attente} to false
           broadcast "&b%player% &cquitte la file d'attente &b(%{pvp.slots}%/2)"
           stop
       if {pvp.%player%.start} is true:
           if {pvp.%player%.slot} is 1:
               set {pvp.start} to false
               broadcast "&b%player% &cs'est deconnecte. Fin du combat."

 

Merci d'avance pour votre aide :D

0 réponse à cette question

Messages recommandés

Il n’y a pas encore eu de réponse à cette question

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