Aller au contenu
  • 0

Panneau téléportation mini-jeux.


Question

Posté(e)

Salut je suis actuellement en train de développer un serveur mini-jeux 1.9 et j'ai donc besoin de panneaux de téléportation très opérationnels avec le nombre de joueurs en temps réels. Je me suis donc inspiré du skript SkyWars de besuper. Mais je ne sait pas pour quoi cela ne marche pas. Lors du reload aucune erreur n'est détecté. En fait le nombre de joueurs reste bloqué à "none" alors qu'il devrait augmenter et cela me met que la partie à déjà commencé alors qu'elle n'est pas pleine!

(pour les flemmard, le problème devrait venir de la partie commande! :p)

Voici le skript: (je précise c'est pour un mini-jeux laser games d'ou la commande /lg)

 

                    #===============================#
                   #        Skript LaserGames        #
                   #===============================#

options:        #Les différentes options du jeu:
   logo: &7[&4LaserGames&7]
   nommap: DarkRoom
   jmax: 12

                   #-------------------------------------------------#
                   #                    Panneaux                     #
                   #-------------------------------------------------#
on rightclick on a sign:
   if line 1 is "[LaserGames]":
       if line 2 is "{@nommap}":
           set line 1 to "{@logo}"
           set line 2 to "&6{@nommap}"
           set line 3 to "&f%{lg.joueurs}%/{@jmax}"
           if {lg.start} is true:
               set line 4 to "&cEn cours."
           if {lg.start} is false:
               set line 4 to "&cAttente."
on rightclick on a sign:
   if line 1 is "{@logo}":
       if line 2 is "&6{@nommap}":
           make player execute command "/lg join"
           set line 1 to "{@logo}"
           set line 2 to "&6{@nommap}"
           set line 3 to "&f%{lg.joueurs}%/{@jmax}"
           if {lg.start} is true:
               set line 4 to "&cEn cours."
           if {lg.start} is false:
               set line 4 to "&cAttente."

on first join:
   set {lg.%player%.start} to false
command /testlg:
   trigger:
       set {lg.%player%.start} to false


           #|-------------------------------------------------|#
           #|                   Commande                      |
           #|-------------------------------------------------|#

command /lg [<text>] [<text>] [<text>]:
   trigger:
       if arg 1 is not set:
           if player has permission "lg.help":
               send "&a================================================="
               send "&6Commande /lg join &f(Rejoinre.)"
               send "&a================================================="
           else:
               send "{@logo} &cVous n'avez pas la permission !"
       if arg 1 is "join":
           if player has permission "lg.join":
               if {lg.start} is false:
                   if {lg.%player%.start} is false:
                       set {lg.%player%.start} to true
                       add player to {lg.joueurs.list::*}
                       add 1 to {lg.joueurs}
                       clear player's inventory
                       teleport player to player
                       broadcast "{@logo} &a%player% a rejoint la partie &7(&f%{lg.joueurs}%/{@jmax}&7)" in "DarkRoom"
                       if {lg.joueurs} is equal to {@jmax}:
                           make console execute command "/say start"
                   else:
                       send "{@logo} &cVous avez déjà rejoint la partie !"
               else:
                   send "{@logo} &cLa partie est déjà en cours !"
           else:
               send "{@logo} &cVous n'avez pas la permission !"

 

Voila j’espère que vous pourrez m'aider!

Messages recommandés

  • 0
Posté(e)

Ok je me suis servi de ton script en gardant ton "signlocation" et en gros toutes les secondes ça set la ligne de ce panneau mais la le seul probleme c'est que lorsque j'utilise la commande /lg leave, cela me retire 2 joueurs au panneau! (donc pas exemple de 1 je passe a -1)

