Tutoriel (Logiciel) Modifier les offres des villageois

Longhuo

Ninja au cube
23 Août 2012
81
20
38
28
Salut à tous, je suis très heureux de poster mon tout premier tuto, à savoir comment changer les offres des villageois.

Commençons.
Il nous faudra le logiciel NBTexplorer (je vous renvoie au minecraftforum, je ne pense pas que vous aurez beaucoup de difficultés)

Une fois téléchargé, lancez minecraft et ouvrez le monde qui vous intéresse.
(Le mien s'appelle TEST)
Créez ou trouvez votre villageois (comme je suis sadique, j'ai enfermé le mien autour de barrières :mobspider:)



Regardez ensuite les offres de ce villageois :



Donc ici, notre villageois achète 11 émeraudes pour vendre 1 pioche de diamant.

Une fois que vous avez noté cela, quittez minecraft et fermez-le.

Ouvrez ensuite NBTexplorer, vous allez tomber sur une structure en arborescence avec vos differents mondes. Cliquez sur le monde qui nous interesse :



Il y a 3-4 choses à expliquer :
-le dossier players concerne les joueurs et leurs différentes options : leur vie, si il touche le sol ou non...
-le dossier région concerne les tronçons et tout ce qu'il y a dessus (mob, bloc ...), c'est celui-ci qui nous intéresse.
-le level.dat concerne le monde en général, comme son nom ou le temps qu'il y fait.
-le dossier data concerne les cartes (l'objet)

De toute manière, on ne va pas regarder à chaque chunk pour trouver notre villageois. On va utiliser la fonction find (les petites jumelles dans la barre d'outil). On obtient ça:



Il faut savoir que chaque information est désigné par:
le nom de cette information
la valeur de cette information

ici on va chercher des émeraudes, car on est sûr de les trouver dans les offres qu'on souhaite modifier. Une émeraude est un objet, et tout objet a un id. l'id de l'émeraude est 388. Cochez donc value et écrivez à côté 388. La fonction find va chercher une information qui a pour valeur 388. Moi elle m'a trouvé :



Petite erreur de ma part: ce qui sera en bleu pour vous sera la ligne "id:388"
cette ligne appartient à la boîte "buy"
une boite contient des informations, la boite buy contient des informations sur l'objet que va acheter le villageois, a savoir :
-l'information "count" désigne le nombre d'objets (ici 11, souvenez vous, les 11 émeraudes...)
-l'information "damage" désigne les dégâts de l'objet (pas d'importance ici)
-l'information "id" désigne la nature de l'objet (donc ici, 388=émeraude)

la boite "sell" correspond comme vous l'avez deviné, à ce que vous vend le villageois en retour, il contient les même informations.

Ici on a bien vérifié que l'offre correspond avec ce que nous avons vu en jeu: il achète bien 11 émeraudes et il nous vend bien 1 pioche de diamant (id:278)

Si ça ne correspond pas, recliquez sur find.

Maintenant que nous avons trouvé la bonne offre nous pouvons modifier les valeurs. Pour modifier une information, il faut double-cliquer dessus.

Vous pouvez donc modifier la valeur de "id" afin de changer la nature de l'objet acheté ou vendu.
Ou encore modifier le nombre

Voici un exemple:



voici ce que j'ai changé:
-dans la boite buy, j'ai changé la nature (id) de l'objet par 3 (3=terre), ainsi que sa quantité par 1.
Le villageois achète donc 1 cube de terre
-dans la boîte sell, j'ai changé l'id de la pioche par l'id de l'épée en diamant (276)
Le villageois donne en échange un épée de diamant.

Ainsi on a en jeu :



2) Mettre plusieurs offres.



J'ai pris l'exemple précédent. ici, ce que j'ai encadré est une offre commerciale. Il y a trois choses dans une offre commerciale:
-la boite "buy", ce qu'achète le villageois
-la boite "sell"' ce que vends le villageois
-l'information de type integer (c'est à dire que c'est un nombre entier) "uses", le nombre e fois que tu as conclus l'affaire.
Tu constate donc que ces trois choses appartiennent à la boite que j'ai sélectionné, où il y a écrit "3 entries". "3 entries" est donc une offre commerciale. Elle n'a en réalité pas de nom, "3 entries" désignant le nombre d'information qu'elle possède.
Notre offre commerciale appartient la liste "Recipes". Cette liste contient toutes les offres commerciales de notre villageois. Pour l'instant, elle n'en a qu'une seule. Mais on peut en ajouter.
On va pour cela sélectionner "3 entries" (l'offre commerciale) et le copier (ctrl+c marche très bien, sinon il y a l'icône copier dans la barre d'outil). On va ensuite sélectionner "Recipes" et coller notre "3 entries". On se retrouve avec ça:



Recipes a maintenant 2 boites, qui sont des offres commerciales.
Je les ai encadrés, pour bien voir où ça s'arrête. Mais attention, ces offres sont pour le moment identiques. Il faut donc modifier l'une d'entre elles afin d'avoir deux offres distinctes. Mais pour ça, il faut modifier les information qu'il y a dans les boites "buy" et "sell" des offres commerciales, comme on l'a fait précédemment.

3) mettre deux objets à échanger dans une même offre.

Quand j'ai dis qu'une offre commerciale était composée de :
-Une boite "buy" qui contient les info sur l'objet qu'achète le villageois
-Une boite "sell" qui contient les infos sur l'objet que nous vend le villeagois
-Un nombre entier "uses" qui est le nombre de fois que l'on conclus l'affaire

J'ai menti ;) : On va rajouter à notre offre commerciale une boite appelée "buyB", qui contient les même informations qu'une boite "buy" ou "sell", c'est à dire des infos sur le 2eme objet qu'achète le villageois.

On va reprendre mon exemple où le villageois achète un bloc de terre contre une épée en diamant. On avait ça :



Rappel : la boite "3 entries" est notre offre commerciale.
On va donc rajouter à "3 entries" une nouvelle boite, la boite "buyB".
Mais on va ruser, car on est des fainéants. On va sélectionner la boite "buy" et on va la copier.
On va ensuite sélectionner l'offre commerciale (la boite "3 entries" !) et coller.
On obtient donc :



On constate deux changements :
- la boite "3 entries" s'appelle maintenant "4 entries". Je l'avais dis précédemment, la boite qui désigne l'offre commerciale n'a en réalité pas de nom, et n'indique que le nombre d'informations qu'il contient.
-la boite "buy (Copy 1)" est apparue dans notre offre. C'est cette boite que l'on va renommer.

Renommons donc la boite et appelons-la "buyB" (le B majuscule est important), j'ai indiqué par un trait on ne peut plus rustique sur quelle icône appuyer.

Une fois fait, on va modifier l'intérieur de "buyB": c'est encore une fois la même chose, on modifie "id" par l'id que l'on souhaite, et "count" par le nombre qui t'intéresse.
Pour ma part, j'ai juste remplacé la valeur de "id" par 12, l'id du sable.
On enregistre, on quitte, et on regarde ce que ça donne en jeu.



Voilà pour l'instant, je suis en cours de recherche pour avoir une épée enchantée.
Ciao !!!! :D

4) L'épée enchantée

Tout d'abord, je retourne à mon ancien exemple. Mais j'aimerais insister sur la fonction find de NBTexplorer. Cette fonction va rechercher une ligne en particulier. Il faut donc que l'on choisisse bien notre ligne à rechercher. Quelque chose d'unique, comme l'épée de diamant de mon villageois. Dans mon exemple, je vais maintenant chercher la ligne "id" de valeur "276"(l'id de l'épée de diamant), comme ça:



Et après plusieurs recherches, on obtient ça :



On reconnait bien la boite "buy", les infos sur le bloc de terre, "buyB", les infos sur le bloc de sable, et "sell", les infos sur notre épée de diamant.
Vous vous doutez bien que c'est cette boite qu'on va modifier.
Révisions: quels infos avait un objet jusqu'à présent ?
Réponse :-l'info "count", le nombre d'objets.
-l'info "damage", son nombre de dégâts, valables pour les outils uniquement
-l'info "id", la nature de l'objet

C'est la même chose pour tout les objets, et pas seulement ceux que vendent les villageois.
Mais les objets de l'inventaire ou des coffres ont une chose en plus, l'info "slot", qui est un nombre entier, et qui désigne son emplacement dans l'inventaire ou dans un coffre. Mais ici, on s'en fout.

Le ou les enchantements qu'on va ajouter à l'objet vont être considérés comme des infos "supplémentaires". On va donc ajouter à notre boite "sell" une boite appelé "tag". Pour se faire, sélectionnez "sell" et cliquez sur l'icône en forme de boîte dans la barre d'outil. On obtient ça dans mon exemple :



La boite "tag" est en bleu. Dans cette boite, il y aura toute les infos supplémentaire de notre épée en diamant, donc les enchantements. Mais dans le cas d'un livre édité, "tag" contient le titre, l'auteur, et ce qu'il y a écrit dans le livre.

On va donc ajouter à "tag" une information de type liste, qu'on va appeler "ench". Même manip, on sélectionne "tag" et on clique sur l'icône de la liste (juste à coté de la boite dans la barre d'outil).
J'obtiens:



Comme à notre liste "recipes" (souvenez-vous, la liste qui contient toutes les offres commerciales), la liste "ench" va contenir des boites sans nom. Chacune de ces boites sera un enchantement différent. On va commencer par créer une boite, avec toujours la même méthode. Mais je vais accélérer les choses. Chacune de ces boites contient deux information de type short (dans la barre d'outil, c'est le papier avec un s dessiné dessus):-l'info "id": la nature de l'enchantement
-l'info "lvl": le niveau de l'enchantement

Dans mon exemple il n'y a qu'un seul enchantement :



Mais mon enchantement n'a pas encore de vraie valeur. Je vous renvoie au wiki ici.
Le tableau récapitulatif de la fin nous donne l'id de chaque enchantement (la colonne EID) et son niveau maximal.
On a ce qu'on veut pour modifier les valeurs.
Dans mon exemple on va modifier ces valeurs afin d'avoir "châtiment" de niveau 5 (V):



J'enregistre, je quitte, et je joue et ..............VOILAAAAA !!!!!!
J'ai un problème d'image, mais ça marche.
Si vous avez des questions, n'hésitez pas.
 

Longhuo

Ninja au cube
23 Août 2012
81
20
38
28
Et tu sais comment on fais pour mettre au villageois plusieurs objets à vendre ?
Bien sûr !!!!
Expliquons ça !!
La boite qui contient les boites "buy" et "sell" n'a pas de nom et est considérée comme une offre commerciale.
Il y a aussi dans cette boite l'information "uses" qui est est le nombre de fois que vous avez conclut l'affaire.
cette boite est contenue dans la ligne "Recipes", qui est une liste de boites.
On peut tout à fait ajouter des boites à cette liste .
Il faut tout simplement cliquer sur l'icône en forme de boite après avoir sélectionné "Recipes"
On va ensuite sélectionner son nom, c'est à dire qu'on ne va rien écrire et valider.
A cette nouvelle boite, on va ajouter deux boites (même technique), on va appeler la première ... "buy" et la seconde ..."sell"
on va aussi ajouter un nombre entier, le nombres "uses", en cliquant sur l'icône en forme de feuille avec un "I" inscrit dedans (le I de Integer, entier en anglais). Appelez-le uses et donnez lui la valeur 0. ça n'a pas d'importance, mais 0 c'est mieux.
Passons au remplissage de la boite "buy" et de la boite "sell".
Et là, vous avez compris qu'il faut que ce soit comme les boites "buy" et "sell" que nous avons modifiées. Ainsi, en sélectionnant la boite, cliquez sur les icônes correspondantes et donnez les mêmes noms A LA MAJUSCULE PRES !!!
Pour les valeurs, mettez donc ce que vous voulez.(juste pour damage, je vous conseille de mettre 0)
Vos boites "buy" et "sell" doivent être identiques aux autres boites "buy" et "sell" du jeu, sauf les valeurs des nombres qui sont égals à ce que vous voulez.

Voilà, j'espère avoir répondu à ta question.

Bravo !

C'est super.

Merci Beaucoup, comme c'est mon premier tuto, ça fait très plaisir des messages comme ça.
 
  • J'aime
Reactions: Olivevht

Longhuo

Ninja au cube
23 Août 2012
81
20
38
28
En effet, ce n'était absolument pas clair et j'en suis désolé.
c'est pourquoi j'ai fait une recherche et j'ai trouvé un moyen plus clair.
Mais il faut aussi à mon avis comprendre comment ça marche pour pouvoir se débrouiller ensuite.



J'ai pris l'exemple précédent. ici, ce que j'ai encadré est une offre commerciale. Il y a trois choses dans une offre commerciale:
-la boite "buy", ce qu'achète le villageois
-la boite "sell"' ce que vends le villageois
-l'information de type integer (c'est à dire que c'est un nombre entier) "uses", le nombre e fois que tu as conclus l'affaire.
Tu constate donc que ces trois choses appartiennent à la boite que j'ai sélectionné, où il y a écrit "3 entries". "3 entries" est donc une offre commerciale. Elle n'a en réalité pas de nom, "3 entries" désignant le nombre d'information qu'elle possède.
Notre offre commerciale appartient la liste "Recipes". Cette liste contient toutes les offres commerciales de notre villageois. Pour l'instant, elle n'en a qu'une seule. Mais on peut en ajouter.
On va pour cela sélectionner "3 entries" (l'offre commerciale) et le copier (ctrl+c marche très bien, sinon il y a l'icône copier dans la barre d'outil). On va ensuite sélectionner "Recipes" et coller notre "3 entries". On se retrouve avec ça:



Recipes a maintenant 2 boites, qui sont des offres commerciales.
Je les ai encadrés, pour bien voir où ça s'arrête. Mais attention, ces offres sont pour le moment identiques. Il faut donc modifier l'une d'entre elles afin d'avoir deux offres distinctes. Mais pour ça, il faut modifier les information qu'il y a dans les boites "buy" et "sell" des offres commerciales, comme on l'a fait précédemment.
Voilà, j'ai essayé d'être un peu plus clair mais je sais que c'est dur à assimiler. Si tu rencontre toujours un problème, dis-moi précisément où tu bloques, comme ça je pourrais t'aider en conséquence.
 

draksider

Bucheron
31 Août 2011
126
11
13
Superbe tuto ! Je n'utiliserai pas la chose, mais ton topic est très bien fait, illustrations, exemples etc ...
Bravo !
 

Longhuo

Ninja au cube
23 Août 2012
81
20
38
28
Et on peux mettre combien d'objets à vendre à un villageois ?
J'ai fait le test en jeu, en concluant des affaires avec un villageois, afin qu'il crée lui-même les offres. Il s'est arrêté d'en créer au bout de 12.

Et comment on fais pour mettre 2 objets à vendre contre un objet enchanté ?

Houlà, t'en demande beaucoup là !!!
On va séparer ça en deux chapitres :

1)mettre 2 objet à vendre
Quand j'ai dis qu'une offre commerciale était composée de :
-Une boite "buy" qui contient les info sur l'objet qu'achète le villageois
-Une boite "sell" qui contient les infos sur l'objet que nous vend le villeagois
-Un nombre entier "uses" qui est le nombre de fois que l'on conclus l'affaire

J'ai menti ;) : On va rajouter à notre offre commerciale une boite appelée "buyB", qui contient les même informations qu'une boite "buy" ou "sell", c'est à dire des infos sur le 2eme objet qu'achète le villageois.

On va reprendre mon exemple où le villageois achète un bloc de terre contre une épée en diamant. On avait ça :



Rappel : la boite "3 entries" est notre offre commerciale.
On va donc rajouter à "3 entries" une nouvelle boite, la boite "buyB".
Mais on va ruser, car on est des fainéants. On va sélectionner la boite "buy" et on va la copier.
On va ensuite sélectionner l'offre commerciale (la boite "3 entries" !) et coller.
On obtient donc :



On constate deux changements :
- la boite "3 entries" s'appelle maintenant "4 entries". Je l'avais dis précédemment, la boite qui désigne l'offre commerciale n'a en réalité pas de nom, et n'indique que le nombre d'informations qu'il contient.
-la boite "buy (Copy 1)" est apparue dans notre offre. C'est cette boite que l'on va renommer.

Renommons donc la boite et appelons-la "buyB" (le B majuscule est important), j'ai indiqué par un trait on ne peut plus rustique sur quelle icône appuyer.

Une fois fait, on va modifier l'intérieur de "buyB": c'est encore une fois la même chose, on modifie "id" par l'id que l'on souhaite, et "count" par le nombre qui t'intéresse.
Pour ma part, j'ai juste remplacé la valeur de "id" par 12, l'id du sable.
On enregistre, on quitte, et on regarde ce que ça donne en jeu.



Voilà !!!!!!!! c'est la fin de la première partie.

Mais l'épée n'est pas enchantée ????
Hé oui, il faut attendre la partie 2 pour ça, mais avant, je vais faire quelques recherche sur l'enchantement justement afin de pas dire de conneries.

Comme toujours, si tu as des questions sur n'importe quoi, n'hésite pas ;).
 
  • J'aime
Reactions: Olivevht