5 votes

Comment faire parvenir les décès du mob à Portes Ouvertes ?

J'ai donc essayé de construire un système dans lequel un zombie personnalisé apparaît, le joueur le tue, et un bloc de commande détecte cette mort et ouvre une porte en fer en faisant apparaître un bloc de redstone en dessous.

La façon dont j'ai essayé de le faire est la suivante : L'horloge Hopper est attachée à la commande suivante, qui ajoute le tag 'trigger' à une armure chevauchant un zombie :

tag @e[type=armor_stand,name=deathdetect] add trigger

Dans une chaîne de blocs de commande, le premier retire le déclencheur si le zombie est toujours là :

execute as @e[type=zombie,nbt={Passengers:[{id:"minecraft:armor_stand",CustomName:"\"deathdetect\""}]}] at @s anchored eyes if entity @e[type=armor_stand,name=deathdetect,distance=..20] run tag @e[type=armor_stand,name=deathdetect,distance=..20,limit=1] remove trigger

Ce qu'il est censé faire, c'est détecter que le zombie n'est plus là en vérifiant s'il a toujours le trigger tag, avant de transformer le bloc sous la porte en fer en bloc de redstone :

execute as @e[type=armor_stand,name=deathdetect,tag=trigger] at @s run setblock -111 32 43 redstone_block

et a conclu en tuant le stand d'armure avec

kill @e[type=armor_stand,tag=trigger]

Le problème que je rencontre est le suivant : lorsque je fais apparaître le zombie, l'étiquette de déclenchement n'est jamais retirée du support de l'armure, ce qui a pour effet de sauter le premier bloc de commande de la chaîne. J'ai construit le système de façon à ce qu'il passe d'un bloc de commande d'impulsion à trois blocs de chaîne, mais il est clair que j'ai fait une erreur.

Pour référence, voici le zombie que j'essaie de faire apparaître :

/summon zombie -110 33 40 {OnGround:0b,NoGravity:0b,Glowing:1b,CustomNameVisible:1b,PersistenceRequired:1b,NoAI:0b,Rotation:[-180F,0F],Passengers:[{id:"minecraft:armor_stand",NoGravity:1b,Invulnerable:1b,Marker:1b,Invisible:1b,NoBasePlate:1b,PersistenceRequired:1b,Tags:["is alive"],CustomName:"{\"text\":\"deathdetect\"}"}],CustomName:"{\"text\":\"Red Darknut\",\"color\":\"red\",\"bold\":true,\"underlined\":true}",HandItems:[{id:"minecraft:iron_sword",Count:1b,tag:{Unbreakable:1b}},{id:"minecraft:shield",Count:1b,tag:{Unbreakable:1b,BlockEntityTag:{Base:15,Patterns:[{Pattern:mc,Color:11},{Pattern:gru,Color:5},{Pattern:gru,Color:0},{Pattern:flo,Color:5},{Pattern:flo,Color:0},{Pattern:cbo,Color:5},{Pattern:cbo,Color:0}]}}}],HandDropChances:[0.0F,0.0F],ArmorItems:[{id:"minecraft:chainmail_boots",Count:1b,tag:{Unbreakable:1b}},{id:"minecraft:chainmail_leggings",Count:1b,tag:{Unbreakable:1b}},{id:"minecraft:chainmail_chestplate",Count:1b,tag:{Unbreakable:1b}},{id:"minecraft:chainmail_helmet",Count:1b,tag:{Unbreakable:1b}}],ArmorDropChances:[0.0F,0.0F,0.0F,0.0F]}

Des indices sur ce que j'ai fait de mal ? Je sais avec certitude que c'est dans le retrait de la balise de déclenchement, mais je n'arrive pas à savoir exactement comment le réparer.

7voto

Tu pourrais juste taguer le zombie à la place.

/tag @e[type=zombie,distance=..10] add alive

Vous pouvez utiliser un sélecteur de cible différent, mais assurez-vous que seuls les mobs qui doivent être tués obtiennent cette balise. Cela fonctionnera également avec des entités multiples, où vous devrez toutes les tuer.

Et ensuite, un bloc de commandement vérifie si un mob avec la balise alive existe

/execute unless entity @e[tag=alive] run setblock <your coordinats> minecraft:redstone_block

AlleGamers.com

AlleGamers est une communauté de gamers qui cherche à élargir la connaissance des jeux vidéo.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X