Résolu Modifier le loot d'une entité.

Venatorem

Architecte en herbe
12 Juillet 2016
74
9
48
28
Bonjour,

J'ai un petit problème pour une map...
Je souhaite que les zombies arrête de dropper leur Rotten Flesh, mais drop à la place une émeraude (lorsqu'ils meurent).
Le gamerule do mob looting enlève tout type de drop, alors j'ai essayer avec un Passengers:
/summon Zombie ~ ~1 ~ {Passengers:[{id:"Item",Item:{id:"minecraft:emerald",Count:1}}]}

Mais c'est assez gênant car on voit d'une part l'item qui dépasse du zombie et en plus il suffit juste de lui passer dessus pour le récupérer sans même le tuer...
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Le meilleur serait de passer par des loots-tables (fichier externe au jeu), mais, sinon, tu fais un petit système détectant la rotten flesh, faisant pop un ermeraude avant de se détruire :p
 

Venatorem

Architecte en herbe
12 Juillet 2016
74
9
48
28
J'ai pas spécialement envie de passer par le fichier interne du jeu :/. Après, l'idée de faire pop une émeraude sur la rotten flesh me parait complexe niveau nombre d'entité présente, lag, tout ça ^^ Mais est-ce que à travers un scoreboard qui détecte un kill de mob et qui donne un émeraude, c'est possible ? Si oui comment ?
 

Oromis

Command-blocker slimesque
Staff
Modérateur
Support
11 Février 2014
3 345
2
1 053
297
24
Bretagne
Oui, mais tu auras tout de même la rotten flesh
 

Myuto

Une pomme
22 Juin 2016
398
174
155
Je pense que la méthode la plus simple et avec le moins de lag c'est les tables de loot. D'accord tu dois passer par les fichiers du jeu mais c'est pas compliqué. (je sais pas si c'est considéré comme de la pub) Tu a ce site http://minecraft.tools/fr/loots.php, qui te permet de générer une table de loot et qui t’explique comment ça fonctionne.
Si tu a peur de faire quelque chose qui pourrait détruire ta map, fais une sauvegarde de ta map sur un autre fichiers.
 

Gaël Erhlich

Installateur de radiateurs
21 Décembre 2014
1 544
382
217
Ici-même
sinon, tu fais un petit système détectant la rotten flesh, faisant pop un ermeraude avant de se détruire :p

Juste pour ta méthode, puisque la rotten et l'émeraude sont le même type d'entité, tu peux directement passer par un entitydata, tu peux gagner une minute à chaque fois que tu dois faire ce genre de truc. :3
 
C

Compte supprimé

Invité
Salut,

J'avais fait un système similaire. Tu mets un Passenger invisible (un ArmorStand renommé, par exemple).
Quand tu tues ton monstre, l'ArmorStand va toucher le sol et obtenir le tag "OnGround:1". Quand tu détectes le tag, tu fais lancer un summon d'un item par l'ArmorStand avant de le détruire.