Tutoriel en français Initiation à DromEd

Installation
1 - L'interface de DromEd
2 - Création de votre première pièce
3a - Les textures
3b - Les textures
4 - Modifier, déplacer et orienter un brush
5 - Quelques fonctions utiles
6a - Créer de nouveaux brushs - Placer des brushs solides
6b - Créer de nouveaux brushs - Placer des brushs solides
7a - Placer des sources de lumière et des objets
7b - Placer des sources de lumière et des objets
8a - Animer le niveau
8b - Animer les personnages, patrouille
9 - Inventaire de départ
10 - Propagation des sons
11a - Programmer des objectifs de missions
11b - Programmer des niveaux de difficulté - Variations sur les objectifs de base

Le sommaire détaillé


11a. Programmer des objectifs de mission

(Frère David)

Dans cette leçon, vous allez voir comment assigner des objectifs à une mission. Ceci relève plus de la programmation que le reste, et un certain nombre de points théoriques devront êtres abordés avant de passer aux choses concrètes. Il y aura donc d'abord quelques explications qui seront données sur la façon dont DromEd comprend les objectifs de mission. Et c'est seulement ensuite que nous verrons comment les programmer dans le jeu.

Pour suivre cette leçon, lancez DromEd et chargez le niveau que vous aviez construit tout au long de ce tutoriel (celui avec le garde qui patrouille autour du sceptre). Avant de commencer, il sera juste nécessaire de remplacer le garde par une araignée (très important ! Vous comprendrez pourquoi plus loin…), mais arrivé à ce point du tutoriel, cela ne devrait pas vous poser de problème.

Les objectifs de mission dans DromEd

Sachez tout d'abord que pour programmer des objectifs, il faut remplir une mission quest data (= information sur les objectifs de la mission). Vous pouvez déjà rechercher dans la barre de menu, sous Editors, vous trouverez Mission Quest Data. Si, par curiosité vous avez déjà cliqué dessus, il ne s'est rien passé. C'est normal car pour l'instant nous n'avons pas encore donné ces informations à l'éditeur !

Tout d'abord, il faut savoir que chaque objectif doit se voir attribuer un numéro, et que le premier numéro doit être 0. Ainsi, si vous avez trois objectifs, ils seront numérotés 0, 1 et 2.

Ensuite, il faut savoir que chaque objectif est dans un "état" particulier, représenté également par un numéro. DromEd utilise les numéros suivants pour connaître l'état d'un objectif :

0 = Objectif non accompli
1 = Objectif accompli
2 = Objectif périmé
3 = Objectif échoué

Vous avez déjà vu comment ces différents états apparaissent dans le jeu, quand vous ouvrez la page des objectifs. A l'état 0 (objectif non accompli), l'objectif est précédé d'un carré vide. A l'état 1 (objectif accompli), une coche verte apparaît dans ce carré. L'état 2 (objectif périmé) se rencontre dans les missions où un objectif de départ n'est plus valable, ou devient désuet. Le carré est alors recouvert par un rond rouge barré. L'état 4 (objectif échoué) est marqué par une croix rouge, et signifie que vous avez échoué. Normalement, quand vous voyez cela, ce n'est pas bon signe ! Le jeu est terminé et il n'y a plus qu'à charger la dernière sauvegarde…

Au départ, tous les objectifs doivent être programmés dans l'état 0 (non accomplis), et ce sont les actions du joueur qui modifieront les états des différents objectifs.

