Solarus Wiki

A wiki for the Solarus engine community

Outils pour utilisateurs

Outils du site


fr:tutorial:how_to_make_a_shop

Différences

Cette page vous affiche les différences entre la révision choisie et la version actuelle de la page.

Lien vers cette vue comparative

fr:tutorial:how_to_make_a_shop [2018/12/22 14:14] (Version actuelle)
Ligne 1: Ligne 1:
 +[[{:​wiki:​arrow_left.png|width:​137px;​float:​left;​}fr:​tutorial:​money_system|Chap. 14]][[{:​wiki:​arrow_right.png|width:​137px;​float:​right;​}fr:​tutorial:​npc_first_part|Chap. 16]][[{:​wiki:​home.png|width:​132px;​}fr:​tutorial:​create_your_2d_game_with_solarus|Sommaire]]
  
 +====== Chapitre 15 : Mise en place d'une boutique ======
 +
 +Dans ce chapitre, nous allons utiliser le système monétaire créé dans le chapitre précédent pour acheter des objets dans une boutique. Si vous avez suivi les anciens exercices, vous devriez déjà avoir une boutique de prête en terme de map, sinon n'​oubliez pas de la créer. Cette boutique sera la base d'une chaîne d'​échange développée un peu plus tard.
 +
 +===== Ressources =====
 +
 +De {{:​fr:​tutorial:​ressources015.zip|nouvelles ressources}} sont nécessaires pour ce chapitre : il s'agit des sprites pour les divers PNJs présents dans //Zelda Mystery of Solarus DX//, ainsi qu'un fichier système demandé automatiquement par le jeu qui est : //​sprites/​entities/​rupee_icon.dat//​. Comme à l'​accoutumée,​ n'​hésitez pas à prendre le [[https://​github.com/​Renkineko/​solarus_tutorial/​archive/​base15.0.zip|dossier de base]] avec le dossier project_db.dat déjà mis à jour.
 +
 +===== Création d'​items =====
 +
 +Nous allons préparer le terrain. Dans un premier temps nous achèterons le Miroir Mystique, puis nous l'​échangerons avec la Pierre de Feu et enfin avec la Clé d'Os. Ces items sont ce qu'on appelle des items d'​équipement,​ c'​est-à-dire qu'ils n'ont aucune autre utilité que d'​exister et donc de modifier le comportement de certains PNJs ou éléments si vous les avez débloqués dans votre sauvegarde. Attelons-nous de suite à créer ces trois items. Normalement vous avez l'​habitude maintenant : vous allez dans l'​éditeur de quête et sur item vous faites trois fois "​Add"​.
 +  * ID : mystic_mirror ; Name : Mystic Mirror.
 +  * ID : fire_stone name ; Name : Fire Stone.
 +  * ID : bone_key ; Name : Bone Key.
 +
 +==== Code des items ====
 +
 +Le code de ces items est très simple, vous pouvez même le faire directement dans l'​éditeur :
 +
 +<code lua>
 +local item = ...
 +
 +function item:​on_created()
 +  -- Define the properties
 +  item:​set_savegame_variable("​possession_mystic_mirror"​)
 +end
 +</​code>​
 +
 +Ici c'est le code du Miroir Mystique, mais vous vous doutez du code résultant pour la Pierre de Feu et la Clé d'Os.
 +
 +==== Graphismes des items ====
 +
 +Aucun besoin de faire des graphismes car nous avons nommés nos objets comme des items déjà existants dans //Zelda Mystery of Solarus DX// dont on a pris les ressources. Aussi, si vous analysez le code dans sprites/​entities/​items.dat vous remarquerez qu'il y a un sprite s'​appelant fire_stone, bone_key et mystic_mirror. Si vous voulez ajouter des items d'​équipement,​ les sprites correspondant devront se trouver dans ce fichier. Cela sous-entend que vous devrez modifier ce fichier si vous voulez créer complètement des items d'​équipement et non pas en utiliser des déjà existants.
 +==== Dialogue des items ====
 +
 +Lorsqu'​un item est acheté, il y a le même dialogue qui s'​enclenche que quand il est trouvé dans un coffre. Il est donc nécessaire de définir un dialogue pour chacun de ces items. Ajoutez donc le code suivant dans le fichier languages/​fr/​text/​dialogs.dat à la ligne 233 juste après les dialogues des rubis :
 +
 +<code lua>
 +
 +-- Miroir Mystique
 +dialog{
 +  id = "​_treasure.mystic_mirror.1",​
 +  icon = 14,
 +  text = [[
 +Tu as trouvé le
 +Miroir Mystique !$0
 +
 +A quoi peut-il bien
 +servir ?
 +]]
 +}
 +-------------------
 +
 +-- Pierre de Feu
 +dialog{
 +  id = "​_treasure.fire_stone.1",​
 +  icon = 34,
 +  text = [[
 +Tu as trouvé la
 +Pierre de Feu !$0
 +
 +Etrangement,​ elle
 +ne brûle pas les
 +mains qui l'ont.
 +]]
 +}
 +-------------------
 +
 +-- Clé d'Os
 +dialog{
 +  id = "​_treasure.bone_key.1",​
 +  icon = 20,
 +  text = [[
 +Tu as trouvé la
 +Clé d'Os !$0
 +
 +S'il y a une clé,
 +il doit y avoir une
 +serrure à ouvrir !
 +]]
 +}
 +-------------------
 +
 +-- Coeur
 +dialog{
 +  id = "​_treasure.heart.1",​
 +  icon = 84,
 +  text = [[
 +Tu as trouvé un
 +Coeur de Vie !$0
 +
 +Ta fatigue
 +s'​estompe
 +légèrement.
 +]]
 +}
 +-------------------
 +
 +-- Description Miroir Mystique
 +dialog{
 +  id = "​shop.desc_mystic_mirror",​
 +  icon = 14,
 +  text = [[
 +Un magnifique mais
 +étrange miroir. ​
 +]]
 +}
 +-------------------
 +
 +-- Description Coeur
 +dialog{
 +  id = "​shop.desc_heart",​
 +  icon = 84,
 +  text = [[
 +Un petit Coeur qui
 +pourrait te donner
 +du courage.
 +]]
 +}
 +-------------------
 +</​code>​
 +
 +Nous avons aussi ajouté le dialogue du Coeur de Vie car il sera en vente aussi pour une somme dérisoire. Tant que nous sommes dans le fichier des dialogues, il y a un bug qu'il faut régler immédiatement car sinon le dialogue qui s'​affichera pour acheter l'​objet ne se terminera pas en question. Pour cela, allez à la ligne 381 (id du dialogue : ''​_shop.question''​) et ajoutez la ligne ''​question = true,''​ après l'id (n'​oubliez pas la virgule en fin de ligne).
 +
 +===== Magasin =====
 +
 +Ouvrez la map de votre magasin et ajoutez deux items grâce à l'​icône correspondant dans la barre d'​accès rapide. Il s'agit de l'​icône entre les plots de cristal et les convoyeurs. Placez-les sur le comptoir.
 +
 +Pour le premier, mettez comme objet Mystic Mirror, avec un prix de 35 rubis, une savegame_variable ''​shop_mystic_mirror''​ et un description dialog id valant ''​shop.desc_mystic_mirror''​.
 +
 +Le second sera un Heart, au prix de 5 rubis, il ne sera pas sauvegardé pour qu'on puisse en acheter autant que l'on souhaite, et le description dialog id sera évidemment ''​shop.desc_heart''​.
 +
 +Lancez le jeu, vous devriez pouvoir acheter ces divers objets grâce aux coffres que vous aviez fait dans le chapitre précédent. Comme vous pouvez le constater, les flux monétaires sont gérés automatiquement par le jeu, donc si vous n'avez pas assez d'​argent vous n'avez pas à le gérer, le moteur le fait pour vous. Vous pouvez récupérer la [[https://​github.com/​Renkineko/​solarus_tutorial/​archive/​chapter15.0.zip|version finale de ce chapitre ici]]
 +
 +[[{:​wiki:​arrow_left.png|width:​210px;​float:​left;​}fr:​tutorial:​money_system|Chap. 14 : Les Rubis]][[{:​wiki:​arrow_right.png|width:​210px;​float:​right;​}fr:​tutorial:​npc_first_part|Chap. 16 : Les PNJ]][[{:​wiki:​home.png|width:​203px;​}fr:​tutorial:​create_your_2d_game_with_solarus|Sommaire]]
fr/tutorial/how_to_make_a_shop.txt · Dernière modification: 2018/12/22 14:14 (modification externe)