Pour rappel:

        if arg 1 is "leave":
           if player has permission "lg.leave":
               if {lg.%player%.start} is true:
                   remove player from {lg.joueurs.list::*}
                   remove 1 from {lg.joueurs}
                   set {lg.%player%.start} to false
                   teleport player to spawn
                   broadcast "{@logo} &6%player%&a à quitter la partie. &7(&f%{skywars.joueurs}%/{@jmax}&7)"
               if {lg.%player%.start} is false:
                   remove player from {lg.joueurs.list::*}
                   remove 1 from {lg.joueurs}
                   set {lg.%player%.start} to false
                   teleport player to spawn
                   broadcast "{@logo} &6%player%&a à quitter la partie. &7(&f%{skywars.joueurs}%/{@jmax}&7)"
               else:
                   send "{@logo} &cVous devez être en jeux pour quitter."
           else:
               send "{@logo} &cVous n'avez pas la permission !"

On y est presque, merci à tous et en éspèrent enfin réussir!

  • 0
Posté(e)

Essaye:

options:
   logo: &7[&9LaserGame&7]
   nomap: DarkRoom
   jmax: 12

aliases:
   leaveitem = 331

command /setsign:
   permission: lg.setsign
   trigger:
       if the targeted block is an sign:
           set {lasergame.sign} to location of targeted block
           set line 1 of block at {lasergame.sign} to "{@logo}"
           set line 2 of block at {lasergame.sign} to "&2{@nomap}"
           if {lg.joueurs} is not set:
               set {lg.joueurs} to 0
           set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
           if {lg.status} is not set:
               set {lg.status} to "&cAttente."
           set line 4 of block at {lasergame.sign} to "%{lg.status}%"
       else:
           message "{@logo} &cLe block que vous pointez doit être un paneau!"

command /setlocation <text>:
   permission: lg.setspawn
   trigger:
       if arg 1 is "lobby":
           set {lg.lobbylocation} to location of player
       if arg 1 is "game":
           set {lg.gamelocation} to location of player

on join:
   set {lg.joueur.status.%player%} to false

on rightclick on sign:
   if event-location is {lasergame.sign}:
       if {lg.joueur.status.%player%} is false:
           if {lg.status} is "&cAttente.":
               set the current hotbar slot of player to 0
               add 1 to {lg.joueurs}
               add player to {lg.players::*}
               set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
               set {lg.joueur.status.%player%} to true
               loop items in player's inventory:
                   add loop-item to {lg.joueur.lastinventory.%player%::*}
               clear player's inventory
               give a leaveitem named "&cQuitter la partie" to slot 8 of player's inventory
               teleport player to {lg.gamelocation}
           else:
               message "{@logo} &cLa partie a déjà démarré, veillez attendre quelle se termine."
       else:
           message "{@logo} &cVous êtes déjà dans la partie!"

command /lg <text>:
   trigger:
       if arg 1 is "leave":
           if {lg.joueur.status.%player%} is true:
               remove 1 from {lg.joueurs}
               loop all players in {lg.players::*}:
                   message "{@logo} &e&o%player% &aa quitté la partie &6%{lg.joueurs}%&4/&6{@jmax}" to loop-player
               remove player from {lg.players::*}
               clear {lg.joueur.lastlocation.%player%}
               clear player's inventory
               set {lg.joueur.status.%player%} to false
               set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
               set the current hotbar slot of player to 0
               teleport player to {lg.lobbylocation}

command /reset:
   trigger:
       clear {lg.players::*}
       clear {lg.joueurs}

on rightclick with leaveitem:
   make player execute command "/lg leave"

/setlocation lobby

/setlocation game

/setsign

Essaye, avec moi ça marche!

 

Dis moi si ça marche

  • 0
Posté(e)

Essaye avec ça:

options:
   logo: &7[&9LaserGame&7]
   nomap: DarkRoom
   jmax: 12
   WaitingStatus: &cAttente.

aliases:
   leaveitem = 331

command /setsign:
   permission: lg.setsign
   trigger:
       if the targeted block is an sign:
           set {lasergame.sign} to location of targeted block
           set line 1 of block at {lasergame.sign} to "{@logo}"
           set line 2 of block at {lasergame.sign} to "&2{@nomap}"
           if {lg.joueurs} is not set:
               set {lg.joueurs} to 0
           set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
           if {lg.status} is not set:
               set {lg.status} to "{@WaitingStatus}"
           set line 4 of block at {lasergame.sign} to "%{lg.status}%"
       else:
           message "{@logo} &cLe block que vous pointez doit être un paneau!"