Les objectifs peuvent également être visibles ou invisibles. C'est à dire qu'ils peuvent être donnés au joueur dès le départ, ou bien n'apparaître qu'à un certain moment dans la partie, en fonction des rebondissements du scénario. (Par exemple, l'objectif de voler un objet précis pourrait n'être révélé au joueur qu'une fois que celui ci a pris connaissance de son existence). DromEd utilise le code suivant :

0 = invisible
1 = visible

En théorie, avec la version de DromEd qui est distribuée sur les CD de jeu, il n'est pas possible de programmer des objectifs invisibles, car le script Convict ne reconnaît pas les objectifs invisibles. Tous les objectifs doivent donc être marqués à 1 (visible), sous peine de ne pas fonctionner.

Ceci dit, il existe un moyen de contourner le problème. Mais c'est un peu plus compliqué et nous ne le verrons pas ici. Sachez simplement que c'est possible et que si vous tenez absolument à programmer des objectifs invisibles, il existe des tutoriaux plus avancés pour expliquer la marche à suivre.

Pour finir, une fois donnés le numéro d'un objectif, son état et sa visibilité, il reste encore à définir le type d'objectif dont il s'agit. DromEd reconnaît quatre types d'objectifs :

1 = Voler un objet
2 = Tuer une créature
3 = Obtenir un certain montant de butin
4 = Se rendre à un endroit précis

Pour une mission, on peut programmer un ou plusieurs types d'objectifs, tous les objectifs si besoin est, ou même plusieurs objectifs du même type.

Tous les objectifs auxquels vous avez été confrontés au cours du jeu ne sont que des variantes ou des adaptations de ces quatre types d'objectifs de base. Par exemple, un objectif de type 3 (obtenir un montant de butin) peut être modifié pour rendre obligatoire un certain montant en or, en gemmes et en bijou. Ou bien un objectif de type 2 (tuer une créature), peut être inversé, notamment en mode expert, pour interdire au joueur de tuer des gardes. Tout ceci peut se faire grâce à une liste de commandes que nous verrons plus tard.

A présent, vous savez comment les objectifs sont codés dans DromEd, et vous connaissez les quatre types d'objectifs de base. Nous allons maintenant voir comment les programmer concrètement dans une mission.

Programmer les objectifs

La toute première chose à faire est de dresser la liste des objectifs et de les numéroter. Sans oublier de commencer par le numéro 0 pour le premier de la liste. Pour cette leçon, vous allez commencer par programmer deux objectifs simples :

Objectif 0 = Voler le sceptre
Objectif 1 = Tuer l'araignée

(Note de l'auteur : C'est pourquoi je vous demandais de remplacer le garde par une araignée. Autrement, j'aurais dû vous faire programmer l'objectif "tuer le garde". En tant qu'adepte du ZCD, et foncièrement non violent, je ne pouvais décemment pas faire ça ! Et il m'est déjà assez pénible de vous faire tuer l'araignée… mais c'est ce qu'il y a de plus simple à expliquer pour commencer...)

Commençons par l'objectif 0, "voler le sceptre". La première étape est d'indiquer à DromEd que l'objectif 0 est "non accompli" et "visible".

>> La commande de base

La commande pour programmer l'état d'un objectif est : goal_state_x, 0, où x est la variable qui représente le numéro d'un objectif. Elle est toujours placée en premier. 0 est l'état que nous voulons donner à un objectif au départ (0 = non accompli).

Pour indiquer à DromEd que l'objectif numéro 0 doit être marqué non accompli au départ du jeu, il faut donc taper, dans le boîtier de commande, la ligne suivante : quest_create_mis goal_state_0, 0 (respectez bien l'espace entre les deux commandes et entre les deux variables).

>> La commande de visibilité

La commande pour programmer la visibilité d'un objectif est : goal_visible_x, 1.

x est encore la variable représentant le numéro de l'objectif. 1 servira à demander un objectif visible (souvenez-vous que, pour l'instant, demander un objectif invisible ne fonctionnera pas).

Pour indiquer à DromEd que l'objectif numéro 0 doit être visible au départ du jeu, il faut donc taper, dans le boîtier de commande, la ligne suivante :
quest_create_mis goal_visible_0,1.

Pour clarifier tout ça, vous allez maintenant chercher Mission Quest Data dans le menu Editors de la barre de menu. Cliquez dessus pour ouvrir la boîte de dialogue des informations sur les objectifs de mission.


Vous pouvez y lire les informations que vous avez déjà programmées pour le premier
objectif :

goal_state_0 0 qui signifie que l'état de l'objectif 0 est à 0 (= non accompli)

goal_visible_0 1 qui signifie que l'objectif 0 a une visibilité de 1 (= visible)

Si cela vous semble un peu trop complexe pour le moment, rassurez-vous en vous disant qu'il ne s'agit là que d'un vocabulaire particulier, et qu'un peu de pratique vous permettra de rapidement l'acquérir !

Cliquez sur "Cancel" (= Annuler) pour fermer cette boîte de dialogue.

Avant de passer à la suite, vous allez en profiter pour indiquer à DromEd que l'objectif suivant, le numéro 1 (= tuer l'araignée), doit aussi être marqué comme non accompli et visible au départ du jeu. Vous devez donc taper :
quest_create_mis goal_state_1, 0 et quest_create_mis goal_visible_1, 1.

En appelant la boîte de dialogue de la Mission quest Data, vous devriez alors avoir ceci.

L'état des différents objectifs apparaît d'abord, puis leurs visibilités.

Note : pour éviter de taper toute la ligne de commande, vous pouvez taper juste la lettre q, et appuyer sur la touche de tabulations du clavier. La liste des différentes commandes va alors défiler. Ceci dit, dans un premier temps, je vous conseille plutôt de faire l'effort de bien taper vous-même toute la ligne de commande, ce qui vous permettra de bien vous familiariser avec cette programmation.

