Les quêtes

Article écrit par Bishop, le 1er mai 2004.


Quêtes: éditeur de carte de Frozen Throne, v1.14

Pour éditer une map avec des quêtes comme dans les campagnes de Blizzard : avec des messages de découvertes de quêtes qui apparaissent avec le fameux "tadaa..." sonore, et pareil quand la quête est terminée ? Suivez ce tutorial :

Si au lieu de suivre le tutorial vous préférez un exemple, à la fin de la page vous pouvez télécharger le fichier "quetes.w3m" qu'on va créer pendant le tuto. Pour ceux qui ont déjà bien l'habitude de l'éditeur de map, tout le tuto est résumé en une image qui contient tous les déclencheurs en fin de page.

La démonstration par l'exemple:

Créons une nouvelle carte dans laquelle on place un gentil héros (un paladin) et un emplacement de départ pile sur lui. On la nomme "quetes.w3m". On veut faire 2 quêtes: une obligatoire et une optionnelle. Depuis l'éditeur de déclencheur, on fait Ctrl+B pour éditer 2 nouvelles variables de type "quête" et qui s'appellent "quete1" et "quete2" (quelle originalité). La quête principale aura pour but de trouver du fromage, et la quête optionnelle aura pour but de trouver une clef.

Remarque: si vous ne voulez faire qu'une seule quête, il n'y a pas besoin de variable. On peut créer une quête et on s'y référencera par la suite avec la fonction "last created quest".


