Aller au contenu

Tutoriel de quête et de dialogue


soifran

Messages recommandés

Salut les filles (Salut charly...private joke pour les plus de 35 ans ;) )

Dans ma quête d'essayer d'arriver à comprendre comme faire des quêtes et des dialogues sous FO3, j'ai découvert un article du GECK très bien foutu que j'ai entrepris de traduire pour vous.
Il peut paraître un peu long au départ, mais en fait il est trés complet.
J'invite les gens à tester pas à pas le sujet, pour après seulement innover.
Lisez le peut être plusieurs fois comme moi avant de vouloir faire des quêtes plus élaborées.
Je le couplerai avec une autre de mes traduction concernant le scripting pur.
Ce tuto devra s'appeler le scrtipt pour les débutants, provenant également d'une partie "cachée" du GECK.
Il faut vraiment lire les deux pour commencer à appréhender le bousin.

Ce chapitre aborde:

  • La façon de créer un nouveau PNJ.
  • La façon de créer un objet de quête.
  • La façon de créer un dialogue, débouchant sur une quête.
  • La façon de parametrer une quête complète.
Bonne lecture.

Soifran Modifié par soifran

Ok...ca c'est fait...suivant...
banecteamsoifranv2.png

FOMM à jour

Lien vers le commentaire
Partager sur d’autres sites

En cours d'habillage, merci...

Tutoriel de quête et de dialogue