>> La commande de type d'objectif

Il vous faut maintenant indiquer à DromEd que pour l'objectif 0 il s'agit de voler quelque chose (objectif de type 1), et que pour l'objectif 1 il s'agit de tuer une créature (objectif de type 2).

La commande pour indiquer le type d'objectif est : goal_type_x, y, où x est la variable représentant le numéro de l'objectif, et y la variable représentant le type d'objectif.

Vous devez donc maintenant taper :
quest_create_mis goal_type_0, 1 (= l'objectif 0 est du type 1) et
quest_create_mis goal_type_1, 2 (= l'objectif 1 est du type 2).

>> La commande de cible d'objectif

DromEd sait maintenant qu'il s'agit de voler quelque chose, et de tuer quelqu'un. Mais il ne sait pas encore qui, ni quoi.

Dans une des fenêtres de l'éditeur, sélectionnez le sceptre et l'araignée, et notez bien les numéros de ces brushs.

La commande pour indiquer la cible d'un objectif est : goal_target_x, y où x est la variable représentant le numéro de l'objectif, et y la variable représentant la cible de cet objectif.

Vous devez donc maintenant taper : quest_create_mis goal_target_0, y (avec pour y le numéro du sceptre) et quest_create_mis goal_target_1, y (avec pour y le numéro de l'araignée).

Si vous l'appelez, la boite de dialogue de la "Mission Quest Data" devrait maintenant ressembler à quelque chose comme ça.

L'état des objectifs (classés dans leur ordre numérique) apparaît d'abord, puis leurs cibles, leurs types, et leurs visibilités.

 

>> Le script VictoryCheck

Vos objectifs de mission sont maintenant programmés. La dernière chose à faire est de modifier les propriétés du Starting Point (le marqueur de point de départ) pour rendre ces objectifs valides dans le jeu. Il s'agit de charger pour lui un script nommé VictoryCheck.

Cliquez sur votre Starting Point pour le sélectionner, puis cliquez sur Properties (au centre de l'éditeur) pour appeler la boîte de dialogue de ses propriétés. Cliquez encore sur Add. La longue liste des propriétés à ajouter (que vous devez commencer à connaître ! non ?) apparaît. Choisissez S puis cliquez sur Scripts.

Vous ouvrez alors la boîte de dialogue des scripts. A la ligne Script 0, tapez VictoryCheck (sans espace, et avec les deux majuscules), puis cliquez sur OK et retournez dans l'éditeur.


Tout est maintenant en place. Prenez d'abord bien soin d'enregistrer vos dernières modifications. Puis, passez en mode jeu.

Une fois dans votre niveau, ouvrez la page des objectifs (normalement, la touche O est par défaut celle qui ouvre la page des objectifs). Vous devriez y voir deux petits carrés.

Le premier correspond à l'objectif 0 (voler le sceptre), et le deuxième correspond à l'objectif 1 (tuer l'araignée). Bien sûr, pour l'instant il n'y a pas de texte. Mais nous verrons dans une prochaine leçon comment faire apparaître les descriptifs de chaque objectif.

Pour l'instant, retournez dans le jeu. Puis, choisissez l'un des objectifs (le sceptre ou l'araignée), et passez dans l'autre pièce pour le remplir.

Attention ! Résistez pour l'instant à la tentation, et ne remplissez qu'un seul objectif ! Sinon, la mission se terminera et vous n'aurez plus aucune possibilité de retourner sur l'éditeur…

Une fois que votre objectif est rempli, ouvrez à nouveau la page des objectifs. Vous devriez voir une coche verte dans le carré correspondant.

Note : Remplir tous ses objectifs en mode jeu aura le même effet que de mourir. C'est à dire que les pages de fin de jeu s'ouvriront, et qu'il ne vous sera plus possible de revenir sur DromEd. Si, lors de la réalisation d'une fan mission, vous avez vraiment besoin de tester tous vos objectifs, il existe un moyen de contourner cette difficulté. Il suffit, comme on l'a déjà vu dans la leçon n°7, d'ajouter la ligne "no_endgame" dans le fichier user.cfg.

Vous avez maintenant toutes les connaissances de base pour programmer des objectifs à votre mission. Dans la leçon suivante, nous verrons quelques commandes utiles pour apporter des variations aux quatre types d'objectifs de base. Nous verrons aussi comment programmer des niveaux de difficulté.

Suite 11b. Niveaux de difficulté - Variations sur les objectifs de base
Voir objectifs : en résumé
voir Objectifs : Créer un objectif facultatif

Trucs et astuces sur dromed -- la Bible de Dromed
dromed.tutoriel.free.fr