Aller au contenu
  • 0

Aide panneau


Question

Posté(e)

Voilà mon problème:

J'aimerais pour mon mini-jeu faire un panneau qui montre le nombre de joueur qui sont en jeux mais je ne sait pas comment le faire.

Voilà le bout de skript pour le panneau.

on click with stick:
   if targeted block is a sign:
       player has permission "game.sign"
       cancel event
       set variable {locationsign} to "%location of clicked block%"
       send "&cLe panneau est en :&b %{locationsign}%"
every 5 seconds:
   set line 1 of block at location {locationsign} to "&7[&6GAME&7]"
   set line 2 of block at location {locationsign} to "&6Il y a"
   set line 3 of block at location {locationsign} to "&6%{game.slots}% joueurs"

Merci d'avoir lu ! Et j'espère avoir une réponse rapide !

18 réponses à cette question

Messages recommandés

  • 0
Posté(e)
Voilà mon problème:

J'aimerais pour mon mini-jeu faire un panneau qui montre le nombre de joueur qui sont en jeux mais je ne sait pas comment le faire.

Voilà le bout de skript pour le panneau.

on click with stick:
   if targeted block is a sign:
       player has permission "game.sign"
       cancel event
       set variable {locationsign} to "%location of clicked block%"
       send "&cLe panneau est en :&b %{locationsign}%"
every 5 seconds:
   set line 1 of block at location {locationsign} to "&7[&6GAME&7]"
   set line 2 of block at location {locationsign} to "&6Il y a"
   set line 3 of block at location {locationsign} to "&6%{game.slots}% joueurs"

Merci d'avoir lu ! Et j'espère avoir une réponse rapide !

Mieux vaut faire ça:

every 5 seconds:
   loop {locationsign}:
       set line 1 of loop-block to "&7[&6GAME&7]"
       set line 2 of loop-block to "&6Il y a"
       set line 3 of loop-block to "&6%{game.slots}% joueurs"

  • 0
Posté(e)

Change {locationsign} par {locationsign::*} ou fait ça:

every 5 seconds:
   if line 1 of {locationsign} to "&7[&6GAME&7]":
       set line 1 of {locationsign} to "&7[&6GAME&7]"
       set line 2 of{locationsign} to "&6Il y a"
       set line 3 of {locationsign} to "&6%{game.slots}% joueurs"

Mais je suis pas sur que ça marche comme ça.

  • 0
Posté(e)
Change {locationsign} par {locationsign::*} ou fait ça:

every 5 seconds:
   if line 1 of {locationsign} to "&7[&6GAME&7]":
       set line 1 of {locationsign} to "&7[&6GAME&7]"
       set line 2 of{locationsign} to "&6Il y a"
       set line 3 of {locationsign} to "&6%{game.slots}% joueurs"

Mais je suis pas sur que ça marche comme ça.

"if line 1 of {locationsign} to "&7[&6GAME&7]":" Ceci ne veut rien dire.

  • 0
Posté(e)

c'est pas

set variable {locationsign} to "%location of clicked block%"

mais

set variable {locationsign} to location of clicked block

 

si tu le met entre "" tu dit d'enregistrer en texte.

  • 0
Posté(e)

Ca ne fonctionne toujours pas :(

Revoilà le code:

on click with stick:
   if targeted block is a sign:
       player has permission "game.sign"
       cancel event
       set variable {locationsign} to location of clicked block
       send "&cLe panneau est en :&b %{locationsign}%"
every 5 seconds:
   loop {locationsign::*}:
       set line 1 of loop-block to "&7[&6GAME&7]"
       set line 2 of loop-block to "&6Il y a"
       set line 3 of loop-block to "&6%{game.slots}% joueurs"

Et voilà l'erreur:

[skript] Reloading game.sk...
There's no loop that matches 'loop-block' (game.sk, line 105: set line 1 of loop-block to "&7[&6GAME&7]"')
There's no loop that matches 'loop-block' (game.sk, line 106: set line 2 of loop-block to "&6Il y a"')
There's no loop that matches 'loop-block' (game.sk, line 107: set line 3 of loop-block to "&6%{game.slots}% joueurs"')
[skript] Encountered 3 errors while reloading game.sk!

  • 0
Posté(e)

Ok je vais regarder !

Et merci de ta réponse très rapide !

 

EDIT:

