J'ai intégré un système de quête simple dans mon jeu.
Le principe :
- je crée la structure du pnj
- je crée la structure de la quete
- j'ajoute une map global pour les quete
Code : Tout sélectionner
Structure st_pnj
position.point
id.w
EndStructure
Structure st_quete
id.w
titre$
description$
recompense$
etape.b
EndStructure
Global NewMap quete.st_quete()
AddMapElement(quete(),"1")
With quete("1")
\id = 1
\titre$ ="A La recherche des gluts perdus"
\description$ = "Ramener 10 morceaux de glut"
\recompense$ = "Xp : +100 / Argent : 15 ark"
\etape = 1
EndWith
With quete("1")
Debug \titre$
Debug \description$
Debug \recompense$
EndWith
- cliquer sur un pnj (N°Y) : ça ouvre un dialogue qui propose une quête.
- si on clique sur OK, ça ajoute la quête dans notre livre de quete (la quête a un numéro type ID), et l'étape de la quête passe à 1
- en général, la quête basique ressemble à : "trouver X objets et les ramener au pnj N°Y"
- si on n'a pas les X objets et qu'on reclique, on passe à l'étape = 2, et on une phrase genre "ben alors, tu me les ramènes ces X objets ?", et ensuite, on reste sur cette étape =2 si on n'a toujours pas les X objets.
- si on a les X objets, on reclique sur le pnj N°Y : on vérifie qu'on a au moins X objets (si étape de la quête >=1).
- si oui, on enlève les X objets de notre inventaire, on passe la quête à étape = 3 (fin de quête), dialogue : "super, voici ta récompense".
- on ajoute la récompense (argent, xp) au jour
- on passe la quête à l'étape 4 (fin de quête). Le dialogue est du genre : "encore merci pour les objets !".
Bon, ça c'est simple.
C'est une quête basique.
Mais si je souhaite concevoir des quête avec multi-niveaux, sur plusieurs pnjs, d'après vous, quelle serait la méthode la plus intéressante ?
- une variable global queteprincipale.a que j'incrémente en fonction des étapes de chaque pnj par exemple ?
et avant de balancer un dialogue ou une nouvelle étape, je vérifie à combien cette variable est ?
Cela vous semble une bonne idée ou y'a-t-il une meilleure méthode ?
Merci.