Aller au contenu
  • 0

il reste 1 joueur variable


Question

Posté(e)

Bonjour, j'aimerais une aide sur:

Quand un mec join le serveur... sa add 1 sur une variable.

Quand il meurt, sa enleve 1 a cette variable. et quand il reste 1 sur cette variable sa dit:

" le joueur a gagner la partie "

 

c'est 1 mini-jeux bungeecord donc quand il quit le serveur et que le serveur restart sa remet set variable a 0

 

J'ai fais une methode mais elle fonctionne pas:

                if {skywars.nombre} is equal to 1:
                   broadcast "&eSkywars &b> &a%{swjoueurs.list::*}% a gagné la partie de &eSkywars &a!"
                   play raw sound "note.pling" at player with pitch 1 volume 10
                   set {replace.bloc.loc.%player%} to {replace.bloc.%player%}
                   execute console command "/skystop"

 

 

on join:
   if {skywars.whitelist} is true:
       kick the player due to "La partie a déjà commencé ! Revenez plus tard !"
       stop
   wait 3 ticks
   add 1 to {skywars.nombre}
   teleport player to {skywars.lobby}
   add player to {game.joueur::*}

 

 

command /skystop:
   trigger:
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 10 secondes"
       wait 5 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 5 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 4 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 3 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 2 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 1 secondes"
       wait 1 seconds
       bungeecord connect player to "lobby2"
       delete {skywars.whitelist}
       delete {skywars.start}
       delete {lancement.game}
       set {skywars.nombre} to 0

 

EDIT: j'ai comme l'impression que sa n'ajoute pas 1 a la variable

15 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Le plus important n'a pas etait donner pour la verification du nombre de jouejr l'evenement qui s'en occupe est bien un on death of player ???

 

Si c'est le cas et que la suite conviens tu fait simplement:

if {skywars.nombre} = 1:

  • 0
Posté(e)

(Pas testé)

 

on death:
   victim is a player:
       {skywars.nombre} = 1:
           broadcast "&eSkywars &b> &a%{swjoueurs.list::*}% a gagné la partie de &eSkywars &a!"
           play raw sound "note.pling" at player with pitch 1 volume 10
           set {replace.bloc.loc.%player%} to {replace.bloc.%player%}
           execute console command "/skystop"

  • 0
Posté(e)

Je doute très fortement que ca ne détecte pas quand il join mais si tu le pense réellement test la variable mais un send tavariable quand il join

 

