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