J'ai regardé son skript mais il ne fait pas ce que je veux faire. Lui il change ce qu'il est écrit dessus quand il clique dessus alors que moi j'aimerais (si c'est possible) le faire refresh toute les 5 secondes et mettre le nombre de joueur comme sur les gros serveurs (Epicube, Hypixel...)

 

RE-EDIT:

J'ai réessayé un autre code:

on click with stick:
   if targeted block is a sign:
       player has permission "game.sign"
       cancel event
       set variable {locationsign} to location of clicked block
       send "&cLe panneau est en :&b %{locationsign}%"
every 1 seconds:
   loop blocks at {locationsign}:
       set first line of loop-block to "&7[&6GAME&7]"
       set second line of loop-block to "&bIl y a"
       set third line of loop-block to "&b%{game.slots}% joueurs"

Maintenant je n'ai plus d'erreur mais il ne fonctionne toujours pas... :(

  • 0
Posté(e)

J'ai oublié que que le loop-value été la location d'un block.

J'ai ajouter ceux qu'il manqué.

every 5 seconds:
   loop {locationsign::*}:
       set line 1 of block at loop-value to "&7[&6GAME&7]"
       set line 2 of block at loop-value to "&6Il y a"
       set line 3 of block at loop-value to "&6%{game.slots}% joueurs"

  • 0
Posté(e)

J'ai peu être trouvé pourquoi ça ne fonctionne pas. Voilà ce que j'ai trouvé sur un forum anglais:

You can only set lines on sign change, not any other time. Hopefully Njol can get this fixed soon!
  • 0
Posté(e)
J'ai oublié que que le loop-value été la location d'un block.

J'ai ajouter ceux qu'il manqué.

every 5 seconds:
   loop {locationsign::*}:
       set line 1 of block at loop-value to "&7[&6GAME&7]"
       set line 2 of block at loop-value to "&6Il y a"
       set line 3 of block at loop-value to "&6%{game.slots}% joueurs"

Avec ca je n'ai pas d'erreur mais rien ne ce passe...

 

EDIT:

Je vais abandonner cette idée de panneau je pense. J'utiliserais un scoreboard à la place...

  • 0
Posté(e)

J'ai fais d'autres modifications:

every 5 seconds:
   console command "/upsign"
command /upsign:
   permission: upsign.admin
   trigger:
       loop {locationsign::*}:
           set line 1 of block at loop-value to "&7[&6GAME&7]"
           set line 2 of block at loop-value to "&6Il y a"
           set line 3 of block at loop-value to "&6%{game.slots}% joueurs"

Sinon faut passer par un loop player location pour déterminer si un joueur est proche d'un panneau avec écrit "&7[&6GAME&7]".

ça peut faire lag ton serveur.

Je te donne tout de même le code, le permettant:

every 10 seconds:
   loop all players:
       loop blocks in radius 10 around loop-player:
           if loop-block is a sign:
               if line 1 of loop-block is "&7[&6GAME&7]":
                   set line 1 of loop-value to "&7[&6GAME&7]"
                   set line 2 of loop-value to "&6Il y a"
                   set line 3 of loop-value to "&6%{game.slots}% joueurs"

  • J'aime 1
  • 0
Posté(e)
J'ai fais d'autres modifications:

every 5 seconds:
   console command "/upsign"
command /upsign:
   permission: upsign.admin
   trigger:
       loop {locationsign::*}:
           set line 1 of block at loop-value to "&7[&6GAME&7]"
           set line 2 of block at loop-value to "&6Il y a"
           set line 3 of block at loop-value to "&6%{game.slots}% joueurs"

Sinon faut passer par un loop player location pour déterminer si un joueur est proche d'un panneau avec écrit "&7[&6GAME&7]".

ça peut faire lag ton serveur.

Je te donne tout de même le code, le permettant:

every 10 seconds:
   loop all players:
       loop blocks in radius 10 around loop-player:
           if loop-block is a sign:
               if line 1 of loop-block is "&7[&6GAME&7]":
                   set line 1 of loop-value to "&7[&6GAME&7]"
                   set line 2 of loop-value to "&6Il y a"
                   set line 3 of loop-value to "&6%{game.slots}% joueurs"

Ta première méthode n'as pas fonctionné. Par contre la deuxième fonctionne parfaitement !

 

MERCI BEAUCOUP !

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