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

No mods Mines réalistes

Discussion dans 'Redstone & Commands blocks' créé par KubbyDev, 23 Nov 2015.

  1. KubbyDev

    KubbyDev Explorateur

    Inscrit:
    30 Déc 2014
    Messages:
    90
    Points:
    76
    Sexe:
    Homme
    Ok ok imaginons que je fasse un execute testforblock sur un armorstand qui s'appelle Crafting ce serait quoi la syntaxe du /stats ? (J'ai beaucoup de connaissances en command blocks mais le /stats est la seule commande a laquelle je ne me suis pas encore interessé, oui je devrais). Si tu me donne une réponse fiable et qui marche en multijoueur je te considère officiellement comme un génie :)
     
  2. Calambiel

    Calambiel Résident de l'End

    Inscrit:
    5 Août 2014
    Messages:
    6 595
    Points:
    229
    A l'invocation (imaginons qu'on utilise un œuf de Silverfish et que j'ai un objectif nommé "Craft") :
    Code (cpp):
    /execute @e[type=Silverfish,name=Dispenser] ~ ~ ~ summon ArmorStand ~ ~ ~ {CustomName:"Craft",Invisible:1b,Marker:1b,NoGravity:1b,Invulnerable:1b}
    /execute @e[type=Silverfish,name=Dispenser] ~ ~ ~ setblock ~ ~ ~ minecraft:dispenser 1 {CustomName:"Crafting Device"}
    /execute @e[type=Silverfish,name=Dispenser] ~ ~ ~ scoreboard players set @e[type=ArmorStand,name=Craft,r=1] Craft 0
    /execute @e[type=Silverfish,name=Dispenser] ~ ~ ~ stats entity @e[type=ArmorStand,name=Craft,r=1] set SuccessCount @e[type=ArmorStand,name=Craft,r=1] Craft
    /kill @e[type=Silverfish,name=Dispenser]
    (J'ai choisi de diriger le dispenser vers le haut et de le nommer dans le GUI "Crafting Device" mais tu peux changer)
    Ok donc ici nous avons des execute sur le SilverFish qui vont dans l'ordre : summon l'armorstand, setblock le dispenser, mettre le score de l'armorstand à 0 (c'est obligatoire avant de lier à un stats pour qu'il fonctionne), puis le /stats reliant le score de l'ArmorStand à son SuccessCount. Cela veut dire qu'à chaque fois qu'une commande est réalisée en execute par l'armorstand son score va prendre deux valeurs : 0 si elle réussi et 1 si elle échoue.

    A partir de là il ne te reste qu'à tester chaque "motif" indépendamment :
    Code (cpp):
    /scoreboard players set @e[type=ArmorStand,name=Craft] Craft 0
    /execute @e[type=ArmorStand,name=Craft] ~ ~ ~ testforblock ~ ~ ~ minecraft:dispenser 1 {NBT tag à tester}
    /execute @e[type=ArmorStand,name=Craft,score_Craft_min=1] ~ ~ ~ blockdata ~ ~ ~ {NBT tag à donner}
    Ici on remet d'abord le score à 0 (à mettre avant chaque recette pour qu'il n'y ait pas d'interactions entre-elles). L'ArmorStand réalise l'execute sur le dispenser se trouvant à sa position en vérifiant s'il s'agit d'un dispenser possédant un certain tag. Le NBT doit contenir un tag "Items" listant les objets dans le dispenser et leur slot pour vérifier la recette (pense également à indiquer les count pour éviter qu'un joueur ne crafte qu'une mine avec des stacks de composants). Si le dispenser répond aux conditions la commande est un succès : le SuccessCount de l'armorstand passe à 1 et son score avec. Il ne reste plus qu'à remplacer la recette par la mine grâce à la dernière commande utilisant un sélecteur sur le score qui doit passer à 1.

    Si tu n'arrives pas à créer les NBT entiers toi-même fait simplement un /blockdata vide sur dispenser contenant la recette ou l'obket fini pour que le jeu te ressorte tous ces tags et que tu n'ais plus qu'à copier-coller et enlever les tag inutiles.
    Code (cpp):
    /blockdata <x> <y> <z> {}
    Je précise que je n'ai absolument pas testé ces commandes, donc qu'il y a très probablement des erreurs. Néanmoins cela te permet de comprendre le moyen que j'évoquais et tu pourras de toi-même corriger ces erreurs (ce qui te dispense d'appliquer ta dernière phrase :p).

    Si tu as du mal avec le /stats je te renvoie vers ce tutoriel : http://forum.minecraft-france.fr/threads/stats-introduction-de-labstrait-dans-les-commandes.27299/
    Et sur l'introduction de la troisième et dernière partie de celui-ci : http://forum.minecraft-france.fr/threads/des-shops-compacts-et-intuitifs.28382/

    Cela nécéssite quand même trois commandes par craft dont deux impliquant une écriture/lecture de NBT. Par conséquent je recommande de ne pas mettre ce système sur une fill clock simple mais plutôt sur une lente (genre une activation toutes les 0.5 secondes serait le mieux).
     
    • Sympa Sympa x 3
    • Utile Utile x 1
  3. KubbyDev

    KubbyDev Explorateur

    Inscrit:
    30 Déc 2014
    Messages:
    90
    Points:
    76
    Sexe:
    Homme
    Waaaaa merci de m'avoir écrit ce roman j'ai tout compris et ptn qu'est ce que c'est utile le /stats :)
    Bon ba a moi de jouer pour faire un bon système de mines V2...
    Et, au fait, oui je ne serais pas obligé d'appliquer ma dernière phrase:"son score va prendre deux valeurs : 0 si elle réussi et 1 si elle échoue." :p
     
  4. KubbyDev

    KubbyDev Explorateur

    Inscrit:
    30 Déc 2014
    Messages:
    90
    Points:
    76
    Sexe:
    Homme
    Ok bon j'ai bientôt fini la V.2
    La commande (en 1.9 parce que c est mieux) devrait sortir en début d'année prochaine :troll: (j'aime cette blague pas drole que tout le monde fait)
    Merci Calambiel, tu sera évidement mentionné dans la vidéo :smile:
     
    • Troll Troll x 1
  5. snipex_x

    snipex_x Enter the World

    Inscrit:
    30 Juil 2015
    Messages:
    43
    Points:
    32
    Sexe:
    Homme
    pas obligé pour le testforblockS mais un testforblock suffit puis après tu mes le datatag de ton dispenser ^^
     
  6. KubbyDev

    KubbyDev Explorateur

    Inscrit:
    30 Déc 2014
    Messages:
    90
    Points:
    76
    Sexe:
    Homme
  7. KubbyDev

    KubbyDev Explorateur

    Inscrit:
    30 Déc 2014
    Messages:
    90
    Points:
    76
    Sexe:
    Homme
    J'ai utilisé ton idée mais je n'ai pas pu faire en sorte que le bip soit de plus en plus fréquent (limite de caractères :/ ) j'ai juste fait un bip qu'on entend de plus en plus fort parce que je l'execute sur la mine...
     

Partager cette page