1. Le forum de Minecraft-France va définitivement fermer ses portes. Celui-ci restera en lecture seule mais vous ne pourrez plus y apporter de nouveaux topics. Nous vous invitons à nous rejoindre sur le Discord de Minecraft-France qui permet de présenter vos projets, discuter avec la communauté etc.. Merci à tous d'avoir fait vivre ce forum de nombreuses années. Pour nous rejoindre sur Discord, Cliquez ici

Armure et item

Discussion dans 'Mapping' créé par Polmek, 6 Mai 2014.

  1. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    Salut ! Je sais pas s'il faut le placer là, mais je voudrais savoir comment giver et équiper directement une armure ou une tête avec un command-block.
    J'aimerais aussi savoir comment rendre un objet undroppable, si c'est possible, ou en tout cas, empêcher les autres joueurs de le prendre, puis le re-give direct, de façon à faire qu'il ne soit comme jamais sorti de l'inventaire (c'est pas grave si la barre d'utilisation est nouvelle).
    EDIT : Troisième question : Est-il possible de détecter le fait qu'un joueur mange un gâteau (part par part si possible) ?

    Merci d'avance ! :p
     
    #1 Polmek, 6 Mai 2014
    Dernière édition: 6 Mai 2014
  2. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    148
    Sexe:
    Homme
    1/Pour giver une armure:
    Code (cpp):
    /give @a [IDdel'elementdel'armure]
    Mais pour équiper directement, il faut passer pas les droppers.

    2/Pour rendre un objet undroppable (1.8):
    Code (cpp):
    Mettre ceci comme datatag: {PickupDelay=32767}
    3/Pour sa, il faut créer un objectif:
    Code (cpp):
    /scoreboard objectives add [nom] stat.useItem.354
    Puis, relier a une clock, tu écris ceci dans le commande block:
    Code (cpp):
    testfor @p[score_[nom]_min=1]
    Bien sûr, avec un comparateur a coter!
     
  3. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    Je vais essayer :D, Mais quand tu dis que l'objet est undroppable, c'est pas tu le lances et il disparaît ?
     
  4. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    148
    Sexe:
    Homme
    Nope, quand tu le lance, il est reste pars terre jusqu’à que tu... euh... jusqu’à jamais!
     
  5. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    En fait, je vais faire un système de classe, et faudrait faire en sorte que chaque joueur garde ses propres objets...
     
  6. Nocturne123

    Nocturne123 Mineur de Fer

    Inscrit:
    24 Déc 2012
    Messages:
    678
    Points:
    148
    Sexe:
    Homme
    Alors la! A moins de faire un testfor d'un item spéciale de tout les joueurs et que si quelqu'un jette un item, cela lui re-give l'item automatiquement et l'item par terre de pourra pas être pris ou sinon, giver constament les item spéciaux puis d'autre item inutile qui remplis tous le reste de l'inventaire ce qui fait que, quand quelqu'un jette l'item cela lui re-give et reste par terre (comme l'autre) ou encore ba tant pis pour lui!
     
  7. SpookyPowa

    SpookyPowa Rédacteur en Chef
    Staff

    Inscrit:
    26 Mai 2013
    Messages:
    7 481
    Points:
    259
    Sexe:
    Homme
    /gamerule keepInventory true
    Ca permet de faire conserver aux joueurs leurs objets en cas de mort.
     
  8. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    Je sais faire ça, mis il faudrait juste empêcher le fait qu'ils puissent s'échanger les items propres à leur classe :) Si c'est pas possible, c'est pas grave, je ferais sans...
     
  9. SpookyPowa

    SpookyPowa Rédacteur en Chef
    Staff

    Inscrit:
    26 Mai 2013
    Messages:
    7 481
    Points:
    259
    Sexe:
    Homme
    Après, si les joueurs veulent vraiment jouer sur ta map, ils ne tricheront pas et ne s'échangeront pas leurs items, ça ruine l'esprit du jeu, sinon...
     
    • J'approuve J'approuve x 1
  10. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    C'est vrai, j'y avais pas pensé :)... Bon, bah, je mets "résolu".
     
  11. Keel

    Keel Mineur de Redstone

    Inscrit:
    1 Août 2013
    Messages:
    1 006
    Points:
    168
    Sexe:
    Homme
    Si j'ai bien compris, tu ne veux pas qu'ils puissent lancer leurs items ?

    Ben, tu mets un objectif à chaque classe. Dès qu'un gars choisit une classe, tu lui mets 1
    Par exemple, la classe du chevalier, tu mets
    /scoreboard objectives add chevalier dummy
    /scoreboard players set @p chevalier 1
    Après, avec une clock hyper-rapide (pas la plus rapide, les testfors ne marchent pas je crois), tu fais /testfor @e[type=Item] {id:"minecraft:nomdel'objetundroppable"}


    Avec un comparateur, dès que l'item en question est testé, tu fais /execute @a[score_chevalier_min=1] ~ ~ ~ kill @e[type=Item]
    Et ensuite, /clear @a[score_chevalier_min=1] minecraft:nomdel'objetundroppable (Pour le retirer de l'inventaire des autres)

    Et tu fais un /give @a[score_chevalier_min=1] minecraft:nomdel'objetundroppable
    Et tu fais ça sur tous les objets disponibles x)
    Il doit exister un moyen plus court mais je ne vois pas lequel.


    ATTENTION : Si 2 classes ont le même objet, tu dois refaire ces commandes même pour le même objet (avec les objectifs différents)

    Je crois que j'ai trouvé un système plus court.
    Tu crées un objectif pour chaque kit :
    /scoreboard objectives add chevalier dummy
    Tu crées l'objectif drop pour chaque kit :
    /scoreboard objectives add dropchevalier stat.drop

    Avec une clock (pas la plus rapide encore une fois), un :
    testfor @p[score_chevalier_min=1,score_dropchevalier_min=1]
    Avec un comparateur, tu mets ensuite
    execute @a[score_chevalier_min=1,score_dropchevalier_min=1] ~ ~ ~ kill @e[type=Item,r=4] (le r=4 est pour éviter de détruire les items qui peuvent trainer sur la map comme des items bonus ou des animations)
    Ensuite, tu fais /clear @a[score_chevalier_min=1,score_dropchevalier_min=1]
    Et un give @a[score_chevalier_min=1,score_dropchevalier_min=1] minecraft:touslesobjetsduchevalier
    C'est à dire, tu dois regive l'armure, l'épée et tout

    Et dès que tous les gives sont effectués, tu remets à 0 le score dropchevalier
    J'ai pas testé, j'ignore ce que ça va faire mais tu peux essayer :)
     
    #11 Keel, 8 Mai 2014
    Dernière édition: 8 Mai 2014
  12. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    J'essaie dès que j'ai accès ä l'ordi alors :)
     
  13. Mlakuss

    Mlakuss Rédacteur

    Inscrit:
    7 Sept 2013
    Messages:
    1 694
    Points:
    180
    Sexe:
    Homme
    Pour ce genre de truc, je préfère éviter de m'emmerder.
    /execute @e[type=Item] ~ ~ ~ tp @e[type=Item,r=1] @p
    Dans l'horloge la plus rapide possible.

    Sinon, un /kill @e[type=Item] mais sais give derrière: fallait suivre les règles.
     
  14. Keel

    Keel Mineur de Redstone

    Inscrit:
    1 Août 2013
    Messages:
    1 006
    Points:
    168
    Sexe:
    Homme
    J'aurais pas dû écrire ça, j'ai perdu 10 minutes inutilement x)
     
  15. Polmek

    Polmek Mineur de Fer

    Inscrit:
    22 Sept 2013
    Messages:
    638
    Points:
    94
    Sexe:
    Homme
    Ce sera plus rapide ton système Mlakuss. Mais ça fait quoi le /execute ? Je connais pas cette commande...

    Envoyé de mon Nexus 7 en utilisant Tapatalk
     

Partager cette page