Traduit du Geck par Soifran (c'était long mais bon :) )

I Prélude

Les quêtes sont partout dans le jeu. Certaines sont les « vrais », pleines de dialogues,
d’étapes, d’objectifs etc. – Ce sont les quêtes classiques, que le joueur accompli durant
le jeu. Certaines quêtes cependant peuvent être cachées aux yeux du joueur, et utilisée
seulement pour lancer des scripts afin de vérifier ou de paramétrer des évènements.
Ces dernières sont aussi utilisées aussi bien pour les dialogues entre PNJ et joueur, qu’entre
deux ou plus PNJ, ou des monologues, ou des messages radio.

Dans ce didacticiel, nous construirons une quête avec une simple histoire. Nous aborderons
les points suivants :
• Concevoir une quête simple,
• Paramétrer les objets de quête dans le monde,
• Editer les données de quête et les objectifs,
• Ajouter des cibles de quêtes,
• Implémenter un dialogue.
Il y a seulement un pré-requis –vous devez être familier de l’utilisation du GECK. Si vous l’êtes
ou si vous sortez du didacticiel My First Vault tutorial, alors nous pouvons démarrer.


II Ecrire l’histoire
Pour ce didacticiel, l’histoire en sera une très courte:
Dans la clinique de Mégaton, il y a une fillette, Amanda, qui habitait dans l’école de springvale
quelques temps auparavant. Quand elle s’est enfui des lieus, elle a perdu en route son compagnon,
un ours en peluche. Maintenant elle attend que quelqu’un retrouve son jouet pour elle. En retour,
elle vous enseignera la façon d’invoquer un ours (perk).
J’ai également préparé une première version des dialogues entre Amanda et le joueur:

• 1. GREETING (Salutation)
PNJ: Puis-je vous poser une question?
La salutation de base, seulement pour le premier dialogue entre Amanda et le joueur. Comme vous
pouvez le voir, je suis déjà en train d’utiliser le topic IDs, qui sera assigné aux topics (sujets) dans
le GECK. Pour ce sujet, il n’y a seulement que la réponse du PNJ.

• 2. aBHTopic Bienvenue
Joueur: Bonjour jeune fille, que puis-je faire pour toi?
PNJ: Pouvez-vous retrouver mon ours en peluche s’il vous plait?
Je l’ai perdu quand je me suis enfui avec ma maman, de l’école de Springvale .
C’était mon ami… Trouvez le s’il vous plait... (Continue avec le choix du joueur, 3.1-3.5)
C’est le dialogue de choix du joueur et la réponse du PNJ, mais seulement pour le premier dialogue
en Amanda et le joueur. Il sera suivi par le choix du joueur de 3.1 à 3.5, en accord avec différentes
conditions. Ce sujet(topic) ne devrait être dit une seule fois dans le jeu.

• 3.1 aBHTopic d’accord avec le défi
Joeur: [Vérifier si le joueur a la perks"âme d’enfant" et discours, difficultée moyenne] Et que dirais-tu
que je te donne un nouvel ourson? hein?
I. PNJ: (succes) Ok, je l’attendrai, merci. (Goodbye)
II. NPC: (echec) Non, c’est mon ami, il est spécial. (retou au dialogue)

Ce choix sera visible dans le dialogue uniquement si le joueur a l’aptitude « âme d’enfant. Je veux
également qu’il soit un sujet défi (challenge topic), avec un difficulté moyenne. En cas d’échec,
il sera nécessaire d’avoir un sujet (topic) spécial, mais nous nous en occuperons plus tard.

• 3.2 aBHTopic d’accord
Joueur: Ok, je te le rapporterai.
PNJ: Merci, je vais attendre votre retour. (Goodbye)

• 3.3 aBHTopic Pas d’accord
Joueur: Quoi? J’ai des choses plus importantes à faire. Fous l’camp.
NPC: Je ne vous aime pas. (Goodbye)

• 3.4 aBHTopic avoir l’ourson
Joueur: Oui, j’ai trouvé ce jouet avec ton nom dessus. Le voici.
PNJ: Merci.
Pour vous remercier je vais vous apprendre comment invoquer un ami, un ours, ainsi vous ne serez
plus jamais seul. (Goodbye et fin de la quête)
Le choix 3.4 sera disponible uniquement si le joueur à l’ourson d’Amanda avant de parler avec elle la
première fois.

• 3.5 aBHTopic ByeBye
Joueur: Je dois y aller maintenant.
PNJ: Bye bye. (Goodbye)

Tout est prêt. Aussi quel tronche cela va avoir dans le jeu, quand le joueur commencera à parler à
Amanda la première fois ?
Premièrement, Amanda dira le #1 topic, le GREETING:

• PNJ dit: Pouvez-vous m’aider?

Nous parlerons des greetings et des goodbyes plus tard; Pour le moment simulons le dialogue.
Après le greeting d’Amanda, le menu de dialogue s’ouvrira. C’est le premier dialogue entre Amanda et
le joueur, Aussi le joueur aura seulement un choix de dialogue topic #2:

• Le joueur répond: Salut jeune fille. Que puis-je faire pour toi?

Après que le joueur ai cliqué ce sujet dans le dialogue de menu, Il ou elle aura la réponse du PNJ:

• PNJ dit: Pouvez-vous retrouver mon ours en peluche s’il vous plait?

• PNJ continue: Je l’ai perdu quand je me suis enfui avec ma maman, de l’école de Springvale .

• PNJ continue: C’était mon ami… Trouvez-le s’il vous plait...

Après ça il y aura une série de sujets, #3.1 - #3.5, en accord avec les différentes conditions.
Partons du fait que c’est le premier contact entres les 2 personnages, et que le joueur n’a pas
encore l’ourson, alors les choix disponibles seront ceux des catégories #3, à l’exception du#3.4.
J’espère maintenant que vous avez une vision de ce que nous allons faire, alors continuons avec
le deuxième dialogue.

• 4. GREETING

PNJ: Avez-vous un ourson pour moi?

• (3.4) aBHTopic Avoir l’ourson

(Le joueur à l’ourson d’Amanda, aussi le sujet est le même que le #3.4)

• (3.2) aBHTopic d’accord

(Le joueur souhaite démarrer la quête et le sujet sera le même que le #3.2)

• (3.3) aBHTopic Pas d’accord

(Le joueur ne veut pas faire la quête, aussi le sujet(topic) sera le même que le #3.3)

• 4.1 aBHTopic Pas encore

Joueur: Non, pas encore.
PNJ: Alors s’il vous plait dépéchez-vous. C’est mon meilleur ami. (Goodbye)

• (3.5) aBHTopic ByeBye

(Bye reste le même pour tous)

Pourqu’oi y a t’il un sujet(topic) aBHTopic d’accord? Parce que c’est le deuxième entrevue et que dans
le premier, c’était afficher dans le jeu une seule fois, le joueur pouvait ne pas vouloir aider Amanda.
Aussi le joueur devrait avoir une autre option pour démarrer la quête. Dans le deuxième entrevue,
il y a plusieurs conditions. – Le temps est court aussi nous en reparlerons plus tard, lors de la construction
des dialogues dans le GECK.

III Préparer l’environment

Basiquement, j’ai besoin de 2 objets: Le PNJ Amanda et un objet– Teddy Bear. Dans le jeu, il y a déjà deux
objets que je peux utiliser. Dans la fenêtre “object window” , dans Actors->NPC J’ai trouvé Flower, une
fillette similaire à mon Amanda, et dans Items->Misc Item->Clutter il y a un objet TeddyBear01.

PNJ Amanda – Acteur essentiel
Double cliquez sur le PNJ Flower et créez un nouvel objet de base.

• ID: aBHAmandaFlower
• Name: Amanda
• Essential: Yes (coché)

La case Essential est cochée car je ne veux pas qu’Amanda meure avant la fin de la quête. Je ne modifie
aucune donnée dans les onglets Traits ni dans les Stats , mais dans Factions Il y a RepublicOfDaveFaction.
Amanda n’a rien à voir avec eux, aussi j’efface l’entrée et en met une nouvelle. Elle sera placée dans la
clinique de Megaton, Aussi j’ajoute un faction MegatonClinicFaction (rank=0). Ce changement est i
mportant pour un nouveau PNJ ajouté à un environnement spécifique. Je n’en parlerai pas dans ce sujet ci,
mais vous pouvez allez dans la section menu Character->Faction et voir que certaines factions ne s’aime pas.
Si dans la même cellule (pièce) il y a deux acteurs de factions ennemies, il commenceront alors à se battre.
Ainsi, même si Amanda a un bon alignement, (paramétré dans l’onglet Traits ), il est conseillé de changer sa
faction en une , propre à elle, qui cadre avec son environnement et bien sur avec la quête.

dans AI Data Tab:

• Aggression: passif
• Confidence: peureux
• Assistance: n’aide personne
• Mood: Plaisant
• Energy: 50
• Responsibility: 50

Dans AI Packages Tab je détruis toutes les entrées – Je ne n’avais pas fait ça, Amanda serait parti vers une
mystérieuse destination, et n’aura pas pu être trouvée dans la clinique. Maintenant cliquez droit sur la liste des
packages et ajoutez un nouveau package.

• ID: aBHStandardWander (vagabond standard)
• Package Type: Wander (vagabond)
• Wander location: Near editor location (à coté de l’éditeur de localisation)
• Radius: 50 (rayon)
• Allowed behavior: (all) (comportement autorisé)

"Near editor location" signifie, que dans son comportement de base, Amanda restera en place, dans la cellule
dans laquelle elle a été placée dans le GECK.

Dans l’onglet Flags tab Je paramètre seulement le drapeau (flag)Enable Fallout Behavior – Avec ceci, elle se
comportera comme un habitant lambda du village: Elle parlera avec d’autres PNJ , s’enfuira durant les combats etc.

• Schedule: any time (calendrier)
• Duration: 0
Cela signifie que le package AI sera actif tout le temps .
Si vous faites ce test avec moi, au lieu de wander (vagabond) , vous pouvez utiliser le Sandbox Package.
Encore une fois, je n’irais pas plus loin dans les AI packages, car dans ce didacticiel, je n’ai besoin que des comportements standards des PNJ.

C’est tout pour les AI. Dans inventory Je trouve RDGateKey – détruisez la. KIDOutfitWastelandChild04 est un
vêtement standard pour les enfants, aussi laissez le. Pour ce qui est des autres onglets du PNJ, je n’y toucherai
pas, mais sentez-vous le droit de jouer avec l’apparence d’Amanda (allez here pour plus d’info sur les PNJ).

Teddy Bear – quest item
Dans la fenêtre Object Window je vais dans la liste Items->Misc Item->Clutter et cherche TeddyBear01. Je
veux utiliser cet objet, ces modèle .nif les fichiers icône d’inventaire .dds, comme étant l’ourson d’Amanda.
Ainsi donc, je double clique sur TeddyBear01 pour éditer ces propriétés.

• new ID: aBHTeddyBear (nouvelle ID)
• new Name: Amanda's Teddy Bear (nouveau nom)
• new Weight: 0.0000 (nouveau poids)
• new Value: 100 (nouvelle valeur)
• Quest item: yes (box checked) (objet de quête)

Après ces modifications je clique sur le bouton OK. L’éditeur demande si je veux créer un nouvelle forme
–oui c’est ce que je veux donc ma réponse est oui.
Cet objet est flagué en tant que Quest Item (objet de quête), et si le joueur le prends, il ne pourra pas
s’en séparer. C’est pour ça qu’en général les objets de quête on un poids de 0 Kilos. L’ourson sera sorti
de l’inventaire par l’exécution d’un script, que nous paramétrerons à la fin du didacticiel.

IV Ajouter les objets aux cellules du monde

J’ai des objets, aussi il est grand temps de les incorporer au monde.
Amanda sera dans la clinique de mégaton. Dans la fenêtre Cell View window je cherche MegatonClinic et
double clique dessus. Durant l’upload des objets, j’ai un message d’avertissement, quelque chose à propos de missing .dds texture – ce n’est pas important, parce que j’utilise un objet d’origine du jeu et je suis sur
qu’ils sont valides. Une fois que tous les objets de cette cellule sont uploadés, je peux voir la clinique dans
la fenêtre de rendu. Je double clique sur un objet de la clinique et appuie sur la touche T pour me mettre
en vue de dessus. Maintenant je cherche une petite place où je vais pouvoir mettre l’objet PNJ aBHAmandaFlower .
C’est trop sombre dans la fenêtre de rendu aussi je clique sur la touche A permettant l’illumination de la scène.
OK, j’ai trouvé une place, donc maintenant glisser/lâcher le PNJ dedans.

Maintenant la chose la plus importante. Quand Amanda est placée dans la cellule, je double clique dessus
pour ouvrir la fenêtre de propriétés de ces références. S’il vous plait, notez que ces objets dans la fenêtre
de rendu ne sont actuellement pas des objets, mais des références pour des objets de base. Dans la fenêtre
de référence Reference window je fais deux choses:

1. Vérfier si la référence persistante est allouée, elle pourrait être à un autre PNJ,

2. Mettre un nouveau nom dans Reference Editor ID – Je rentre aBHAmandaFlowerREF. Notez que l’objet
de base pour Amanda est aBHAmandaFlower. C’est la procédure standard de dénomination des références :
ajoutez juste un « REF » à la fin du nom de l’objet. Ceci est vraiment très important , car plus tard, j’utiliserai
la référence du PNJ à plusieurs reprise lors de vérification de conditions (Ex les objectifs de quête) ou
peut-être aussi dans les scripts.

L’ourson sera placé dans une cellule SpringvaleSchool01 . Je choisi le premier étage, sur le sol principal de
l’école. Je fais la même chose que pour Amanda:

1. Vérfier si la référence persistante est allouée, elle n’est pas cochée, alors cochez la.

2. Mettre un nouveau nom dans Reference Editor ID – Je rentre aBHTeddyBearREF. Actuellement ce n’est pas nécessaire parce que je suis sure que cela ne sera utilisé dans aucun script ou condition.

Je pense que tout est prêt pour démarrer une quête maintenant.

V Nouvelle quête

Dans la fenêtre Object Window je vais dans le Actor Data->Quest, clique droit dans la liste et ajoute une
nouvelle quête (add New). La fenêtre de quête (Quest Window) s’ouvrira avec des champs vierges dans
Quest Data Tab. Il est temps de les remplir maintenant.

VI Données de quête (Quest Data)

• Quest Name: Bear Hunting (chasse à l’ours)
• ID: aBHQuest
• Priority: 55
• Start game enabled: Yes (cochez la case)
• Script processing delay: Default (cochez la case)

Important! Après avoir rempli ces champs, cliquez sur le bouton OK dans la partie inferieure droite de la
fenêtre de quête. Cela sauvera le « quest data ». Ensuite vous pouvez ouvrir à nouveau la fenêtre de
quête et procéder à la création de quête.
Quest Name Est le nom que le joueur verra dans le journal de quête, dans la liste des quêtes.
Priority de 55 est entre les quêtes Miscellaneous(divers) (50) and Main(principale) (60), Aussi cela devrait
être suffisant pour démarrer dans la jeu. Actuellement, dans ce cas la valeur de priorité de quête que je
met n’a aps d’importance car je créé une quête automatique et personalisée. Cependant, pour être sur
qu’elle soit visible dans le jeu j’entre la priorité de 55.
Si une quête est Start game enabled, alors c’est qu’elle est active directement au début du jeu, d’un
nouveau jeu ou d’une partie sauvée qui ne contiennent aucune données de mon plugin personnalisé.
Actif ou Enabled signifie, que toutes les conditions depuis les scripts ou les champs de condition, relatif
à la quête, sont calculés par le jeu. Ainsi, il y a de nombreuses conditions qui utilisent de nombreuses
fonctions arithmétiques dans les conditions, il est préférable de trouver une autre façon et de ne pas
« permettre » (enable) une quête au début du jeu., laisser le champ vierge et activer la quête avec des
fonctions scipt telles que : StartQuest, SetStage ou SetObjectiveDisplayed .
Avec la case Script processing delay cochée, le processus de script de la quête, par defaut, sera retardé
de 5 secondes du temps réel.
Plus d’information à propos des données de quête peuvent être trouvées here.

VII Objectifs de quêtes

J’ai préparé la liste suivante des objectifs (quest objectives) :

Index Display text
0
5 J’ai trouvé un ourson très étrange. Je devrais le garder, peut être que ça pourra me servir plus tard.
10 Allez à l’école de Springvale et cherchez le jouet d’Amanda.
20 Chercher l’ourson d’Amanda quelque part dans le bâtiment.
30 Allez à la clinique de Megaton et rendez son ourson à Amanda.
50 Trouvez ou achetez un ourson pour Amanda, une fillette de la clinique de Megaton.
200 Amanda a retrouvé son jouet et en retour m’a enseigné comment invoquer un ours.

Vous pouvez ajouter à voter quête quelque chose de similaire si vous le désirez. Cela se fait en cliquant
droit dans la liste des objectifs en choisissant New. Paramétrez l’index de la quête dans le champ index
et entrez le texte dans le champ Display Text . Peut être que l’index #0 n’est pas nécessaire, mais plusieurs
quêtes mineurs l’ont, aussi j’en fais de même.
Pendant la création d’une nouvelle quête, souvenez-vous d’utiliser des multiple de 10, ex. 10, 20, 30 etc.
Pourquoi? Parce que plus tard, parce que plus tard, il peut survenir un problème, quand il sera nécessaire
de rajouter de nouveaux objectifs de quête entre ceux déjà existants. Regardez à nouveau ma liste
– avez-vous remarqué qu’entre l’objectif 30 et 50 il n’y a pas de 40 ? Et bien il y en avait un, mais je l’ai
déplacé à l’index 5. Et j’ai pu faire ça car j’avais démarré ma quête à l’index 10.
L’index minimum d’objectif est 0 et le maximum est 255.

Comment ajouter de nouveaux objectifs de quête? Faites juste un clique droit dans la liste et choisissez « New ».
Dans les options « Quest Objective Data » , dans le champ d’index, entrée la valeur désirez et dans le champ
« Display Text » entrez le texte qui sera affiché pour le joueur.
Quel est l’ordre des objectifs dans ma quête? J’ai fait l’hypothèse qu’il y avait 3 parties pour que le joueur
accomplisse la quête:

Le premier est le suivant:

5 J’ai trouvé un ourson très étrange. Je devrais le garder, peut être que ça pourra me servir plus tard.
200 Amanda a retrouvé son jouet et en retour m’a enseigné comment invoquer un ours.

Le second :
10 Allez à l’école de Springvale et cherchez le jouet d’ Amanda .
20 Chercher l’ourson d’Amanda quelque part dans le bâtiment.
30 Allez à la clinique de Megaton et rendez son ourson à Amanda.
200 Amanda a retrouvé son jouet et en retour m’a enseigné comment invoquer un ours.
Et le troisième:
50 Trouvez ou achetez un ourson pour Amanda, une fillette de la clinique de Megaton.
200 Amanda a retrouvé son jouet et en retour m’a enseigné comment invoquer un ours.

Dans la première alternative, le joueur trouve un ourson, et ensuite rencontre Amanda. Dans le second
chemin, le joueur parle pour la première fois à Amanda, part à la chasse à l’ours, et ensuite retourne voir
Amanda avec son jouet. En dernier, la 3ème alternative, le joueur parle à Amanda et parvint à la convaincre
d’oublier son ourson de springvale et le joueur lui en donne un autre.
Lorsque vous préparez une ligne d’histoire, et des objectifs de quête, souvenez-vous de la règle suivante:
Le joueur est une créature très intelligente et extrêmement retors, aussi préparez-vous à n’importe quoi.
Cela signifie que vous devrez anticiper tous les mouvements du joueur. La chasse à l’ours peut commencer
avant la première rencontre avec Amanda, car le joueur peut aller d’abord à l’école de Springvale et trouver
l’ourson.
Je suis sure que vous avez également noté la différence subtil entre l’index 10 et 20, l’objectif de quête
semble en effet très similaire – mais ils ne sont pas les mêmes. Passons aux cibles de quêtes et j’expliquerai
ce que je veux dire.

VIII Cibles de quête (Quest Targets)
Les cibles de quête (Quest Targets) sont définies dans l’onglet Quest Objectives Tab. Vous pouvez les ajouter
à n’importe quel objectif, premièrement en cliquant gauche sur un des sujets de votre liste d’objectifs, et ensuite
en ajoutant une référence de cible dans la liste du dessous. Vous pouvez choisir n’importe quel référence à un
objet du monde, mais il doit être persistant.

Je veux seulement avoir 2 cibles dans la quête, la première pour:

10 Allez à l’école de Springvale et cherchez le jouet d’ Amanda .
Et le second pour:
30 Allez à la clinique de Megaton et rendez son ourson à Amanda.

Commençons avec la cible de quête de l’objectif 10. Cela devrait être un marqueur de carte ou une porte de
téléportation de l’école de Springvale, l’entrée principale, qui relie l’intérieur de l’école à l’extérieur.
J’ai choisi une référence door (porte).
Je ne ferme pas la fenêtre de quête, je la déplace simlement, afin de pouvoir voir la fenêtre « cell view » et
la feneêtre de rendu. Dans la fenêtre Cell View je bascule dans l’ascenceur sur Wasteland world space
(le monde des terres désolées) et je cherche quelque chose comme Springvale Elementary School. Je l’ai
– l’ID de la cellule est SpringvaleSchoolExterior.
Dansla fenêtre de rendu je me deplace jusqu’à la porte d’entrée de façon à bien la voir. Je double clique
dessus pour voir s’il s’agit bien d’une référence persistante – cela devrait être le cas, et si c’est bon, je
ferme la fenêtre de référence.

Maintenant, retour à la fenêtre de quête et l’objectif #10. Clic droit sur la liste de Target Ref et choisissez
New pour ajouter une nouvelle cible de quête (quest target). Je doit changer la donnée cible (target data),
car elle pointe sur un Abandoned Sewer cell (cellule d’égout abandonné). En bas, dans le Quest Target Data
je clique sur le bouton Select Reference in Render Window, déplacez le curseur de la souris sur la porte ciblée,
et sa couleur devrait changer de rouge à blanche, puis double cliqué sur la porte. Le Quest Target est défini,
la Target Ref ne devrait pas changer, mais nécessite seulement un refreash en faisant un clique gauche dessus.

Comment ajouter plus de quest targets pour un seul objectif?

Remplissez juste la liste des Target Refs.
Je fais de même pour l’objectif #30, et pour la target ref (cible de référence) j’utilise aBHAmandaFlowerREF,
que j’ai placé plus tôt dans la clinique de mégaton.
Je n’ajoute pas d’autre quest targets pour les autres objectifs, particulièrement pour l’objectif #20, parce
que dans cette étape de quête (quest stage) le joueur doit aller dans le batiment de l’école de Springvale
et chercher l’ourson. I ne veux pas montrer sur la carte où se trouve le fameux ourson.

IX Etapes de quête (Quest Stages)

C’est le second onglet (second tab) dans la fenêtre de quête. Vous pouvez trouver ici les Log Entries
(journaux d’entrée) pour chaque index d’étape et les script de résultat (Result Scripts). Il y a aussi deux
cases très pratique: Complete Quest (quête complète)et Fail Quest (quête échouée). Mais commençons
par le début.
Dans Oblivion les Log Entries étaient utilisées pour mettre à jour le journal du joueur, quand le joueur
accomplissait certains progrés dans la quête. Dans fallout 3, il n’y a pas de journal, seulement des objectifs
de quête avec quelques informations à propos de l’état actuel de la quête et ses cibles. Cela signifie que
vous pouvez mettre ce que vous voulez dans une entrée de journal, il ne sera pas affiché au joueur durant
le joueur.

En général:

• Les indexes étapes de quête peuvent être les mêmes que les objectifs de quête,

• Les scripts de résultat peuvent être utilisés pour définir l’état d’objectifs de quête, achevé ou à afficher,

• Les case à cocher des quêtes complètes/échouées sont utilisée pour stoper la quête et la désactiver du jeu.

Et c’est la façon dont je procède dans la conception de ma quête simple.

premièrement, remplissez la liste des indexes en cliquant droit dans celle-ci et en choisissant New. Le nombre
d’index est le même que le nombre d’objectif de quête: 0, 5, 10, 20, 30, 50, 200 et à la fin j’ajoute un 210
comme étape finale de quête, aussi je coche également la case Complete Quest. Pour chaque étape, éxcépté
le #0, je clique droit sur la liste des Log Entry et ajoute un texte vide.

Pour chaque étape de quête je faire faire apparaître le message à propos de l’état en cours de la quête et
des objectifs. Pour montrer les objectifs en cours, je peux utiliser la fonction SetObjectiveDisplayed, et
SetObjectiveCompleted pour montrer queles objectifs précédant sont complétés. Je peux faire ceci en leur
ajoutant une script de résultat (Result Script) à chacun

– Voici la liste complète:

Quest Stage Result Script
0
5 SetObjectiveDisplayed aBHQuest 5 1
10 SetObjectiveDisplayed aBHQuest 10 1
20 SetObjectiveCompleted aBHQuest 10 1
SetObjectiveDisplayed aBHQuest 20 1
30 SetObjectiveCompleted aBHQuest 20 1
SetObjectiveDisplayed aBHQuest 30 1
50 SetObjectiveDisplayed aBHQuest 50 1
200 SetObjectiveCompleted aBHQuest 200 1
SetStage aBHQuest 210
210

Souvenez-vous de compiler chacun des script de resultat en cliquant sur le bouton Compile Result,
juste après les avoir ajouté à l’étape.
Comme vous pouvez le constater, ces scripts de résultat se réfrère à chaque objectif de quête et à
la quête elle-même. La dernière étape #210 n’a aucun script, parce qu’il est flagué (on a coché la case)
Complete Quest. Cela signifie que même s’il avait un script de résultat, celui ci ne serait pas appliqué.
J’utilise l’étape #210 seulement pour finir la quête.
Si vous voulez sauver les changements des quêtes, ne fermez jamais la fenêtre des quête en appuyant
sur la croix, mais cliquez sur le bouton OK en bas à droite de celle-ci.
C’est tout pour le moment, nous pouvons sauver les données et fermer la fenêtre de quête.
Alterner entre les étapes de quête
C’est la pure mécanique de quête – nous devons décider quand la quête devra être mise à jour, en
basculant d’une étape à l’autre. Si nous faisons une erreur ici, le joueur n’aura pas l’opportunité de finir
la quête et sera floué.

Notre quête est active depuis le tout début. Sa prémière étape est #0 et la prochaine #5 avecl’objectif
suivant:

5 J’ai trouvé un étrange ourson. Je devrais le garder, il pourrait m’être utile plus tard.

Ce texte s’affichera comme un objectif de quête uniquement si le joueur trouve l’ourson dans l’école de
Springvale . Cela débutera également la quête dans le jeu. Pour parametrer cette étape, nous devrions
utiliser l’ourson aBHTeddyBear et écrire un simple script. Ouvrez l’editeur de script (Script Editor) et
commençons à en écrire un nouveau – ce sera un script d’objet (object script), aussi dans le champ Script
Type vous devez définir "Object".

SCN aBHTeadyBearScript
C’est le nom du script.
BEGIN onActivate
if (getActionRef == player)
Activate
endif
END

Seul le joueur peut prendre l’ourson aBHTeddyBear, aussi nous vérifions si c’est bien le joueur qui active
l’ourson. Si c’est le cas, l’objet sera activé (pris dans ce cas), et sinon rien ne se passera et l’objet restera
où il etait.

BEGIN onAdd player

if (getStage aBHQuest < 5)
setstage aBHQuest 5
endif

END

Lorsque l’objet est pris par le joueur et que l’étape de la quête est plus petite que 5, nous la passons à #5.
nous voulons définir cette étape seulement une fois, c’est pourquoi je vérifie si son état actuel est inferieur à 5.
Quand la quête est fini, son index d’étape est égal à celui de la dernière étape active.
En accord avec le scénario, le joueur peut aussi parler d’abord avec Amanda, et ensuite trouver l’ourson,
aussi, actuellement lorsque le joueur trouve cet objet, la quête peut être à l’étape #20. c’est pourquoi
nous devrions ajouter une autre condition – le bloc entier Onadd devrait ressembler à ceci:

BEGIN onAdd player

if (getStage aBHQuest < 5)
setstage aBHQuest 5
elseif (getStage aBHQuest <= 20)
setstage aBHQuest 30
endif

END

Notez que j’utilise la comparaison "infèrieur ou égal". C’est mieux que seulement "égal" car parfois il évite
des erreurs. Si le premier calcul du bloc if:

if (getStage aBHQuest < 5)
setstage aBHQuest 5

Si c’est vrai, le calcul ira à la fin du endif, autrement, la seconde condition (elseif) est controlée.
Veuillez noter s’il vous plait quecette étape de quête ne peut pas être répétée et durant le jeu, seule
une de ces conditions sera rencontrée et donc l’ étape de quête ne sera défini qu’une fois.
Les étapes de quête peuvent être répétées dans le jeu seulement si dans le Quest Data il y a la case
Allow repeated stages de cochée.
Nous pouvons sauver le script, fermez l'éditeur de script et ajoutez le script à l’ourson aBHTeddyBear.
La prochaine étape est la #10:

10 Allez à l’école de Springvale et trouvez le jouet d’Amanda.
Cela devrait être actif après la conversation entre Amanda et le joeur, quand le joueur a accépté de
retrouver l’ourson. Nous ferons cela dans un topic de dialogue plus tard.

20 Partez à la recherche de l’ourson d’Amanda quelque part à l’interieur du batiment.
C’est la prochaine étape après la #10: Le joueur à rencontré Amanda et part pour l’école de Sprinvale,
en suivant la cible de quête. Cette cible fût défini par nos soin sur la référence persistante
SpringvaleSchoolDoor01toExteriorREF dans l’onglet Quest Objectives, pour l’index de quête #10.
Maintenant, le joueur entre dans l’école et nous voulons changer l’étape de quête. Allons à l’interieur
de l’école en chargeant l’interior SpringvaleSchool01 dans la fenêtre de rendu et double cliquons sur
SpringvaleSchoolDoor01toExteriorREF dans la liste des objets de la cellule.

Au devant de la porte nous allons créer un forme primitive (primitive form), une zone de declenchement
(trigger zone). Cliquez sur l’icône avec un cube et la lettre T dans la barre de tâche et desinez un cube
qui englobera le marqueur de téléportation de la porte d’entrée. Ce sera un nouvel objet de base, et je
le nommerai aBHSpringvaleSchoolTrigger.

Pour changer d’étape de quête, nous avons besoin d’un autre petit script à attacher au trigger
(déclencheur):

SCN aBHQuestStageTriggerScript

BEGIN onTriggerEnter player

if getStage aBHQuest == 10
setStage aBHQuest 20
endif

END

Lorque le joueur pénêtre dans la zone de declenchement et si l’index de l’étape de quête est égal à 10,
et seulement si, nous passons l’étape de quête à #20 – assez simple. Maintenant, assignons le script
au declencheur précédemment créé aBHSpringvaleSchoolTrigger et nous sommes prêt.


30 Allez à la clinique de Mégaton et donnez l’ourson à Amanda.
50 Trouvez ou achetez un ourson à Amanda, une fillette de la clinique de Mégaton.
200 Amanda reçoit son jouet et vous apprend en retour à invoquer un ours.
Ces étapes sera défini lors de dialogue. Mais avant que nous puissions faire ceci, nous devons ajouter
quelques sujets de conversation (dialogue topic).
Sujets de conversation (Dialogue Topics)
Je pense que c’est la partie la plus éxcitatne du travail – le dialogue. Les dialogues sont tous à propos de sujet,
de liens ou de conditions. Cliquez dans l’onglet Topics (Topics Tab). Nous pouvons créer autant de sujets (topics)
que nous le souhaitons, mais certains d’entre eux, déjà éxistant en sont des spéciaux:

• GREETING – Chaque PNJ dans le jeu commence son dialogue avec le joueur par un sujet de conversation
GREETING (salutation). Ce sujet est utilisé seulement dans l’onglet Topic de la fenêtre de quête. Dans l’onglet
Conversation, il y a un sujet très similaire, – HELLO, mais c’est plutôt utiliser lors de conversation entre plusieurs
PNJ, sans le joueur.

• GOODBYE – Chaque PNJ a aussi un sujet "bye bye" , qui est utilisé dans l’onglet conversation. Si dans
l’onglet Topics, vous ne définissez pas un topic marqué (coché) "Goodbye", le dialogue s’achèvera avec
l’un de ces GOODBYEs de l’onglet conversation.

• SpeechChallengeFailure – this topic from the Topics tab is displayed when one of other topics is flagged
as a speech challenge. It should be linked from this challenge topic.

Bien suril y a aussi d’autre sujets spéciaux, mais ces trois la sont les plus importants. Si c’est la première
fois que vous faites un dialogue, alors peut être êtes-vous un peu perturbé par rapport à ces sujets spéciaux
– Mais ne vous inquietez pas, nous allons tout vous expliquez à partir de maintenant, pas à pas.


Nous avons également besoin d’en apprendre à propos de deux élément principaux de dialogue:

• Response – C’est ce que dit le PNJ. Le texte de la réaction peut être ajouté au sujet séléctionné
dans les champs d’information (info field), et édité dans l’Info Details. Si vous voulez un discours continue
dans l’un des sujets (topics), pour l’info séléctionnée, vous devriez ajouter quelques textes dans le champ
Response Texts. Par défaut la longueur de la réponse est 150 caractères.

• Topic Text – C’est ce que le joueur dit, c’est un texte affiché comme un choix pour le joueur
dans le menu de conversation, mais seulement si le champ Prompt est vide. S’il y a un texte dans le
champ Prompt, alors il sera utilisé au lieu du texte du sujet.

Commençons. Si vous le désirez, nous pouvons jeter un œil au sommet de cette page pour voir
l’élaboration du dialogue une nouvelle fois.

X Ajouter des sujets spéciaux (special topics)

Chaque dialogue démarre avec un greeting du PNJ, aussi nous devons l’ajouter dans la quête.
Actuellement ce n’est pas la panacée, mais c’est toujours mieu d’avoir un greeting personnalisé
pour une quête faite maison.


Dans la fenêtre de quête allez dans l’onglet Topics, Cliquez droit dans la liste sur la gauche de la
fenêtre et choisissez l’option Add Topic. La fenêtre « Select Topic » s’ouvrira, avec tout une liste
de sujets qui ne sont pas utilisés dans la quête actuelle. Recherchez le sujet GREETING, clic gauche
dessus et valider la selection en appuyant sur le bouton OK. (ou double clic gauche sur le topic).

Maintenant nous avons un GREETING pour notre quête, cependant nous ne pouvons pas le laisser
comme ça, nous devons ajouter nos propres textes de bienvenu. Dans le jeu il y a déjà beaucoup de
sujets GREETING, mais chacun d’eux utilisent différents textes, differentes entrées. Nous avons
seulement emprumpté l’ID du sujet (topic), qui est un spécial, utilisé par un PNJ pour saluer le joueur.


Cliquez droit sur la liste d’info, puis sur New, et la nouvelle fenêtre de réaction s’ouvrira.

(Parenthèse de Soifran :
J’ai choisi de traduire le mot anglais Response par réaction, qui m’a semblé le moins confus.
En effet, dans c’est dans le champ Response que l’on rentre aussi les question des PNJ ;) )

Dans « Response Text » (texte de réaction) nous entrons le texte suivant:

• Puis-je vous poser une question?

Si vous le désirez, dans les champs Script Notes et Edit vous pouvez ajouter des notes.
Dans Idle Animations (animations au repos) vous pouvez definir quelques animation pour le parleur
(le PNJ est en train de saluer le joueur); le joueur est un auditeur, aussi, dans ce cas nous ne
pouvons utiliser aucune animation. Ces champs ne se réfère qu’uniquement aux PNJ. Dans les Audio
settings il est possible de choisir un type d’émotion (Emotion Type) pour la réaction, ainsi qu’une
valeur d’émotion (Emotion Value) ; plus la valeur est grande, plus l’émotion du PNJ est élevée.
Voice filenames sont géré automatiquement, nous n’en avons pas besoin, à moins que vous enregistriez
vos propres voix pour vos dialogues.

Fermez la nouvelle fenêtre de réaction. Dans la fenêtre de quête, dans le coin superieur droit il y a
quelques options fortes utiles:

• La case Top-level – cochez la et la réaction s’affichera au sommet de la liste des sujets de
conversation disponible lors du dialogue durant le jeu.
• Rumors – non utilisée.
• Priority – Par défaut c’est la même valeur que le niveau de priorité de la quête. Vous pouvez la
changer pour manipuler l’ordre des sujets dans la liste des sujets disponible dans le menu dialogue du jeu.

Ce texte devrait est dit par Amanda seulement une fois, aussi je coche la case Say Once.

Dans ma quête il y a un autre greeting. Ajoutez le en cliquant droit sur la ligne vierge de l’info liste.
Le texte de réaction est:

• Avez-vous un ourson pour moi?

ce texte peut être répété plusieurs fois durant la quête quand le joueur parlera à Amanda, aussi je ne
coche pas la case "Say Once".
Vous pourrez trouver plus d’information à propos des Flags (marquages) dans la page Category:Dialogue .
Nous reviendrons plus tard sur ce sujet et ajouterons quelques conditions et liens, mais pour le moment
remplissons les autres champs.

XI Ajouter des sujets personnalisés

Dans mon scénario, après un greeting il y a un choix du joueur, un sujet aBHTopicWelcome avec
le texte suivant:

• Bonjour jeune fille. Qu’est ce que je peux faire pour vous?

Pour ajouter ce sujet, cliquez droit sur laliste à gauche et choisissez l’option Add Topic.
La fenêtre du sujet sélectionné s’ouvrira, avec une liste des sujet déjà éxistants. Il n’y a pas de
aBHTopicWelcome, aussi dois-je l’ajouter – Les étapes sont simples, et nous allons faire comme
d’habitude: Clic droit sur la liste dans la fenêtre des « Select Topic » (choisir un sujet) et New;
entrez aBHTopicWelcome comme nouvel ID de sujet.

Nous avons notre sujet personnalisé dans la liste. Comme vous pouvez le voir, dans le coin superieur
droit de la la fenêtre de quête, le Topic Text (texte du sujet) est le même que l’ID du topic:
aBHTopicWelcome. Laissons le comme ça.

Maintenant créons une nouvelle info avec le texte de réaction suivant:

• Pouvez-vous trouvez un ourson pour moi?

Et ajoutez le texte de choix du joueur dans le champ Prompt. Cliquez dans ce champ et écrivez
la phrase suivante:

• Bonjour jeune fille, que puis-je faire pour vous?

Amanda dira cette réponse après les salutations du joueur et quand le joueur cliquera sur le choix
de dialogue « Bonjour jeune fille, que puis-je faire pour toi ? » dans le menu de dialogue. Facile non ?
Cliquez droit une fois de plus sur une ligne vierge de response (réaction) dans la liste de
« Response Texts » et ajoutez une nouvelle entrée:

• Je l’ai perdu dans l’école de Springvale lorsque je me suis enfuie avec maman.

Ceci est uen autre réponse d’Amanda. Elle la dira juste après la phrase précédante. La troisième
partie de sa réponse est la suivante:

• Il était mon meilleur ami...Trouvez le s’il vous plait...

J’ai aussi coché la case Say Once pour ces sujets.

Ajoutez le reste des sujets:

Topic ID: aBHTopicAgree
Prompt: OK, je te le rapporterai.
Response: Merci. J’attendrai votre retour.
Flags: Say Once, Goodbye

Topic ID: aBHTopicAgreeWithChallenge
Prompt: Peut-être pourrais-je te donner un autre ourson, quand dirais-tu, hein?
Response: OK, je le prendrai, merci.
Flags: Say Once, Goodbye
C’est mon sujet de challenge. Cochez la case Speech Challenge et paramétrez le niveau de difficulté (difficulty level).


Topic ID: aBHTopicByeBye
Prompt: Je dois y aller maintenant.
Response: Bye bye.
Flags: Goodbye

Topic ID: aBHTopicDisagree
Prompt: Quoi? J’ai des choses plus importantes à faire. Lache moi !
Response: Je ne vous aime pas !
Flags: Goodbye

Topic ID: aBHTopicNotYet
Prompt: Non, pas encore.
Response: Alors dépechez-vous s’il vous plait. C’est mon ami le plus cher.
Flags: Goodbye

Topic ID: aBHTopicHaveTeadyBear
Prompt: Oui, j’ai trouvé un jouet avec votre nom dessus. Le voila.
Response: Merci.
Comme récompense je vous apprendrai comment invoquer un ami, un ours, comme ça vous ne
serez plus jamais seul.
Flags: Say Once, Goodbye

Topic ID: aBHTopicHaveTeadyBear
Prompt: Oui, j’ai ce jouet, le voila.
Response: Merci.
Comme récompense je vous apprendrai comment invoquer un ami, un ours, comme ça vous ne
serez plus jamais seul.
Flags: Say Once, Goodbye

Il y a deux Prompt différent aBHTopicHaveTeadyBear topic, parce qu’il y a aussi deux façons pour
le joueur de finir la quête: Trouver l’ourson et parler à Amanda, ou parler à Amanda d’abord et trouver
le jouet ensuite.

XII Lier les sujets

Il y a deux façons de lier des sujets:

1. La première est un peu compliquée et nous n’allons pas l’utiliser ici, mais il est possible d’ajouter
un sujet au jeu avec la fonction Script AddTopic ou via le champ "Add Topics" dans l’onglet des Topics.
Ensuite, en utilisant les variables de quête et les conditions de topics, vous pouvez quel sujet pourra
être affiché dans le menu dialogue.

2. La deuxième façon est simple et facile à comprendre: utilisez le champ "Choices" de l’onglet Topic,
et controler les sujets seulement à l’aide de conditions.

Il y a également deux façons différentes d’éxécuter un dialogue, deux types de dialogue:

1. Les dialogue linéaire, les choix sont liés – cela démarre avec le GREETING, puis il y a quelques
sujets liés à la salutation, et chacun d’eux , à la fin de la conversation on le marquage (flag) Goodbye.

2. Les choix de dialogue du joueur , la liste des sujets – celle-ci démarre aussi avec le GREETING,
mais il n’y a pas de sujets de choix associés. Le joueur a un menu de sujets de dialogue, habituellement
ajouté au jeu par la fonction AddTopic.

Bien sur vous pouvez mélanger les deux types. La chose importante à retenir et que si vous le premier
type de dialogue, et que le dernier topic dans la chaîne n’a pas de flag Goodbye , Au lieu d’un goodbye
le dialogue ira au deuxième type et dans le menu de dialogue dans le jeu, il y aura une liste de topics,
et l’un d’eux aura un flag Goodbye. Si non, alors dans la liste de dialoguedans le jeu il y aura un topic
goodbye générique issue de l’onglet conversation – même si vous n’utilisez pas l’onglet dans vos quêtes,
chaque PNJ a un topic Goodbye par défaut et Goodbye est l’un d’entre eux. Vous pouvez le vérifier en
ouvrant la fenêtre de propriété d’un PNJ et cliquant sur le bouton dialogue.

Retournons au sujet et lions des topics. Dans ma quête le dialogue est simple, aussi il n’y aura pas trop
de liens. Cliquez sur le topic GREETING et l’info texte "Puis-je vous poser une question?" . Pour celui-ci
j’ai prévu seulement un choix de réponse du joueur , c’est le topic aBHTopicWelcome. Cliquez droit dans
le champ deschoix et ajoutez ce topic.

En suivant le dialogue, cliquez sur le topic aBHTopicWelcome . Quand Amanda demande au joueur de lui
retrouver son ours, le joueur aura alors plusieurs options:

• aBHTopicAgreeWithChallenge
• aBHTopicAgree
• aBHTopicDisagree
• aBHTopicHaveTeddyBear
• aBHTopicByeBye

Ajoutez ces topics dans les champs de choix du topic aBHTopicWelcome.

Maintenant retournez au GREETING et cliquez sur la seconde réponse avec l’info texte "Avez-vous
un ourson pour moi?". Cette fois, il y a une pleine liste de possibilités. Les champs de choix devraient
contenir les topics suivants:

• aBHTopicHaveTeddyBear
• aBHTopicNotYet
• aBHTopicDisagree
• aBHTopicAgree
• aBHTopicByeBye

Les trois premiers choix de topics sont simples: Le joueur a l’ourson, ne l’a pas encore ou refuse de le
rapporter. Ce second info texte de GREETING n’est pas flagué « Say Once », Il peut être utilisé de
nombreuses fois dans le jeu. Lors de la première rencontre avec Amanda, le joueur peut refuser de l’aider,
c’est pourquoi il devrait y avoir une autre possibilité de démarrer la quête avec le topic aBHTopicAgree.
J’ai également besoin d’ajouter un ByeBye pour prévenir l’affichage q’un GOODBYE générique.

XIII Lier les topics de défis (chanllenge)

Premièrement nous devons ajouter un sujet spécial:
SpeechChallengeFailure. Vous connaissez dèjà pourquoi il est fait, n’est ce pas? C’est seulement
un sujet de réaction, il ne devrait pas avoir de prompt. La réponse est la suivante:

• Non, c’est mon ami, il est spécial.

Il devrait être lié depuis le topic de défis aBHTopicAgreeWithChallenge, aussi ajoutez le dans le
champ :Link From . Maintenant, durant le jeu, Si le joueur réussi son test de discours, la reponse
sera prise dans aBHTopicAgreeWithChallenge. Dans le cas d’un echec, il sera affiché la réponse d’echec SpeechChallengeFailure.

C’est tout à propos des liens. Faisons maintenant quelques conditions.

XIV Les conditions

Elles sont vraiment importantes pour la quête. S’il n’y a pas de condition pour les sujets, chacun
d’eux sera affiché quasiment tout le temps et chaque PNJ pourra les utiliser.
La première condition est vraiment simple et commune – le dialogue ne peut avoir lieu qu’entre le
joueur et Amanda. Cliquez droit dans la vierge des conditions et ajoutez une nouvelle entrée.
Vous aurez alors une fenêtre de Condition Item avec quelques champs à remplir dans:

• Condition Function: Par défaut c’est la fonction GetIsID. C’est la fonction la plus commune
pour les sujets de condition des dialogues, c’est pourquoi il est par défaut, et c’est exactement ce
que nous voulons pour le moment. Ne le changez pas.

• Function Parameters: En accord avec le type de fonction, dans ce champ il est possible de
définir des paramètres. Si la « condition function » a des paramètres, ces champs sera permis,
dans le cas contraire il sera impossible de choisir un paramètre. GetIsID a un paramètre: un objet.
Cliquez dessus et paramètrez aBHAmandaFlower comme un paramètre.

• Comparison: '==' est OK.

• Value: 1.0000 est OK.

• Run on: Sujet . Cela signifie que la condition sera appliquée au sujet parlant, et c’est toujours
le PNJ. Si vous voulez exécuter une condition sur le joueur vous devriez choisir « target ».
Si la fonction tourne sur un non-acteur (un PNJ) utilisez un Subject, une Reference ou une Linked Reference.

Il y a aussi deux cases:

• Use Global: cochez cette case si vous voulez comparer la valeur retourné par la fonction
condition avec une variable globale au lieu d’un nombre.

• Or: Utilisée seulement s’il y a plus d’une condition pour un topic et quand il et nécessaire
d’utiliser deux ou plus de différentes conditions. C’est l’opérateur logique OR. Si la case n’est
pas cochée, l’opérateur logique AND sera utilisé.

Plus d’information à propos des paramètres de conditions sur la page Category:Conditions .
La condition est la suivante:

• (Run on: Subject) GetIsID aBHAmandaFlower == 1.0000 (AND)

je l’ajoute à chaque topic de ma quête, aussi seule Amanda peut les utiliser.
Ce n’est pas suffisant, parce que certains topics ne soient affichés seulement à certaines étapes
de la quête. Commençons avec le topic GREETING. Le texte info "Puis-je vous poser une question?"
ne devrait être affiché seulement si l’index d’étape de la quête aBHQuest ext infèrieure ou égale à 5.
Cela signifie que l’info texte de ce topic sera utilisé uniquement si la quête n’a pas encore démarré
durant le jeu où si le joueur trouve l’objet de quête avant d’avoir parlé à Amanda. Aussi la condition
est la suivante:

• (Run on: Subject) GetStage aBHQuest <= 5.0000 (AND)

Maintenant nous avons deux conditions pour le premier info texte et les deux doivent être remplies
si vous voulez afficher le texte, parce que nous sommes en train d’utiliser l’opérateur AND.
La deuxième info du GREETING: Avez-vous un ourson pour moi? – ne devrait être affiché uniquement
si l’étape de quête est infèriieure ou égale à 50. Ajoutez le. Voici une courte liste des conditions
additionelles pour les autres tsujets:

• aBHTopicAgree:
- L’étape de quête doit être infèrieure à 5

• aBHTopicAgreeWithChallenge:
- L’étape de quête doit être infèrieur à 5
Amanda est une enfant, Aussi si vous voulez vous pouvez aussi ajouter la condition suivante:
(Run on: Target) HasPerk ChildAtHeart == 1.0000
Cela vérifiera si le joueur a l’aptitude ChildAtHeart (âme d’enfant).

• aBHTopicHaveTeddyBear, le premier info text:
- L’étape de quête doit être égal à 5 (OR)
- L’étape de quête doit être égale à 30 (AND)
- Le joueur a l’objet (item) aBHTeddyBear

• aBHTopicHaveTeddyBear, le second info texte:
- L’étape de quête doit être égal à 50 (AND)
- le Joueur a l’item aBHTeddyBear

Pour vérifier si le joueur a l’ourson, Vous pouvez utiliser la fonction GetItemCount. Et souvenez-vous
de lancer (run) cette item condition sur la cible.

• aBHTopicNotYet:
- L’étape de quête doivent être plus grand ou égal à 10 (AND)
- L’étape de quête doit être inférieure à 50 (AND)


XV Scripts de résultat

Finalement, nous avons besoin de quelques scripts de résultat pour gérer la quête. Le premier sera utilisé
lorsque le joueur sera d’accord pour aider Amanda. Cliquez gauche sur aBHTopicAgree et dans la case
Result Script (End) entrez le code suivant:

SetStage aBHQuest 10
Cliquez sur le bouton Compile Scripts pour vérifier si le code est correct et compilez le.

Je fais une chose très similaire pour le topic aBHTopicAgreeWithChallenge – voici le script:

SetStage aBHQuest 30

Le dernier script est pour le sujet aBHTopicHaveTeddyBear, quand le joueur a l’objet aBHTeddyBear et rencontre Amanda:

player.removeitem aBHTeddyBear 1
if (GetStage aBHQuest == 30)
SetObjectiveCompleted aBHQuest 30 1
else
SetObjectiveCompleted aBHQuest 5 1
endif
SetObjectiveDisplayed aBHQuest 200 1
SetStage aBHQuest 200

Avec ce script nous retirons l’item ourson de l’inventaire du joueur, en accord avec l’étape de quête
nous marquons les objectifs propres à la quête comme complets, et parametrons l’étape finale.
Maintenant cliquez sur le obuton OK et sauvez le plugin.Je pense qu’il est temps de le tester dans la jeu.
J’espère que ce vous avez aimé ce tutoriel et que vous l’avez trouvé utile

Note de Soifran:
Bon j'avoue, la première fois c'est super indigèste...
Le truc qui m'a frustré ça a été de me dire... ok, c'est bien beau, mais j'y bite rien en script,
comment je sais ce qu'il faut ecrire dans les scripts, la syntax et le nom des fonctions ???
Mais je ne lache pas l'affaire comme ça et j'ai trouvé sur le site de bethesda un tuto que j'ai
pratiquement fini de traduire sur les base du script.
A bientôt.
Coming soon comme ils disent :)

Modifié par soifran

Ok...ca c'est fait...suivant...
banecteamsoifranv2.png

FOMM à jour

Lien vers le commentaire
Partager sur d’autres sites

Rejoindre la conversation

Vous pouvez publier maintenant et vous inscrire plus tard. Si vous avez un compte, connectez-vous maintenant pour publier avec votre compte.

Invité
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.

×
×
  • Créer...