Aller au contenu
  • 0

EnderPearl - Name with cooldown


Question

Posté(e)

Salut !

 

Je suis entrain de bosser sur mon serveur, et j'aurais besoin d'aide.

J'ai fais un cooldown avec les enderpearls, avec la barre d'xp qui change selon le temps restant avant de pouvoir l'utiliser, mais j'aimerais rajouter un truc.

Lorsque le joueur lance l'enderpearl, toutes les enderpearls qu'il possède se renomme en quelque chose.

 

Seul problème, c'est que si le joueur switch sur son épée par exemple, ce n'est pas les enderpearls qui vont être renommées, mais son épée.

 

[spoiler=Code]

on rightclick with a ender pearl:

if player's gamemode isn't creative:

set {_wait} to difference between {enderpearl.%player%.lastused} and now

if {_wait} is less than 16 seconds:

cancel the event

else:

set {enderpearl.%player%.lastused} to now

set the player's level to 16

set name of all ender pearl to "&bEnderpearl - &c16 secondes"

wait 1 second

set the player's level to 15

set name of all ender pearl to "&bEnderpearl - &c15 secondes"

wait 1 second

set the player's level to 14

set name of all ender pearl to "&bEnderpearl - &c14 secondes"

wait 1 second

set the player's level to 13

set name of all ender pearl to "&bEnderpearl - &c13 secondes"

wait 1 second

set the player's level to 12

set name of all ender pearl to "&bEnderpearl - &c12 secondes"

wait 1 second

set the player's level to 11

set name of all ender pearl to "&bEnderpearl - &c11 secondes"

wait 1 second

set the player's level to 10

set name of all ender pearl to "&bEnderpearl - &c10 secondes"

wait 1 second

set the player's level to 9

set name of all ender pearl to "&bEnderpearl - &c9 secondes"

wait 1 second

set the player's level to 8

set name of all ender pearl to "&bEnderpearl - &c8 secondes"

wait 1 second

set the player's level to 7

set name of all ender pearl to "&bEnderpearl - &c7 secondes"

wait 1 second

set the player's level to 6

set name of all ender pearl to "&bEnderpearl - &c6 secondes"

wait 1 second

set the player's level to 5

set name of all ender pearl to "&bEnderpearl - &c5 secondes"

wait 1 second

set the player's level to 4

set name of all ender pearl to "&bEnderpearl - &c4 secondes"

wait 1 second

set the player's level to 3

set name of all ender pearl to "&bEnderpearl - &c3 secondes"

wait 1 second

set the player's level to 2

set name of all ender pearl to "&bEnderpearl - &c2 secondes"

wait 1 second

set the player's level to 1

set name of all ender pearl to "&bEnderpearl - &c1 seconde"

wait 1 second

set the player's level to 0

set name of all ender pearl to "&fEnder Pearl"

 

 

 

Merci d'avance de votre aide !

6 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Pti truc pour opti ton code:

 

set {_decompte} to 16
loop 16 times:
set the player's level to {_decompte}
remove 1 from {_decompte}
loop player's inventory:
... je continu demain j'ai plus qu'1 % de batterie
set name of all ender pearl to "&bEnderpearl - &c{_decompte} secondes"
wait 1 second

  • 0
Posté(e)

Ca n'a pas de rapport avec ta demande mais, si le joueur a 10 niveaux et qu'il lance une enderpearl, à la fin il a du coup 0 niveaux ? Ou bien son level d'xp est save puis set après ?

  • 0
Posté(e)
Ca n'a pas de rapport avec ta demande mais, si le joueur a 10 niveaux et qu'il lance une enderpearl, à la fin il a du coup 0 niveaux ? Ou bien son level d'xp est save puis set après ?

set {levelbackup.%player%} to level of player

 

Puis une fois le cooldown de l'enderpearl fini

set level of player to {levelbackup.%player%}

 

J'ai optimisé le code et trouver une parade si il change d'item ;)

on rightclick with a ender pearl:
   if player's gamemode isn't creative:
       set {_wait} to difference between {enderpearl.%player%.lastused} and now
           if {_wait} is less than 16 seconds:
               cancel the event
           else:
               set {enderpearl.%player%.lastused} to now
               set {levelbackup.%player%} to level of player
               set {_timer} to 16
               loop 15 times:
                   set the player's level to {_timer}
                   if player is holding a enderpearl:
                       set name of all ender pearl to "&bEnderpearl - &c%{_timer}% secondes"
                   remove 1 from {_timer}
               set level of player to 0
               if player is holding a enderpearl:
                   set name of all ender pearl to "&fEnder Pearl"
               wait 5 ticks
               set level of player to {levelbackup.%player%}

  • 0
Posté(e)

juste 2 truc sur ton code :

- Il manque un wait 1 seconds sinon ton timer sert a rien (la, il t'affiche que tu peut enchainer tout d'affilé)

- Le probleme du rename est résolu mais pas du changement d'item, car si tu change le timer ne se fera plus sur l'ender pearl.

 

Je me permet vite fait de le corriger:

on rightclick with an ender pearl:
   if player's gamemode isn't creative:
       set {_wait} to difference between {enderpearl.%player%.lastused} and now
           if {_wait} is less than 16 seconds:
               cancel event
               stop
           else:
               set {enderpearl.%player%.lastused} to now
               set {levelbackup.%player%} to level of player
               set {_timer} to 16
               loop 15 times:
                   set the player's level to {_timer}
                   loop all items in player's inventory:
                       if loop-item is an ender pearl:
                           set the name of the loop-item to "&bEnderpearl - &c%{_timer}% secondes"
                   wait 1 second
                   remove 1 from {_timer}
               loop all items in player's inventory:
                   if loop-item is an ender pearl:
                       set the name of the loop-item to "&fEnderpearl"
               set level of player to 0
               wait 5 ticks
               set level of player to {levelbackup.%player%}

  • J'aime 1
  • 0
Posté(e)
juste 2 truc sur ton code :

- Il manque un wait 1 seconds sinon ton timer sert a rien (la, il t'affiche que tu peut enchainer tout d'affilé)

- Le probleme du rename est résolu mais pas du changement d'item, car si tu change le timer ne se fera plus sur l'ender pearl.

 

Je me permet vite fait de le corriger:

on rightclick with an ender pearl:
   if player's gamemode isn't creative:
       set {_wait} to difference between {enderpearl.%player%.lastused} and now
           if {_wait} is less than 16 seconds:
               cancel event
               stop
           else:
               set {enderpearl.%player%.lastused} to now
               set {levelbackup.%player%} to level of player
               set {_timer} to 16
               loop 15 times:
                   set the player's level to {_timer}
                   loop all items in player's inventory:
                       if loop-item is an ender pearl:
                           set the name of the loop-item to "&bEnderpearl - &c%{_timer}% secondes"
                   wait 1 second
                   remove 1 from {_timer}
               loop all items in player's inventory:
                   if loop-item is an ender pearl:
                       set the name of the loop-item to "&fEnderpearl"
               set level of player to 0
               wait 5 ticks
               set level of player to {levelbackup.%player%}

OUh làlà oui, sa aurait pas bien fonctionner sans le "wait 1 seconds" ^^

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