6 votes

Comment puis-je empêcher l'apparition de nouveaux échanges de villageois?

Lors de la création d'une carte d'aventure personnalisée, vous souhaitez généralement que seuls les échanges que vous avez programmés pour un villageois apparaissent. Par défaut, cependant, le jeu essaiera de faire apparaître de nouveaux échanges une fois le dernier effectué. La méthode classique que je vois dans les tutoriels pour empêcher de nouveaux échanges est de rendre le dernier échange non échangeable; cependant, avec la sortie de la version 1.7, de nombreux anciens ID d'objets qui étaient introuvables ont été supprimés du jeu, et en suivant le tutoriel, mon jeu plante lorsque l'interface d'échange est fait défiler jusqu'au dernier échange.

Il y a donc deux parties à cette question:

  1. Existe-t-il un meilleure façon d'empêcher de nouveaux échanges avec les mécanismes de la version 1.7? Ou avec les versions de test de la version 1.8?
  2. Si ce n'est pas le cas, quel est l'ID de données sécurisé à utiliser pour empêcher le dernier échange d'être un véritable échange à partir de la version 1.7?

5voto

Caleb Reister Points 111

Un de vous a dit que le niveau de carrière maximum est de 4, alors j'ai utilisé cette commande

/summon Villager ~ ~1 ~ {Profession:0,Career:2,CareerLevel:4,Offers:{Recipes:[{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:8,tag:{display:{Name:"Coin"}}},sell:{id:wooden_sword,Count:1,tag:{Unbreakable:1,display:{Name:"Sturdy Stick"}}}},{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:12,tag:{display:{Name:"Coin"}}},sell:{id:golden_sword,Count:1,tag:{AttributeModifiers:[{AttributeName:"generic.movementSpeed",Name:"generic.movementSpeed",Amount:-.10,Operation:1,UUIDLeast:112181,UUIDMost:524106}],Unbreakable:1,ench:[{id:16,lvl:1}]}}},{rewardExp:0b,maxUses:2147483647,uses:0,buy:{id:double_plant,Count:2,tag:{display:{Name:"Coin"}}},sell:{id:leather,Count:1}}]},Attributes:[{Name:generic.movementSpeed,Base:0}],PersistenceRequired:1,ActiveEffects:[{Id:10,Amplifier:50,Duration:133333333333320,ShowParticles:0b},{Id:21,Amplifier:60,Duration:1333333333333333200}]} 

et a réglé le niveau de carrière à 4, cela crée un villageois avec un niveau de carrière de 4 qui échangera des tournesols nommés Coin contre certains objets. Maintenant, j'ai testé cela plusieurs fois pour m'assurer que j'avais raison, et c'était le cas, en réglant le niveau de carrière à 4, on empêche l'apparition de nouveaux échanges. Je ne suis pas sûr si cela fonctionne en 1.9, 1.10 ou 1.11 car je joue toujours en 1.8.9.

4voto

MrLemon Points 17073

Je ne sais pas grand-chose sur le commerce des villageois personnalisés, et un examen rapide de la structure NBT des villageois ne m'a rien révélé de nouveau.

Quant à votre deuxième point, il y a un bloc technique parfait qui devrait fonctionner pour les versions plus récentes : Le Barrière.

Non seulement il est impossible à obtenir sans mode créatif/commandes, mais son icône est la suivante :

entrez la description de l'image ici

Son ID d'objet est barrière, donc vous pouvez essayer

/summon Villageois ~ ~ ~ {
  Offres:{Recettes:[
    {maxUtilisations:1337,achat:{id:diamant},vente:{id:émeraude}},
    {maxUtilisations:1,achat:{id:barrière,tag:{display:{Nom:Plus de transactions}}},vente:{id:barrière,tag:{display:{Nom:Plus de transactions}}}}
  ]}}

Qui vend des Barrières renommées pour des Barrières renommées. Vous pourriez avoir besoin d'utiliser minecraft:barrière au lieu de simplement barrière, je ne suis pas sûr de ça.

2voto

Muz Points 21

Je suis presque certain à cent pour cent que l'autre commentaire ne fonctionnera pas. Cependant, ce qui fonctionnera est ceci :

/summon Villager ~ ~ ~ {CustomName:Billy,Profession:4,CareerLevel:6,Offers:{Recipes:[{maxUses:99999,buy:{id:"minecraft:emerald",Damage:0,Count:10},buyB:{id:"minecraft:book",Damage:0,Count:1},sell:{id:"minecraft:dye",Damage:5,Count:20}}]}}

Lorsque cette commande est déclenchée, elle invoquera un villageois nommé Billy, qui porte un tablier blanc. Il vous échangera 20 colorants violets contre 10 émeraudes et 1 livre. Un échange étrange, mais ça fonctionne.

Je sais que vous avez probablement abandonné ou trouvé une autre solution à l'heure actuelle, mais ceci est pour ceux qui tomberont sur cette question/réponse plus tard.

0voto

Robert Points 111

Vous ne pouvez pas les empêcher d'apparaître dans de nouveaux échanges, j'ai créé un bloc chanceux qui fait apparaître un villageois chanceux mais il continue à améliorer ses échanges.

-1voto

user171200 Points 1

Utilisez entitydata chaque fois que le joueur est échangé en utilisant le tableau de bord stat.tradedWithVillager pour réinitialiser l'échange du villageois. Cela pourrait entraîner des lags s'il y a trop de villageois, mais je pense que c'est le meilleur moyen d'empêcher un nouvel échange.

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