Pages :: 1
Bonjour,
Je fais une map aventure et j'aimerai bloquer un slot de l'inventaire du joueur avec une (ou plusieurs) commande.
Malgré mes recherches, je n'ai rien trouvé.
J'espères que vous pourrez m'aider.
Merci d'avance !
Dernière modification par daxafart (24/07/2017 15:19:14)
Hors ligne
Tu veux le bloquer vide ou avec un objet ?
Hors ligne
Si tu veux qu'il reste vide tout le temps tu fait :
/replaceitem entity (ton joueur) slot.ton_slot minecraft:air 0
Je voudrais que l'on ne puisse pas enlever l'item du slot mais qu'on puisse quand même l'utiliser.
Merci quand même de vos réponses !
Hors ligne
Si c'est un objet d'armure et si tu développe une map en 1.11, penses à l'enchantement "cuse of binding"
Hors ligne
Oui c'est en 1.11 mais non ce n'est pas une armure c'est une potion. J'ai trouvé un système qui détecte lorsque le joueur n'a plus la potion et qui lui en donne une au bout de 5 secondes mais il peut le glitcher et en avoir plusieurs.
Hors ligne
Dans ce cas, /clear sur l'item avant de give à nouveau la potion
Hors ligne
Okay, voilà l'idée : tu contrôle que l'item soit dans un slot. S'il y est, no problem, mais s'il est dans un autre slot, tu remplis celui de base et tu vires l'autre item, quelque que soit son nouveau slot. Et bien sûr, tu vires l'item s'il est droppé !! Voilà en gros ce que ça donnerait dans une chaîne de command_blocks, pour conserver quoiqu'il arrive un stick dans le tout premier slot de la barre d'inventaire :
1) /scoreboard players tag @a add OK {Inventory:[{Slot:0b,minecraft:stick,Count:1b}]}
2) /clear @a[tag=!OK] stick 0 64
3) /replaceitem entity @a[tag=!OK] slot.hotbar.0 stick 1 0
4) /scoreboard players tag @a[tag=OK] remove OK
5) /scoreboard players tag @e[type=Item] add ItemStick {Item:{id:minecraft:stick,Count:1b}}
6) /kill @e[tag=ItemStick]
Voiloooooou En espérant que ça 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 !
Merci beaucoup ! C'est exactement ce que je cherchais ! Mais la seconde commande ne fonctionne pas Il ne vire pas l'item dans le mauvais slot et surtout il ne détecte pas le joueur. Et la première commande avais une erreur : tu as oublier le "id" devant "minecraft:stick". La voici corrigée :
/scoreboard players tag @a add OK {Inventory:[{Slot:0b,id:minecraft:stick,Count:1b}]}
Dernière modification par daxafart (16/12/2016 18:26:46)
Hors ligne
Ah oui, exact pour la faute, désolé !
Par contre pour le truc de la deuxième commande, j'ai pas tout compris Oo qu'est-ce qui ne fonctionne pas ?
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 !
Le selecteur "@a[tag=!OK]" ne me détecte pas lorsque je n'ai pas le tag. Mais elle pourrait être remplacée par une commande (un /clear) qui supprime tous les stick de l'inventaire sauf à l'endroit voulu (à moin que ce ne soit déjà ce qu'elle fait et que je l'ai mal comprise). Mais je n'ai pas trouver comment le faire en une commande. Le seul façon que j'ai trouvé est de faire un /clear pour chaque slot. J'espère qu'il y a un autre moyen .
Dernière modification par daxafart (25/04/2018 15:42:35)
Hors ligne
Ah mais nan, t'as pas compris, le but C'EST qu'elle ne fonctionne pas !! En fait je parie que tu dis ça parce qu'à chaque que tu regardes dans le command_block il te dit, j'imagine, qu'il ne trouve pas le sélecteur "@a[tag=!OK]" : mais c'est parce que quand il le trouve, ça ne se fait que sur un seul tic !! e commande ne fonctionne que lorsque le joueur n'as pas de stick dans son slot n°0.
Pour résumer, la commande 1 met un tag OK s'il y a un stick dans le slot 0.
Si elle n'a pas fonctionnée, alors le joueur n'a PAS le tag OK, et donc pas de stick dans son slot 0, auquel cas on fait 2 choses : on lui vire les sticks qu'il a potentiellement déplacés dans son inventaire avec la commande 2, puis on en remet dans son slot 0 avec la commande 3 en /replaceitem.
Et pour terminer, la commande 4 lui vire le tag OK si la commande 1 a fonctionné. Comme ça, le système peut recommencer, et notre joueur n'aura le tag OK que si son stick est dans slot 0 ; alors que si c'est pas le cas, bah ça passe la commande 1 et ça applique les 2 et 3.
Voilà, j'espère que c'est plus 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 !
Justement ! J'avais bien compris ça mais le tic est trop rapide ! Le temps que le joueur met à changer le stick de slot et la chaine de commande est déjà finie ! Donc la deuxième commande ne peut pas opérer.
Du coup, j'ai séparé du reste les commandes 2 et 3 par un inverseur relié à la 1ère commande. Donc, quand la 1ère commande fonctionne, tout ce passe bien. Mais dans le cas contraire, la 2ème et la 3ème commande s'activent tout en laissant le temps au joueur de changer le stick de slot.
Mais on peut encore bloquer la chaine en enlevant rapidement et 2 fois d'affiler le stick du slot 0 : le comparateur derrière la première commande ne s'éteint pas et donc les commandes 2 et 3 ne peuvent fonctionner.
Dernière modification par daxafart (27/12/2016 00:47:48)
Hors ligne
OK J'AI COMPRIS !! J'ai craqué j'ai testé de mon côté, je vois enfin ce que tu veux dire
Bon, alors, j'y ai passé un peu de temps, mais j'ai fini par faire un système qui fonctionne EN THEORIE
Je m'explique : il marche dès lors que quand on déplace l'item, on ne le met dans un slot actuellement sélectionné. En gros, t'as ton stick dans le slot 0, mais ton slot 2 est surligné. Si tu ouvres ton inventaire et que tu déplaces ton stick dans le slot 2, alors à cause d'un foutu bug lié au /clear, le jeu pige pas ce qu'il se passe, clear l'item, mais celui-ci reste en place et est glitché : on peut l'utiliser, mais un clear dessus n'aura aucun effet, et il faudra se déco-reco pour le voir disparaître.
En revanche, si on a le slot 2 de sélectionné et qu'on déplace le stick dans le slot 4 par exemple, et qu'on déplace notre curseur ENSUITE jusqu'au slot 4, alors là pas de soucis, le stick est clear et aussitôt remis dans le slot 0 !
Là c'est le mieux que je puisse faire, après c'est la faute de Minecraft pour ce foutu bug qui m'a déjà posé pas mal de problème :-( Mais voici les commandes définitives, dans une chaîne de command_blocks :
1) /scoreboard players tag @a add OK {Inventory:[{Slot:0b,id:minecraft:stick,Count:1b}]}
2) /scoreboard players tag @a[tag=!OK] add Nop {SelectedItem:{id:minecraft:stick,Count:1b}}
3) /clear @a stick 0 64 -> bloc en mode "conditionnel"
4) /replaceitem entity @a slot.hotbar.0 stick 1 0 -> bloc en mode "conditionnel"
5) /scoreboard players tag @a[tag=Nop] remove Nop
6) /scoreboard players tag @a[tag=OK] remove OK
Et ensuite, les commandes qui gèrent le drop du stick ne changent pas
Voilou !! Après, si ça ne te convient pas, je ne vois malheureusement plus trop quoi faire... C'est toujours difficile de feinter Minecraft quand il met un bug à l'endroit exact où t'es censé faire une action ^^'
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 presque parfait ! Ça aurait put marcher si le joueur ne pouvait pas mettre le stick dans son inventaire et donc serait pratiquement forcé de le sélectionner. Le bug a eu raison de ton génie... Mais je te remercie quand même de m'avoir précieusement aidé. En remerciement, je me suis abonné à ta chaine (qui va BEAUCOUP m'aider). Et ton trailer "Bienvenue sur la chaîne du plus grand génie mégalo de tous les temps" donne envie...
Je ne met pas [RÉSOLU] car j'espère qu'un jour peut-être quelqu'un trouvera la solution à ce problème...
Hors ligne
Huhu pas de quoi !!
Et merci pour le trailer, c'est vrai qu'à la base c'est quand même fait pour donner envie de s'abonner xD
Et puis suffit pas d'attendre que quelqu'un trouve une solution, mais plutôt que Mojang se décide enfin à faire cette correction de bug
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 mais il faudrait que beaucoup de joueurs se plaignent. Au moins 1/4. Je ne pense pas que si 1 seule personne (ou même 1 dizaine) recense ce bug Mojang le corrigera.
Dernière modification par daxafart (31/12/2016 13:36:37)
Hors ligne
Si, ils ont déjà corrigé beaucoup de bugs. Après ça met du temps, parce qu'ils ont drôle de sens des priorités. Ils préfèrent travailler sur des ailes de mouches que de corriger les bugs.
Hors ligne
Dans ce cas comment faire pour leur reporter le bug ?
Hors ligne
Pages :: 1