4 votes

mob Arena - mob contre mob

Je veux créer une arène où les mobs s'affronteront et où un joueur pourra parier sur un côté ou l'autre. Par exemple : Il y a 2 squelettes en armure teintée ; rouge et bleu. Chaque couleur représente une équipe. Quand ils apparaissent, je veux qu'ils se battent entre eux et quand l'un d'entre eux meurt, je veux qu'il annonce quelle équipe a gagné et donne au joueur l'argent qui lui est dû. Je ne sais pas comment faire pour que les squelettes s'attaquent les uns aux autres sans qu'un joueur en soit l'instigateur.

7voto

Skylinerw Points 12529

En 1.8.8, la seule façon de faire en sorte qu'un squelette attaque un autre squelette est de manipuler leurs cibles en utilisant des UUIDs personnalisés ( Identificateur unique universel ), ainsi que le ownerName sur des entités projectiles particulières, à savoir Snowball y ThrownPotion .

Sachez que vous devez pas créer des entités multiples avec le mismo UUID, car ils sont censés être uniques. Dans la version 1.8, vous rencontrerez des problèmes de ciblage, tandis que dans la version 1.9, les entités avec des UUIDs dupliqués seront supprimées lors du chargement du chunk.

Cibler

A titre d'exemple, les deux squelettes à invoquer, chacun avec un UUID :

1.8 :

/summon Skeleton ~ ~1 ~ {UUIDLeast:1l,UUIDMost:1l,CustomName:"A",Equipment:[{id:"minecraft:bow"}]}
/summon Skeleton ~ ~1 ~ {UUIDLeast:2l,UUIDMost:2l,CustomName:"B",Equipment:[{id:"minecraft:bow"}]}

1.9 :

/summon Skeleton ~ ~1 ~ {UUIDLeast:1l,UUIDMost:1l,CustomName:"A",HandItems:[{id:"minecraft:bow"}]}
/summon Skeleton ~ ~1 ~ {UUIDLeast:2l,UUIDMost:2l,CustomName:"B",HandItems:[{id:"minecraft:bow"}]}

Lorsqu'un projectile qui utilise le ownerName frappe un mob, ce mob ciblera l'entité qui a l'UUID spécifié dans cette étiquette. Par exemple, la phrase suivante fera en sorte que le squelette A attaque le squelette B, car elle suppose que le squelette B a lancé la boule de neige :

/execute @e[type=Skeleton,name=A] ~ ~ ~ summon Snowball ~ ~4 ~ {Motion:[0.0,-1.0,0.0],ownerName:"00000000-0000-0002-0000-000000000002"}

Et de même, ce qui suit fait que B attaque A :

/execute @e[type=Skeleton,name=B] ~ ~ ~ summon Snowball ~ ~4 ~ {Motion:[0.0,-1.0,0.0],ownerName:"00000000-0000-0001-0000-000000000001"}

En 1.9, vous pouvez faire en sorte qu'un mob en chevauche un autre, et le "cavalier" prendra le contrôle du mouvement. Cependant, le cavalier est celui qui attaque. Si un zombie chevauche un squelette, le zombie fera en sorte que le squelette se déplace à distance de combat et le zombie lui-même attaquera, ce qui signifie que le combat à distance n'est pas possible avec cette méthode.

À titre d'exemple, ce qui suit fera en sorte que le squelette se déplace à portée d'attaque de mêlée des villageois en 1.9 :

/summon Skeleton ~ ~1 ~ {Passengers:[{id:"Zombie"}]}

Détecter la mort

Aucun sélecteur de cible ne peut cibler les mobs morts ou mourants, pas plus que les types d'objectifs à incrémentation automatique (tels que les deathCount ) piste mobs. Il existe quelques solutions de contournement, dont la plus simple consiste à tester la simple existence du mob et à inverser le signal.

Le suivant testera simplement l'existence du mob, tandis que vous inverserez le signal. Si le mob a été trouvé, le signal sera désactivé. Si le mob meurt, il ne sera plus trouvé et le signal sera allumé :

/testfor @e[type=Skeleton,name=A]
/tellraw @a ["Skeleton A won!"]

/testfor @e[type=Skeleton,name=B]
/tellraw @a ["Skeleton B won!"]

Notez que si vous déchargez le chunk où se trouve le squelette alors que le mécanisme est toujours chargé, le bloc de commande retournera false puisqu'il ne peut pas trouver le squelette.

0 votes

Existe-t-il un moyen de faire cela dans l'édition Bedrock ?

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