command /setlocation <text>:
   permission: lg.setspawn
   trigger:
       if arg 1 is "lobby":
           set {lg.lobbylocation} to location of player
       if arg 1 is "game":
           set {lg.gamelocation} to location of player

on join:
   set {lg.joueur.status.%player%} to false

on rightclick on sign:
   if event-location is {lasergame.sign}:
       if {lg.joueur.status.%player%} is false:
           if {lg.status} is "{@WaitingStatus}":
               set the current hotbar slot of player to 0
               add 1 to {lg.joueurs}
               add player to {lg.players::*}
               set block at {lasergame.sign} to air
               wait 1 tick
               set block at {lasergame.sign} to sign
               set line 1 of block at {lasergame.sign} to "{@logo}"
               set line 1 of block at {lasergame.sign} to "&2{@nomap}"
               set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
               set line 4 of block at {lasergame.sign} to "%{lg.status}%"
               set {lg.joueur.status.%player%} to true
               clear player's inventory
               give a leaveitem named "&cQuitter la partie" to slot 8 of player's inventory
               teleport player to {lg.gamelocation}
           else:
               message "{@logo} &cLa partie a déjà démarré, veillez attendre quelle se termine."
       else:
           message "{@logo} &cVous êtes déjà dans la partie!"

command /lg <text>:
   trigger:
       if arg 1 is "leave":
           if {lg.joueur.status.%player%} is true:
               remove 1 from {lg.joueurs}
               loop all players in {lg.players::*}:
                   message "{@logo} &e&o%player% &aa quitté la partie &6%{lg.joueurs}%&4/&6{@jmax}" to loop-player
               remove player from {lg.players::*}
               clear {lg.joueur.lastlocation.%player%}
               clear player's inventory
               set {lg.joueur.status.%player%} to false
               set block at {lasergame.sign} to air
               wait 1 tick
               set block at {lasergame.sign} to sign
               set line 1 of block at {lasergame.sign} to "{@logo}"
               set line 1 of block at {lasergame.sign} to "&2{@nomap}"
               set line 3 of block at {lasergame.sign} to "&6%{lg.joueurs}%&4/&6{@jmax}"
               set line 4 of block at {lasergame.sign} to "%{lg.status}%"
               set the current hotbar slot of player to 0
               teleport player to {lg.lobbylocation}

command /reset:
   trigger:
       clear {lg.players::*}
       clear {lg.joueurs}

on rightclick with leaveitem:
   make player execute command "/lg leave"

command /clear:
   trigger:
       loop 200 times:
           message ""

 

Dit moi si ça marche!

 

PS: La pancarte doit être posé comme ça:

1463393717-2016-05-16-12-12-30.png

 

Un j'aime fait toujours plaisir
  • J'aime 2
  • 0
Posté(e)
De rien!

 

Pense à passer le topic en résolu!

 

Ouai enfin finalement j'ai une dernière question. (encore et toujours) je voudrais que toutes les 20 secondes, les joueurs dans le monde LaserGames voient les scores {lg.score.vert} et {lg.score.rouge}. J'avait pensé à ça mais ça le fait dans tout les mondes...

 

Every 20 seconds in "LaserGames":
   broadcast "{@logo} &2Score des verts = %{lg.score.vert}%"
   broadcast "{@logo} &4Score des rouges = %{lg.score.rouge}%"

  • 0
Posté(e)

voilà:

Every 20 seconds:
   loop all players in "LaserGames":
           message "{@logo} &2Score des verts = %{lg.score.vert}%" to loop-player
           message "{@logo} &4Score des rouges = %{lg.score.rouge}%" to loop-player

 

Un j'aime fait toujours plaisir...
  • J'aime 1
  • 0
Posté(e)
voilà:

Every 20 seconds:
   loop all players in "LaserGames":
           message "{@logo} &2Score des verts = %{lg.score.vert}%" to loop-player
           message "{@logo} &4Score des rouges = %{lg.score.rouge}%" to loop-player

Ca marche!Merci beaucoup à toi! Serait-il possible d'avoir ton Skype, ts ou steam si à l'avenir j'ai encore besoin d'aide?

Mon skype: trevili145

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