On crée maintenant dans les déclencheurs un nouveau dossier "Quêtes" dans lequel on met deux déclencheurs: "quête principale" et "quête optionnelle" Ces déclencheurs seront lancés par un déclencheur "init" à l'initialisation de la carte. C'est un peu long mais si on projette de faire une longue carte, il vaut mieux trier les déclencheurs dès le début. Je donne une explication à ce sujet à la fin du tutorial. Ces déclencheurs créent les quêtes. Le "quête principale" est ainsi (il ne comporte pas d'événement, que des actions):

On prend l'action "Quête - Create Quest" et on rempli les champs ainsi:


Le champ Requis, non trouvé signifie que la quête est obligatoire, mais que le joueur ne la connaît pas encore. Comme c'est la quête principale, on pourrait mettre simplement Requis (sous-entendu "trouvé"), a moins qu'on veuille par exemple que le héros doive rentrer dans un village, puis rencontre quelqu'un qui lui parle et découvre ainsi la quête. Dans notre cas, on va juste attendre 3 secondes avant de lancer le message "quête découverte" ainsi le joueur le voit bien arriver. ("tadaa...")

Les deux champs qui suivent sont simplement du texte qui apparaît si le joueur fait F9 pour voir une description des quêtes.

Le dernier champ correspond à l'icône de quête (toujours si le joueur fait F9). Il suffit de cliquer dessus, puis dans la fenêtre qui s'ouvre on clique sur "choisir icône" et dans le groupe "objets" on trouve "fromage".

Après avoir créé la quête, dans le même déclencheur on met l'action "set variable":

set quete1=(Last created quest)


Cliquez sur l'image pour l'agrandir

Pour le déclencheur "quête optionnelle", je suis sûr que maintenant vous vous en tirerez très bien. (N'oubliez pas de remplacer Requis, non trouvé par Optionnel, non trouvé l'icône fromage par une icône de clef et quete1 par quete2...).


On peut maintenant créer deux autres déclencheurs: "découverte quête principale" et "découverte quête optionnelle". je détaille le "découverte quête principale" (il ne comporte pas d'événement, que des actions):

On prend l'action "Quête - Create Message" (le fameux tada...) et on configure ainsi:

Display to (All Players) the Quête découverte Message:

|cffffcc00QUETE PRINCIPALE|r
Le Fromage
- Trouvez du fromage

En effet, on veut que le titre apparaisse en gros et en couleur. Pour le gros, il suffit d'ecrire en majuscule. Pour la couleur, cela fonctionne ainsi: la partie du message en couleur se décompose en 4:

  1. Le début de la couleur: "|cff"
  2. La couleur en hexadécimal (pour jaune ça donne "ffcc00")
  3. Le texte en couleur (ici: "QUETE PRINCIPALE")
  4. La fin de la couleur: "|r"
Si vous n'arrivez pas à écrire le caractère | c'est en faisant "Alt-Gr 7" ou "Alt-Gr 1" ça dépend du clavier
(si c'est ni l'un ni l'autre, ça vous apprendra à acheter vos claviers à Trouffion-les-pingouins). Si vous n'y connaissez rien à l'hexadécimal, voici une petite liste
  • bleu ciel: 0066ff
  • rouge clair: ff0000
  • rouge foncé: 990033
  • or: ffcc33
  • vert clair: 00ff00
  • vert foncé: 009900
Ainsi, si on veut écrire "bonjour" avec le j en or, ça donne" bon|cffffcc33|rour". Pas compris ? Oubliez les couleurs.

Toujours dans le même déclencheur, on ajoute l'action "Quête - Mark Quest as discovered" et on remplit les champs:

Quête - Mark quete1 as Découvert


Pour le déclencheur "découverte quête optionnelle" vous y arriverez bien sans mon aide maintenant.


Créons maintenant un déclencheur "init". Comme événement, on met "map initialization" et comme actions, on utilise les actions "Déclencheur - Run (checking conditions)" et "Wait" comme suit:
  • Déclencheur - Run quete principale (checking conditions)
  • Déclencheur - Run quete optionnelle (checking conditions)
  • Wait 3.00 seconds
  • Déclencheur - Run decouverte quete principale (checking conditions)

Vous l'aurez compris, des que la partie commence, les quêtes existent, et après 3 secondes, la quête principale est découverte. Après ces trois secondes, si le joueur presse F9 il verra ceci:


En dessous, il y a la description "Cherchez du Fromage" qui apparaît si le joueur clique sur "Le fromage".

A ce stade du jeu, il n'y a aucun événement qui permet de découvrir la quête optionnelle, ni de terminer aucune quête puisqu'on a pas encore mis ni fromage ni clef sur la map. Je propose de placer sur la map un fromage, une clef et une petite araignée. Quand on tuera cette araignée, la quête optionnelle sera découverte.

Pour découvrir la quête optionnelle, il suffit d'ajouter un événement au déclencheur "découverte quête optionnelle". On prend l'action "Unité - Specific unit event" et on choisit l'araignée comme unité et on laisse "meurt" comme événement.

Il reste à indiquer que la quête 1 se termine quand on ramasse le fromage, et la 2 se termine quand on ramasse la clef (soyons cohérents sinon c'est la merde). On crée deux nouveau déclencheurs "réussite quête principale" et "réussite quête optionnelle" Dans le "réussite quête principale":

On met comme événement: "Unité - Spécific Unit Event" et on remplit les champs comme suit:
Unité - Paladin 0001 Aquiert un objet.
(Peut-être que chez vous, le Paladin n'a pas le numéro 0001 mais c'est sans importance)

On met comme condition: "Item comparison" et on remplit les champs comme suit:
(Item being manipulated) Egal à Fromage 0002
(Peut-être que chez vous, le Fromage n'a pas le numéro 0002 mais c'est sans importance)

On met l'action: "Quest - Mark Quest As Completed" et on remplit:
Quête - Mark quete1 as Terminé

On met l'action: "Quest - Quest Message":
Display to (All Players) the Quête terminée message:
|cffffcc00QUETE PRINCIPALE TERMINEE|r
Le Fromage
- vous avez trouvé du fromage

Pour ceux qui ne comprennent pas, ce déclencheur s'active QUAND le paladin ramasse un objet A CONDITION que l'objet en question est le fromage. Pour le déclencheur "réussite quête optionnelle", c'est presque pareil je vous fait confiance.


Il faut encore que la victoire soit activée à la fin de la quête principale (2 secondes après comme ça le joueur a le temps de profiter du message "Quête terminée") On va donc créer un déclencheur "victoire" qui sera activé par le déclencheur "réussite quête principale" Ca paraît long mais la raison est expliquée plus loin. Le déclencheur "victoire" comporte une seule action: "Partie - Victory":

Partie - Victory Joueur 1 (Rouge)(Montrer dialogs, Montrer scores)

Il faut maintenant rajouter les deux actions suivantes (et qui n'ont plus de secret pour vous) à la fin du déclencheur "réussite quête principale":
  • Wait 2.00 seconds
  • Déclencheur - Run victoire (checking conditions)


Votre carte est terminée. Elle contient tous les déclencheurs suivants:


Cliquez sur l'image pour l'agrandir

Vous pouvez la tester et par exemple tuer l'araignée pour découvrir la quête optionnelle, prendre la clef et faire F9. Vous verrez alors la quête terminée.

Les défauts de cette carte:

Le joueur est capable de terminer la quête optionnelle avant de l'avoir découverte! Bien entendu quand vous ferez votre carte, il faut empêcher ce cas de figure. Ici on pourrait y remédier de plusieurs façons:
On pourrait ne pas mettre de clef sur la carte, et lors de la découverte de la quête optionnelle on crée une clef à un endroit précis. Mais ça pose un problème: puisqu'il n'y a pas de clef sur la carte, on a du mal a éditer la condition (Item being manipulated) Egal à Clé... On peut s'en sortir avec une variable de type objet mais ça fait le sujet d'un autre tutorial.
Les autres méthodes que j'entrevois utilisent des variables booléennes et ça fait aussi le sujet d'un autre tutorial. (j'ai du boulot moi....)


Pourquoi autant de déclencheurs dans tous les sens qui se lancent parmi, plutôt que quelques déclencheurs plus grands qui font plus de choses?

En effet, pour une si petite carte ça peut paraître idiot de faire ça. Mais il faut garder en vue que cette carte va devenir plus grande et qu'on va y apporter plein de modifications. Le fait de tout structurer permet de s'y retrouver plus vite, et le fait de tout séparer en différents déclencheurs semble plus long au début, mais va nous faire gagner beaucoup de temps par la suite:

Exemple: Vous vous demandez peut-être pourquoi avoir fait un déclencheur "victoire" puis le lancer depuis "réussite quête principale" alors qu'on aurait pu mettre la ligne "Partie - Victory Joueur 1 (Rouge)..." dans ce même déclencheur? C'est pour la raison suivante: Si par la suite on décide de mettre d'autre options de victoires: Par exemple, on décide que pour gagner, il faut soit trouver du fromage, soit tuer un golem, soit casser une tour, alors on aura 3 déclencheurs depuis lesquels on lancera le déclencheur "victoire", ou 3 déclencheurs dans lesquels on met la ligne "Partie - Victory Joueur 1 (Rouge)...". Mais si maintenant on décide qu'en cas de victoire on passe une petite cinématique, puis on fait défiler un texte, et seulement après on met la victoire; dans le premier cas il suffit de modifier le déclencheur "victoire" et dans l'autre cas il faut modifier tous les 3 déclencheurs. Ca peut sembler pas bien grave, mais si vous faites une map bien remplie, alors ce genre de problème peut arriver souvent, c'est pourquoi il vaut mieux bien structurer dès le début. D'autant qu'une map ne se fait pas en un jour, et si vous ne la touchez pas pendant quelques temps, vous vous y retrouverez mieux.


Si vous voulez télécharger la map crée dans ce tuto, c'est ici : Téléchargement de la carte.

Amusez-vous bien et distribuez vos quêtes sur le net.

Aucun commentaire - [Poster un commentaire]
Il n'y a pas de commentaire. Soyez le premier à commenter cette page !

Poster un commentaire

Vous devez vous identifier pour poster un commentaire.
Nombre de visites sur l'accueil depuis la création du site Warcraft III : 8.780.148 visites.
© Copyright 1998-2024 JudgeHype SRL. Reproduction totale ou partielle interdite sans l'autorisation de l'auteur. Politique de confidentialité.