Aller au contenu

Nouveau membre ?! Pense à te présenter pour accéder au contenu du forum !

New member ?! Introduce yourself to get access to the forum !

Messages recommandés

 

Niveau requis  : Débutant

Temps estimé : Entre 15 et 30 minutes

 

Bonjour à tous,

 

Si vous lisez ce tutoriel c'est que vous souhaitez en apprendre plus sur les magasins de Metin2 n'est-ce pas ? Alors prenez le temps de lire et vous allez apprendre deux à trois petites choses concernant ces magasins !

Tout d'abord il existe deux types de magasins, le simple (lorsque vous cliquez sur les PNJ's une fenêtre de magasin s'ouvre directement ) ou alors les magasins multiples (lorsque vous cliquez sur les PNJ's vous allez avoir plusieurs choix de magasins / exemple : Épées, Dagues...).

 

A propos : Avant d'appliquer un magasin veillez à avoir un pnj, si vous souhaitez implanter un nouveau pnj pour lui placer des magasins suivez donc ces tutoriels avant de suivre celui-ci : - Implanter un monstre/PNJ

                                                                   -Gèrer les spawns

 

A propos² :  Si un PNJ est déjà lié à une quête (par exemple le Forgeron) il faut impérativement créer le magasin via une quête (donc suivez la partie magasins multiples). Sinon le PNJ ne vous proposera que les quêtes déjà liées sans pour autant vous ouvrir le magasin.

 

I°/Créer un magasin de type SIMPLE

 

Il faudra simplement utiliser navicat, n'est-ce par merveilleux ? Bon peut-être un peu l'item_names.txt si vous souhaitez connaître l'ID d'un item et le mob_names.txt pour l'ID d'un PNJ !

 

Alors commençons !

 

Allez sur navicat, plus particulièrement sur votre base de données player, nous nous servirons uniquement de la table shop et de la table shop_item. La table shop permet de créer le magasin en lui même et la table shop_item permet d'associer un item en vente à un magasin entre autre de le remplir.

 

254527shop.jpg

 

 

Premièrement nous allons créer notre magasin ! (Ne mettons pas la charrette avant les bœufs voyons ! ) Pour cela, rendez-vous dans la table shop et observons nos petites colonnes ! 

 

254914shop1.jpg

 