Aussi au lieu de te plaindre dans le chat comme quoi personne ne te répond met les bonnes parties de ton code sur tes messages car la on ne sait pas quand / comment un joueurs déco (car je pense surtout que le bug est au niveau du décompte de joueur mort

  • J'aime 1
  • 0
Posté(e)

Au lieu de donner des petits bouts de ton skript, donne en la totalité, sa sera quand même plus simple pour t'aider non ?

 

 

Aussi au lieu de te plaindre dans le chat comme quoi personne ne te répond met les bonnes parties de ton code sur tes messages car la on ne sait pas quand / comment un joueurs déco (car je pense surtout que le bug est au niveau du décompte de joueur mort

+1

  • J'aime 1
  • 0
Posté(e)

Je dit que personne ne m'aide... normal, quand je recherche a faire quelque chose... personne ne me repond pourtant mes trucs sont pas difficile, je ne met pas tout le code car il est loin d'etre fini :) mais je vais quand meme vous donner tous ce que j'ai fais

Options:
   minjoueur: 1

on load:
   set {skywars.start} to false
   set {lancement.game} to false
   set {skywars.whitelist} to false
   set {set.fait} to false
   clear {tt.joueurs::*}

on join:
   if {skywars.whitelist} is true:
       kick the player due to "La partie a déjà commencé ! Revenez plus tard !"
       stop
   wait 3 ticks
   add 1 to {skywars.nombre}
   teleport player to {skywars.lobby}
   add player to {game.joueur::*}





every 1 seconds:
   size of {game.joueur::*} is bigger than {@minjoueur}:
       {lancement.game} is false
       {skystart.start} is false
       {skywars.whitelist} is false
       execute console command "/skystart"
       set {skystart.start} to true
       set {lancement.game} to true
       set {skywars.whitelist} to true

#every 1 seconds:
   #if {lancement.game} is true:
       #size of {game.joueur::*} is bigger than {@minjoueur}:
   #        set {lancement.game} to false


command /auto:
   trigger:
       set {lancement.game} to true

command /skywars <text=help> [<text>]:
   permission: skywars.admin
   trigger:
       if arg 1 is "help":
           message "&e-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
           message "&eSkywars &a> &b/skywars help &e: &7Liste des aides ! "
           message "&eSkywars &a> &b/skywars setlobby &e: &7 setlobby des joueurs"
           message "&eSkywars &a> &b/skywars set numero de l'ile &e: &7 set l'ile des teleportation"
           message "&e-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-=-"
       if arg 1 is "setlobby":
           set {skywars.lobby} to location of player
           message "&eSkywars &a> &bLe point de spawn du lobby a été set en :"
           message "&b%location of player%"
       if arg 1 is "set":
           if arg 2 is "1" or "2" or "3" or "4" or "5" or "6" or "7" or "8" or "9" or "10" or "11" or "12":
               message "&eSkywars &a> &bL'ile n°%arg-2% à été enregistré !"
               play raw sound "note.pling" at player with pitch 1 volume 10
               set {skywarsile.%arg-2%} to location of player
           else:
               message "&eSkywars &a> &bDefinissez que 12 iles !"

command /skystart:
   permission: skystart.admin
   trigger:
       if {lancement.game} is true:
           broadcast "&eSkywars &b> &aLa partie va démarrer dans 1 minute."
           play raw sound "note.pling" at player with pitch 1 volume 10
       else:
           stop
           set {skywars.start} to false
       wait 30 seconds
       if {lancement.game} is true:
           broadcast "&eSkywars &b> &aLa partie va démarrer dans 30 secondes."
           play raw sound "note.pling" at player with pitch 1 volume 10
       else:
           stop
           set {skywars.start} to false
       if {lancement.game} is true:
           broadcast "&eSkywars &b> &aLa partie va démarrer dans 20 secondes."
           play raw sound "note.pling" at player with pitch 1 volume 10
       else:
           stop
           set {skywars.start} to false
       wait 15 seconds
       if {lancement.game} is true:
           broadcast "&eSkywars &b> &aLa partie va démarrer dans 10 secondes."
           play raw sound "note.pling" at player with pitch 1 volume 10
       else:
           stop
           set {skywars.start} to false
       wait 5 seconds
       if {lancement.game} is true:
           broadcast "&eSkywars &b> &aLa partie va démarrer dans 5 secondes."
           play raw sound "note.pling" at player with pitch 1 volume 10
       else:
           stop
           set {skywars.start} to false
       set {_Nombre} to 1
       loop all players:
           teleport loop-player to {skywarsile.%{_Nombre}%}
           add 1 to {_Nombre}
           set {skywars.whitelist} to true
           if {set:fait} isn't set:
               set {set.fait} to true
           if {set.fait} is true:
               broadcast "&eSkywars &b> &aLa partie va démarrer dans 3 secondes."
               play raw sound "note.pling" at player with pitch 1 volume 10
               wait 1 second
               broadcast "&eSkywars &b> &aLa partie va démarrer dans 2 secondes."
               play raw sound "note.pling" at player with pitch 1 volume 10
               wait 1 second
               broadcast "&eSkywars &b> &aLa partie va démarrer dans 1 seconde."
               play raw sound "note.pling" at player with pitch 1 volume 10
               broadcast "&eSkywars &b> &aBonne chance à tous !"
               #set {replace.bloc.%player%} to block under the player
               #set {replace.bloc.loc.%player%} to location of block under the player
               #set block under the player to air
               if {skywars.nombre} = 1:
                   broadcast "&eSkywars &b> &a%{swjoueurs.list::*}% a gagné la partie de &eSkywars &a!"
                   play raw sound "note.pling" at player with pitch 1 volume 10
                   set {replace.bloc.loc.%player%} to {replace.bloc.%player%}
                   execute console command "/skystop"


command /skystop:
   trigger:
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 10 secondes"
       wait 5 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 5 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 4 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 3 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 2 secondes"
       wait 1 seconds
       broadcast "&eSkywars &b> &aLe serveur va s'etteindre dans 1 secondes"
       wait 1 seconds
       bungeecord connect player to "lobby2"
       delete {skywars.whitelist}
       delete {skywars.start}
       delete {lancement.game}
       delete {set.fait}
       set {skywars.nombre} to 0
       wait 1 seconds
       execute console command "/restart"

on death of player:
   loop all players:
       if attacker is a player:
           message "{@logo} &4&l%victim%&c a été tué par &4&l%attacker%&c !" to loop-players
       damage cause is void:
           message "{@logo} &4&l%victim%&c a voulu percer le mystère du néant mais n'est jamais revenu..." to loop-players
       damage cause is a potion:
           message "{@logo} &4&l%victim%&c a été assasiné par ... UNE POTION !!!" to loop-players
       damage cause is a lava:
           message "{@logo} &4&l%victim%&c brûle dans les flammes..." to loop-players
       damage cause is fall:
           message "{@logo} &4&l%victim%&c savait que le monde est trop cruel !" to loop-players
   remove 1 from {skywars.nombre}
   open chest with 6 rows named "&eSkywars &b&l» &aJoueurs en jeu" to player
   wait 1 tick
   set {_slot} to 0
   loop all players:
       format slot {_slot} of player with loop-player's skull named "%loop-player%" to close then run [make player execute command "/swspec tp %loop-player%"]
       add 1 to {_slot}

 

Ah oui, et si vous pouviez m'aider sur comment detecter si il y a asser de joueur, sa execute une commande parceque chez moi sa marche pas mon

 

every 1 seconds:
   size of {game.joueur::*} is bigger than {@minjoueur}:
       {lancement.game} is false
       {skystart.start} is false
       {skywars.whitelist} is false
       execute console command "/skystart"
       set {skystart.start} to true
       set {lancement.game} to true
       set {skywars.whitelist} to true

  • 0
Posté(e)

Ca sent le gros copier coller le every 1 second et j'ai pas trop le temps d'y repondre:

Je réexplique vite fait mon precedent msg:

on death of player:
   loop all players:
       if attacker is a player:
           message "{@logo} &4&l%victim%&c a été tué par &4&l%attacker%&c !" to loop-players
       damage cause is void:
           message "{@logo} &4&l%victim%&c a voulu percer le mystère du néant mais n'est jamais revenu..." to loop-players
       damage cause is a potion:
           message "{@logo} &4&l%victim%&c a été assasiné par ... UNE POTION !!!" to loop-players
       damage cause is a lava:
           message "{@logo} &4&l%victim%&c brûle dans les flammes..." to loop-players
       damage cause is fall:
           message "{@logo} &4&l%victim%&c savait que le monde est trop cruel !" to loop-players
   remove 1 from {skywars.nombre}

   broadcast "%{skywars.nombre}%"   # Comme ca on vera si il y a bien plus qu' 1 joueur.

   open chest with 6 rows named "&eSkywars &b&l» &aJoueurs en jeu" to player
   wait 1 tick
   set {_slot} to 0
   loop all players:
       format slot {_slot} of player with loop-player's skull named "%loop-player%" to close then run [make player execute command "/swspec tp %loop-player%"]
       add 1 to {_slot}

  • 0
Posté(e)

Ok, non le every 1 second n'est pas un copier coller mais une aide qu'une personne m'a donné et le soucis c'est {game.joueur::*} je sais pas ou le mettre pour que dans 1 personne se connect sa ajoute 1 et quand il meurt sa remove 1... enfin mon but c'est de faire lancer la commande /skystart

  • 0
Posté(e)

Oula, je crois avoir compris l'erreur xD

Je pense quand je savais pas comment enlever sa faisais que rajouter du coup quand je kill, sa remove que un mais pas ceux d'avant du coup je suis a 7 dans la variable. merci je passe en résolu ( j'ai juste a set a 0 maintenant :)

 

EDIT: a non et pour mon every 1 seconds ?

  • 0
Posté(e)

Ah non sa ne marche pas... quand il reste bien 1 dans la skywars.nombre ( d'apres le msg ) et bien cela ne dit pas ( le joueur a gagner la partie et sa n'execute pas la commande de /skystop

  • 0
Posté(e)

normale je t'ai juste dit de faire un test je ne t'ai pas donné la solution:

 

la où j'ai mis le broadcast tu peut ainsi mettre en dessous :

if tavariable = 1:
   make attacker execute commande "/skystop"

  • J'aime 1
×
×
  • 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.