Faire un effect sous condition

Rednathan

Aventurier
7 Décembre 2015
2
0
2
Bonjour je cherche a donner un effect de jump_boost a plusieurs personnes mais il doivent avoir des bottes dans leur emplacement respectif et avec le nom "Jump Boot"

avec une seul ou plysieurs command*

Merci
 
Salut,

Ce que tu souhaites est possible, mais c'est un peu technique à mettre en place.

Pour résumer, voilà ce qu'on va faire :
  1. On détecte si le joueur possède l'item "leather_boots" nommé jump_boost dans l'emplacement "bottes"
  2. Si l'item est détecté, on utilise un scoreboard "canJump" qu'on met sur 1
  3. on applique l'effet "jump_boost" à tous les joueurs qui ont le score sur 1
  4. on remet le score à 0
  5. ... et on recommence
Tu as tout d'abord besoin de créer le score "canJump" :
Code:
/scoreboard objectives add canJump dummy

Tu vas devoir lancer 3 commandes dans un ordre précis. Je te conseille d'utiliser une clock "hopper" comme ceci :

lOyPx.png


Pour finir la préparation, ajoute 3 blocs de commande reliés par des répéteurs :

lOAA2.png



Les commandes :
  1. Nous commençons par donner le score canJump à tous les joueurs qui sont équipés avec les bottes.
    Code:
    /scoreboard players set @a canJump 1 {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{display:{Name:"jump_boost"}}}]}
    100b correspond à l'emplacement des bottes, et nous testons la présence de l'item leather_boots qui a été renommé en "jump_boost"

  2. Nous donnons l'effet "jump_boost" pour une durée de 2s. Si le joueur enlève les bottes l'effet disparaît tout seul.
    Si tu veux réduire la durée il faudra passer sur une clock rapide (répéteur ou fill clock).
    Code:
    /effect @a[score_canJump=1,score_canJump_min=1] minecraft:jump_boost 2 3 true
    2 correspond à la durée, 3 correspond à la puissance, et true désactive les effets de bulles.

  3. Pour finir nous remettons le compteur canJump à 0. Si le joueur n'a pas les bottes l'effet ne sera pas renouvelé.
    Code:
    scoreboard players set @a canJump 0
J'ai testé en jeu et ça fonctionne. Si tu as un souci je te conseille de bien tout relire plusieurs fois avant de demander.
 
Dernière édition par un modérateur:
Ou alors au lieu de faire une si grosse commande, tu prend un command-block (celui avec la commande de test) suivi d'un comparateur puis du command-block avec l'action à effectuer.
 
  • J'aime
Reactions: scouarn
c'est tellement cool les comparateurs...

en fait, on peut juste le faire avec un seul cb avec un /execute, mais la flemme de l'écrire...

edit :
Code:
/effect @a {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{display:{Name:"jump_boost"}}}]} minecraft:jump_boost 2 3 true

met juste cette commande sur ta clock :)
 
Dernière édition:
en fait même pas, le simple /effect suffit, si je me trompe pas, si on fait ça, ça devrait fonctionner...

Code:
/effect @a {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{display:{Name:"jump_boost"}}}]} minecraft:jump_boost 2 3 true

mais j'ai pas mc ouvert, la flemme de tester... (je suis en train de le faire) edit ça marche
les cb c'est comme le python, on trouve toujours un moyen de raccourcir le code...
edit: je le mets en citation, je trouve mon truc classe 8-)


@Xilak tes clocks sont kk
 
Dernière édition:
en fait même pas, le simple /effect suffit, si je me trompe pas, si on fait ça, ça devrait fonctionner...

Code:
/effect @a {Inventory:[{Slot:100b,id:"minecraft:leather_boots",tag:{display{Name:"jump_boost"}}}]} minecraft:jump_boost 2 3 true

mais j'ai pas mc ouvert, la flemme de tester...


@Xilak tes clocks sont kk
Il manque juste : après le display sinon ça marche (pareil, pas envie d'ouvrir le jeu)