vnum = Un nombre que vous allez donner à votre magasin (un numéro d'identification) mais attention ! Vérifiez que le vnum n'est pas déjà utilisé par un autre magasin ! donc ici nous avons des vnum allant de 1 à 6 (donc le serveur identifie les magasins de sorte à lire  Magasin 3 = Shop = La Marchande)

Name = Alors, le name est totalement inutile. Mais vous pouvez l'utiliser pour vous indiquer le contenu du magasin. Cela peut vous servir de repère.

npc_vnum = C'est l'id de votre pnj , là c'est à vous de retrouvez l'id de votre pnj via le mob_names ou mob_proto (exemple ici, 9001 = Marchand d'armes , 9003 = Marchande, 9009 = Pêcheur etc...)

 

Une fois votre ligne personnalisée créée, sauvegardez tout cela ! Passons à la deuxième étape ! Ouvrez donc votre table shop_item maintenant et observons les colonnes à nouveau !

 

255828shop2.jpg

 

shop_vnum = Vous vous souvenez du nombre que vous avez choisi pour votre magasin ? C'est ici qu'il faut le placer ! Ainsi le serveur pourra lire que  shop_vnum (Magasin) possède l'item (item_vnum) avec une quantité égale à (count)

item_vnum = Si vous avez suivi la ligne écrite au dessus, vous avez compris que l'item_vnum correspond à l'ID de votre item en question (trouvable dans l'item_names ou item_proto)

count =  C'est tout simplement la quantité à vendre, attention vérifiez que votre item est empilable sinon le magasin va écrire que votre item sera vendu par 200 mais vous n'en recevrez qu'un seul dans votre inventaire

 

Sauvegardez vos lignes ajoutées et rebootez votre serveur ! Maintenant cliquez sur votre PNJ et le tour est joué ! Bravo vous avez crée un magasin simple !

 

 

 

II°/Créer des magasins multiples

 

Alors pour ceux qui ont lu mon introduction vous savez donc qu'un magasin simple ne peut pas s'accorder avec une quête déjà présente (exemple Forgeron qui possèdent déjà 4 quêtes) entre autre il faudra proposer votre magasin dans les choix de quêtes lorsque vous cliquez sur le PNJ. Sinon vous souhaitez juste avoir plusieurs magasins sur un seul et même PNJ !

 

Ici on va se servir de Navicat de Winscp, de Notepadd++ et de votre logique ! Logique ! 

 

Première étape ! La création de vos magasins ! Pour cela rendez-vous sur navicat, dans votre base de données player et cherchez la table shop !

 

251859shop.jpg

 

 

Ouvrez cette table et observons les colonnes ! Attention l'utilisation des colonnes est différente que lorsque l'on crée un magasin simple. (En réalité certaines deviennent inutiles tout simplement)

 

251937shop1.jpg

 

vnum = C'est un numéro qui identifiera votre magasin, un vnum = un magasin , vous ne pouvez pas utiliser deux fois le même nombre ! 

name = Cette colonne est inutile mais vous pouvez écrire un nom afin de vous repérez plus facilement dans vos magasins (dans la BDD)

npc_vnum = Pour les magasins multiples cette colonne est inutile car en réalité les magasins seront liés à une quête, je vous expliquerai la quête juste après ces lignes !

 

 

Du coup une fois que vous avez crée vos nouvelles lignes, sauvegardez tout cela ! Et rendez-vous sur Notepadd++ , ne soyez pas surpris par la quête, elle peut paraître compliquée à comprendre mais au final elle est très simple !

Prenons une petite quête de test (oú j'ai volontairement retiré les ID etc..) 

 

quest NOMQUETE begin
	state start begin

			when IDPNJ.chat."NOMSHOP" begin
				npc . open_shop( IDSHOP )
				setskin(NOWINDOW)
			end

			when IDPNJ.chat."NOMSHOP" begin
				npc . open_shop( IDSHOP )
				setskin(NOWINDOW)
			end

			when IDPNJ.chat."NOMSHOP" begin
				npc . open_shop( IDSHOP )
				setskin(NOWINDOW)
			end
		end
	end

 

Mais qu'est-ce que c'est ce bordel hein ? Je vais expliquer ce que vous devez remplacer ! Et/ou ajouter !

BON !

 

NOMQUETE = Vous l'avez deviné ? C'est le nom de votre quête, choisissez un nom simple & efficace par exemple magasinsmult !

IDPNJ = L'id de votre pnj que vous pouvez retrouvez dans votre mob_proto ou mob_names (Exemple Marchande = 9003)

NOMSHOP = Alors tout d'abord ne supprimez pas les " " sinon vous allez casser la quête, mais encore une fois choisissez un nom qui ici représentera le contenu de votre magasin (Exemple : Épées, Dagues, Arcs)

IDSHOP = Le vnum (souvenez vous de la première colonne de la table shop) , c'est ici qu'il faut le mettre ! Et n'oubliez pas un vnum = un magasin

 

Alors pour ceux qui veulent bien plus de 3 magasins avec des PNJ différents, il vous suffit de copier coller ce bout de code à la suite du premier et de le modifier, tout simplement. Après vous pouvez ajouter des commentaires pour mieux vous y retrouvez (les commentaires n'apparaissent pas en jeu)

 

			when IDPNJ.chat."NOMSHOP" begin
				npc . open_shop( IDSHOP )
				setskin(NOWINDOW)
			end

 

Exemple avec un commentaire : 

 

---Mon commentaire exemple disons que le code en dessous correspond a la marchande---
			when IDPNJ.chat."NOMSHOP" begin
				npc . open_shop( IDSHOP )
				setskin(NOWINDOW)
			end

 

De ce fait après de bonnes modification voici une quête d'exemple : 

 

Révélation
quest magasinsmult begin
	state start begin

			when 9001.chat."Épées" begin
				npc . open_shop( 101 )
				setskin(NOWINDOW)
			end

			when 9001.chat."Dagues" begin
				npc . open_shop( 102 )
				setskin(NOWINDOW)
			end

			when 9001.chat."Arcs" begin
				npc . open_shop( 103 )
				setskin(NOWINDOW)
			end
		end
	end

 

 

Vous allez me dire mais qu'est-ce qu'on fait avec ça sur Notepadd ++ maintenant ? Enregistrez la sous format .quest et mettez dans la dans le fichier metin2/share/locale/france/quest

 

254341shop3.jpg

 

Maintenant qu'elle est mise dans le bon fichier, il va falloir la déclarer auprès du serveur (un peu comme déclarer un nouvel enfant auprès d'une mairie) et donc dans le fichier quest oú se trouve votre quête, il y aura un fichier nommé locale_list. Ouvrez le et ajoutez votre quête tout à la fin (et laissez une ligne vide)

 

254618shop4.jpg

 

Sauvegardez et faites un sh quest.sh sur votre console (ou vdi ou vhd ou virtualbox peu importe comment vous appelez ça)

In game faites un reload q avec un personnage GM. 

 

Voici donc le résultat de notre quête d'exemple  ! 

 

254852shop5.jpg

 

Attendez ne partez pas ! Il reste encore vos magasins à remplir (Rappel qu'un magasin simple sera présenté de la même manière si il est déclaré avec une quête déjà présente et dans ce cas de figure au lieu de mettre un nom de type Épées mettez plus un : Ouvrir mon magasin)

 

Revenons à Navicat ! Ouvrez la table shop_item présente dans la base de données player !

 

255206shop2.jpg

 

shop_vnum = Au vnum (première colonne de la table shop) soit le nombre qui identifie votre magasin !

item_vnum = L'ID de votre item (retrouvable dans l'item_proto ou l'item_names , par exemple 19 = Épée +9)

count =  C'est tout simplement la quantité à vendre, attention vérifiez que votre item est empilable sinon le magasin va écrire que votre item sera vendu par 200 mais vous n'en recevrez qu'un seul dans votre inventaire

 

Ajoutez vos lignes et sauvegardez ! Maintenant faites un reboot via votre console et voilà vos magasins multiples sont créées et remplis !

 

Si vous avez des questions n'hésitez pas à les poser dans la section A/Q/S et j'espère que ce tutoriel vous sera utile !

 

Tutoriel écrit par Mei

Partager ce message


Lien à poster
Partager sur d’autres sites

×

Information importante

By using this site, you agree to our Conditions d’utilisation.