Salut tout le monde ! Je suis en train d'essayer d'améliorer ma map aventure grâce à des blocs de commande, mais comme je ne m'y connais pas trop j'aurais besoin d'un peu d'aide.
Le joueur est en mode aventure et il possède des leviers qu'il ne peut poser que sur certains blocs (avec le /give .... CanPlaceOn...). Seulement il est possible de poser les levier sur le mauvais bloc. Le joueur possède un outil qui permet de le récupérer, mais un fois récupéré, le levier perd ses capacités à être posé sur certain blocs. Ce que j'aimerais donc faire, c'est qu'un bloc de commande vérifie en permanence si le joueur a un levier dans sont inventaire mais qui ne peut pas être poser, afin de le remplacer par un levier pouvant être posé sur certain blocs. Pour le début de la commande, il me semble que c'est ça :
/testfor @a {Inventory:[{id:"minecraft:lever"....}]} . Est-il donc possible de détecter seulement les leviers qui n'ont pas de caractéristiques au niveau des blocs où ils peuvent être posés ?
J'ai du mal à expliquer mon problème mais j'espère que vous l'aurai compris et que vous pourrez m'aider.
Merci d'avance
Dernière modification par aurepizza (21/08/2016 23:49:33)
Hors ligne
Hey !!
Peut-être que tu prends le problème à l'envers : au lieu de modifier le levier une fois qu'il est dans l'inventaire, est-ce que tu ne pourrais pas modifier l'ITEM du levier qui pope ? Il te suffirait alors de deux commandes :
/scoreboard players tag @e[type=Item] add LevierPop {Item:{id:minecraft:lever}}
/entitydata @e[tag=LevierPop] {Item:{id:minecraft:lever,tag:{CanPlaceOn:["minecraft:stone"]}}}
Voilou, est-ce que ça résout ton problème ?
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Je ne comprend pas vraiment comment marche ces commandes (les scoreboard et tout ça) mais ça marche parfaitement, merci beaucoup !
Encore une petite question cependant, cela affecte t-il tout les leviers qui popent dans toute la map, ou à partir d'une certaine distance, les blocs de commande ne sont plus effectif ?
Hors ligne
Tant mieux si ça fonctionne !!
Et pour ta question, en fait, tout dépend : si tes command_blocks sont la zone autour du centre de ton monde (le setworldspawn, l'endroit où tu apparais pour la première fois), alors il fonctionneront toujours, même si tu t'éloignes de plusieurs milliers de blocs. En revanche, s'ils sont en dehors de cette zone de quelques chunks, et que tu t'éloignes trop, il ne fonctionneront plus !
Pour répondre plus exactement à ce que tu demandais, oui, la façon dont les commandes sont rédigées font qu'elles affectent TOUS les leviers de la map Si tu veux qu'elles n'en affectent que quelques uns, je te conseille de mettre les command_blocks à proximité de là où tu veux avoir ton levier particulier, et de rentrer un rayon dans les commandes, comme ceci :
/scoreboard players tag @e[type=Item,r=10] add [...]
Voilou ! N'hésite pas à encore poser des questions si ce n'est pas clair
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Suivant les différents endroits de la map les leviers ne se posent pas sur les mêmes blocs donc définir une zone de recherche peut être pas mal, je vais essayer ! Je te tient au courant si j'y arrive ! Merci encore.
Hors ligne
Pas de quoi, bon courage !! N'hésite pas à revenir si tu as besoin d'aide
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
En plaçant mes petits blocs de commande partout j'ai découvert un autre problème, et cela met encore en jeu le /testfor :
il faudrai que dans une zone défini (là ça serait environ 2 blocs autour du command_block), chaque joueur ne possédant pas de perle de l'ender en reçoive une. Je pense que ça ne doit pas être très compliqué mais mes connaissances s'arrêtent à la redstone d'avant, càd quand il n'y avait pas les blocs de commande.
Hors ligne
Oui, en effet, c'est pas très compliqué !
/scoreboard players tag @a add AUnePerle {Inventory:[{id:minecraft:ender_pearl}]}
/give @a[tag=!AUnePerle] ender_pearl 1 0
/scoreboard players tag @a remove AUnePerle
Ces commandes sont, bien sûr, à mettre dans une chaine de command_blocks Voilou !
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Pour définir le rayon de recherche, c'est comme ça ? :
/give @a[tag=!AUnePerle,r=(rayon)] ender_pearl 1 0
Et pour les premières commandes que tu m'a passer c'était dans une chaîne de command_block qu'il fallait les mettre ? Parce que pour l'instant je les ai mises dans des blocs à répétition. Et d'ailleurs ça marche bien pour les leviers mais pas pour la poudre de redstone, je ne comprend pas pourquoi.
Je modifie ce message car comme je n'y connait rien en commande bloc:
Il faudrait que le système qui capte si le joueur possède une perle ne s'active qu'à l'ouverture d'un coffre (je met donc un coffre piégé). A partir de ce moment, que commande doit être reliée au coffre, dans quel bloc doit elle être (impulsion, chaîne ou répétition), et quel block de commande doit t-il y avoir après ?
C'est peut être un peu chiant à expliquer pour toi mais comme ce que j'essaie ne marche pas j'aurai besoin d'un peu plus d'explication.
En te remerciant encore de ton aide ;)
Dernière modification par aurepizza (18/08/2016 00:26:40)
Hors ligne
Alors :
- Pour le rayon, oui, c'est bien ça ! Mais à mettre sur toutes les commandes, bien sûr ^^
- Ensuite, le terme "chaîne de command_blocks" correspond le plus couramment à un bloc à répétition suivi de blocs en mode "chain" (enfin après c'est l'utilisation personnelle que j'ai du terme). Donc en gros, c'est une clock ! Toutes les commandes que je t'ai donné sont à mettre dans l'ordre dans une chaîne (une chaîne pour chaque groupe de commandes que j'ai énoncé, évidemment ^^), avec la première dans un repeating_command_block, et les suivantes dans des chain_command_blocks reliés au repeating de départ. En gros, pour l'exemple des ender_pearls (sans la mention du coffre, je parle de ce que j'avais compris avant), ça donne ça :
- pour l'idée du coffre, dans ce cas, il faut que le premier bloc soit un bloc de commande classique (donc une seule impulsion) avec des chain_command_blocks derrière.
- pour comprendre un peu mieux le fonctionnement de ces command_blocks, je t'invite à aller voir cette vidéo (tkt elle est super longue, mais la portion sur les blocs de commandes n'en représente qu'une petite partie, peu-être trois minutes (EDIT : les explications se terminent à 3min40)) : https://youtu.be/zFL6nN4GHvo?t=40s
- oui, je viens de me faire de l'auto-promo, mais j'assume
- et enfin, pas de quoi pour l'aide, c'est normal !! Si tu ne comprends pas quelque chose, pose la question
Dernière modification par Grand_Corbeau (18/08/2016 00:34:56)
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Je regarderai la vidéo en entière même si elle dure 1h ! Mais je ferai ça demain je pense. Sinon pour la première commande je reçoit toujours un message d'erreur :
[23:51:28] The dataTag does not match for aurepizza
Si tu a une idée de pourquoi ça fait ça...
Et tu n'a peu être pas vu mon message à propos des première commandes que tu m'a données :
pour les leviers ça marche parfaitement bien mais pas pour la poudre de redstone, je ne comprend pas pourquoi.
Hors ligne
Non non t'es pas obligé de la regarder en entière, rien d'intéressant en ce qui te concerne, c'esr juste une vidéo qui présentait toutes les nouveautés dans les commandes entre la 1.8 et la 1.9 ^^
Pour ta commande, si tu es dans bloc de commande au moment où tu N'A PAS d'ender_pearl dans ton inventaire, c'est parfaitement normal
Pour la poudre de redstone et les leviers, si tu te relis, en fait tu n'en as pas vraiment parlé Mais si tu veux faire un peu la même chose pour elle que pour les leviers, alors il faut faire une autre chaîne à répétition :
/scoreboard players tag @e[type=Item] add PoudrePop {Item:{id:minecraft:redstone}}
/entitydata @e[tag=PoudrePop] {Item:{id:minecraft:redstone,tag:{CanPlaceOn:["minecraft:stone"]}}}
C'est EXACTEMENT le même fonctionnement, mais pour un autre item du coup
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Pour la perle la deuxième commande me give des perles à l'infini alors que j'en ai dans mon inventaire, pourtant j'ai vérifié il y à bien le "!" devant le nom du tag. Et ce qui est bizarre c'est que ça fait ça alors que le tag n'a pas encore été créé (et si je le créer ça change rien).
Pour la redstone je crois bien que c'est ce que j'avais fait... je vais essayer avec un copier coller de tes commandes.
Dernière modification par aurepizza (18/08/2016 12:10:32)
Hors ligne
Heu, petite précision :
- les commandes pour les leviers et poudre de redstone sont à mettre dans une chaîne à répétition
- le commandes pour l'ender_pearl, si elle sont reliée à un coffre, ne s'exécute qu'une seule fois grâce à un bloc de commande simple suivi de chain_command_blocks
- aucun bloc chain n'est en mode "conditionnal"
J'avoue, j'ai pas trop compris ton
Le problème c'est que le bloc de commande d'après ne s'active pas du coup. Mais si je n'y arrive pas je donnerai plusieurs perles et il y aura un /clear @a ender_pearl plus tard
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
Relis le message 13 je l'ai modifié, et maintenant j'ai aussi remarqué que je ne peut créé le tag que lorsque j'ai déjà une ender pearl, mais pour ça y'a pas de problème, au lieu de faire un coffre piégé c'est le fait de prendre la perle à l'intérieur qui va créé le tag. Le problème c'est la deuxième commande, elle ne marche pas, je n'ai même pas de message d'erreur.
Modification message : J'ai enlever le "!" et le bloc de commande me capte, pourtant je n'ai pas de perle.
Pour les leviers et la redstone ça marchais aussi en mode répétition, mais je les ai mis en mode chaîne quand même.
Dernière modification par aurepizza (18/08/2016 12:43:39)
Hors ligne
Bon, vu qu'on n'a pas l'air de franchement se comprendre sur le délire des chaînes, je t'ai tout refais dans une map a télécharger ici : http://www.mediafire.com/download/frj1l … epizza.zip
Comme ça tu ne pourras que comprendre ce que je veux dire xD
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
J'ai regardé ta map, le problème c'est qu'on ne reçoit une perle qu'en ouvrant le coffre. Voilà un schéma pour qu'on se comprenne, j'espère que ça sera clair :
Pour la redstone et les leviers j'avais fait pareil donc tout va bien et ça fonctionne à merveille
Hors ligne
Voilà ! http://www.mediafire.com/download/1p9fi … epizza.zip
Et pour ton truc de pas donner de perle s'il y en a une par terre, c'est plus soulant à faire que difficile, et je vais pas aller jusque là ^^ Donc je me contente de virer automatiquement les ender_pearls sous la forme d'item droppé
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
C'est vrai que de supprimer le perle droppée c'est plus simple et ça reviens au même, surtout que j'allai justement te demander comment faire ça pour d'autre blocs. Bon au moins ça c'est fait.
Par contre moi ton système fait comme l'ancien, je ne drop une perle que quand j'ouvre le coffre, et pas quand je suis devant l'obstacle. D'ailleurs les blocs de commandes affichent des messages d'erreur :
[16:54:19] The entity UUID provided is in an invalid format pour le dernier bloc de la chaîne
[16:54:19] Entity didn't have the AUnePerle tag pour l'avant dernier
Je précise que je joue en 1.10.2, et comme je sais qu'il peut y avoir des changements entre versions, vaut mieux que tu soit sur la même que moi !
Tu commence peut être à en avoir marre mais normalement après ma map est finie !
Encore merci de ton aide c'est rare des gens qui aident autant et qui répondent aussi vite !
Dernière modification par aurepizza (18/08/2016 18:00:34)
Hors ligne
Oui c'est vrai, on m'a souvent dit que je suis une espère rare xD (oups mes chevilles gonflent excusez-moi)
Ne te fie pas aux messages dans les command_blocks, tout marche parfaitement Et on est dans la même version !
Aaaaaah j'avais pas compris pour le délire du drop : en gros, si je récapitule, tu veux que ça se passe dans cet ordre :
1) on ouvre le coffre et on prend la perle
2) on va dans la zone en face l'obstacle
3) on balance la perle -> ça induit 2 possibilités :
a) on réussi, pas de problème, mais le temps qu'on lance la perle et qu'elle atterisse, on en aura déjà reçu une de plus dans notre inventaire
b) on échoue, et pas de problème, on en reçoit automatiquement une dans la zone de drop
C'est bien ça ? Je me renseigne avant de te filer la version finale
Dernière modification par Grand_Corbeau (18/08/2016 18:13:01)
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
C'est parfaitement ça ! C'est vrai que du coup on aura une perle en plus mais je ferai une zone /clear à l'arrivée c'est pas très grave.
Et pour delete les items dropper, si je veut en mettre plusieurs, comme ça sa fonctionne ? :
/scoreboard players tag @e[type=Item,r=30] add Drop {Item:{id:minecraft:stonebrick,minecraft:dirt,minecraft:stone}}
kill @e[tag=Drop]
Bon finalement j'ai ma réponse ça marche pas, mais je trouve pas comment faire.
Dernière modification par aurepizza (18/08/2016 18:32:14)
Hors ligne
Bon, j'ai eu un peu plus de mal que prévu, à cause d'un bug graphique qui faisait qu'on ne voyait pas la perle dans l'inventaire même si elle y était (il fallait se déco-reco pour la voir, ou actualiser l'affichage en ouvrant un coffre).
Du coup ce que j'ai fait, c'est qu'au lieu d'utiliser un /give, j'ai fait apparaître une perle à l'emplacement du joueur avec un PickupDelay de 0 pour qu'elle aille direct dans son inventaire, et un tag pour éviter que les commandes qui tuent les perles droppées virent cette "perle de secours". Du coup toutes les commandes on été actualisées !
Voilou, lien de la map : http://www.mediafire.com/download/t05tr … epizza.zip
Dernière modification par Grand_Corbeau (18/08/2016 18:43:59)
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
C'est parfait mise à par que lorsque je drop une perle elle n'est plus delete. Et je pense que tu n'a pas vu la modification que j'ai faite au message 21, à propos du delete des items justement. Et pour clear dans une zone spécifique tu fait comment ?
Pour le delete des perles tu avais juste mis un rayon de 2 blocs c'est pour ça. Du coup ce problème est résolu, je vais essayer d'adapter ton système sur ma map !
Nouveau message :
Bon finalement, je n'arrive pas a recréer le système sur ma map, pourtant tout est exactement pareil, j'ai juste modifier les coordonnées de la zone de drop. Comme en plus ton système (même sur ta map) bug parfois (je vois la perle venir vers moi à l'infini mais elle ne va pas dans mon inventaire), j'ai décidé de mettre plusieurs perles dans le coffre et de les clear après. Ça sera beaucoup plus simple. Après si un joueur lance 10 perle dans la mauvaise direction ça sera pas mon problème.
Dernière modification par aurepizza (18/08/2016 20:14:09)
Hors ligne
Mdr oui c'est la meilleure solution xD Mais c'est bizarre que ça bugue, chez moi dans mes tests tout allait bien Oo (et pour le l'histoire du rayon, je m'en suis rendu compte après coup xD, c'était pour mes vérifications)
En tout cas, heureux que tu aies enfin pu résoudre ton problème !!
Hors ligne
Rédacteur astuce titulaire sur FR-Minecraft / Grand, sublime, magnifique, incroyable et inimitable génie
J'ai une chaîne YouTube !! Si tu veux voir mes machines et autres systèmes, c'est par ICI !
Plus rusé qu'un renard...
... et plus rusé que toi !
De toute façon ce n'était pas le principal, puisque le sujet de base de la discussion c'était de remplacer les leviers droppés par des leviers avec CanPlaceOn. Donc tout va bien. Normalement, niveau redstone il n'y a plus aucuns problèmes sur la map ( à moins que tu connaisse une commande pour que le joueur ne puisse casser que les blocs que lui a posé, mais je ne croit pas que ça existe).
Dernière modification par aurepizza (18/08/2016 20:33:17)
Hors ligne