Différences entre les versions de « GECK : 11 - Quête principale »

De Wiwiki
Aller à la navigation Aller à la recherche
Ligne 297 : Ligne 297 :
==Les dialogues avec la goule Emma Tinkinson==
==Les dialogues avec la goule Emma Tinkinson==


[[Image:GECKWiki_Quete13d.png|thumb|left|Les dialogues du topic principal de la quête MONMQ01.]]Dans la quête MONMQ01, nous allons faire le dialogue de bienvenue d'emma : cliquez sur l'onglet Topics, puis dans la liste à gauche, faites un clic droit puis New. Cherchez GREETING dans la liste qui apparait. Ensuite faites un clic droit sur la première ligne du cadre "info", et selectionnez New.
[[Image:GeckWiki Quete13d.png|thumb|left|Les dialogues du topic principal de la quête MONMQ01.]]Dans la quête MONMQ01, nous allons faire le dialogue de bienvenue d'emma : cliquez sur l'onglet Topics, puis dans la liste à gauche, faites un clic droit puis New. Cherchez GREETING dans la liste qui apparait. Ensuite faites un clic droit sur la première ligne du cadre "info", et selectionnez New.


Comme réponse mettez "Qui êtes-vous ? Ne me faites pas de mal !", avec Fear comme emotion, et 100 en valeur. Validez. Cochez la case Say Once pour que la phrase ne soit dite qu'une fois. Pour désigner emma Tinkinson, faites un clic droit dans le cadre condition, selectionnez New, et rentrez GetIsID comme fonction, MONTinkinsonEmma à la place d'INVALID, et == 1.
Comme réponse mettez "Qui êtes-vous ? Ne me faites pas de mal !", avec Fear comme emotion, et 100 en valeur. Validez. Cochez la case Say Once pour que la phrase ne soit dite qu'une fois. Pour désigner emma Tinkinson, faites un clic droit dans le cadre condition, selectionnez New, et rentrez GetIsID comme fonction, MONTinkinsonEmma à la place d'INVALID, et == 1.
Ligne 317 : Ligne 317 :


Allez tester ingame. En parlant à Emma, vous devriez avoir trois phrases. Chacune donne un dialogue différent. On peut remarquer qu'il n'est pas réaliste que lorsqu'on insulte emma, et qu'elle rompt le dialogue, elle puisse parler ensuite comme si rien n'était.
Allez tester ingame. En parlant à Emma, vous devriez avoir trois phrases. Chacune donne un dialogue différent. On peut remarquer qu'il n'est pas réaliste que lorsqu'on insulte emma, et qu'elle rompt le dialogue, elle puisse parler ensuite comme si rien n'était.


==Utilisation d'un script de quête==
==Utilisation d'un script de quête==

Version du 10 octobre 2010 à 21:34

J'ai rajouté cette partie bien qu'elle ne soit pas finalisée, et pas très bien écrite. Mais comme elle contient pas mal de choses utiles, la voilà, en attendant que je corrige tout ça !

                                  *********************************

Les différences entre une quête simple et notre quête principale sera de deux ordres : la quête principale sera constituée de deux quêtes simples enchaînées, et les quêtes seront porteuses d'un script. Celui-ci s'éxécutera tant que la quête sera active, et servira à garder quelques variables necessaires à la quête, et à déclencher certains évènements de la quête. D'autres scripts locaux serviront aussi à faire progresser la quête. Bref, la différence est aussi le niveau de complexité et la variété de choix. Une quête simple peut avoir deux stages et quasiment pas de choix. une quête principale se doit d'avoir plus de choix, plus de conséquences possibles, et un développement plus long. De plus, nous allons utiliser des moyens variés de faire progresser la quête : terminaux, holodisques, détection du joueur,...


Conception de la structure de la quête Principale

Dans Fallout3, les parties de la quête principale (Main Quest) s'appellent MQ01, MQ02,... Nous procéderons de même : pour Mon Premier Mod Simple, la quête principale aura trois parties : MONMQ01, MONMQ02, et MONMQEnd. Pour simplifier, quand MONMQ01 se terminera, on enchainera sur MONMQ02, et quand MONMQ02 sera terminée, les deux premières quêtes seront stoppées (donc scripts désactivés) et la quête MONMQEnd servira aux quelques dialogues d'après quête, qui dépendront des résultats de la première.


Comme pour notre quête simple, nous allons d'abord définir qu'est ce qui arrive dans cette quête, puis faire un tableau récapitulatif, un organigramme pour étudier toutes les possibilités. Une fois ces étapes finies, nous pourrons mettre en chantier la quête.


LA QUETE PREMIERE PARTIE MONMQ01 : Jamais sans ma fille


- La première partie de la quête principale (MONMQ01) commencera avec la rencontre de la mère Tinkinson dans les locaux de service de la station de métro effondrée. La porte sera faiblement verrouillée. On trouvera Emma Tinkinson, une goule qui semble désemparée. Elle s'est échappée d'un Abri, mais sa fille y est toujours prisonnière. Elle nous demande de retrouver sa fille (Objectif de quête).


- Le joueur devra aller sur Little Pawn Island, glaner quelques renseignements sur l'Abri dans Pale Pass, se débarrasser des radscorpions.

- Une fois rentré dans l'Abri (premier objectif), il faudra trouver le labo où s'est cachée Shirley. Pour cela, holodisques, terminaux et interrupteurs aideront à ouvrir le bureau du superviseur, et à pénétrer dans le labo. Un behemoth (Tinkinson père transformé par le GECK) hantera l'Atrium. Il sera possible de le tuer normalement, ou en activant les tourelles par un terminal.

- Une fois dans le labo, ouvrir le conteneur de Jek libèrera Shirley, completera l'objectif de MQ01, terminera la quête MONMQ01 et enchainera sur la Quête MONMQ02.

- Emma sera désactivée et remplacée par une goule agressive par script (et des yao guai qui apparaitront), sauf si le joueur l'a déjà tuée, auquel cas les Yao Guai n'apparaitront pas.


TABLEAU RECAPITULATIF QUETE MONMQ01:


Personnages Principaux : Goule Emma Tinkinson (donneur de quête), Shirley Tinkinson (objectif de quête), Faction des Habitants de Pale Pass (renseignements direction Abri), Femme Chadwick (Renseignements Abri).


Lieux : Station Effondrée, locaux de service (donneur de quête), Pale Pass (passage obligé et renseignements), Abri 666 (premier objectif).


Objectifs de quête :Trouver l'Abri 666. Trouver le laboratoire de l'Abri 666. Ramener Shirley voir sa mère.


Objets ou capacités utiles : Terminal du superviseur : activation tourelles, histoire abri. Terminal Medecin : description habitants, évolution des pathologies, radiations. Holographes (histoires abri n°2), ouverture porte labo ?, interrupteurs (ouverture portes), RadAway, Combinaison Anti Radiations (pour résister aux radiations).


Ennemis possibles : Radscorpions à l'entrée de l'Abri, Rataupes, Robots, Béhémoth Affaibli (Tinkinson), Sujet VEC ratés ?. Optionnel : Gardes de Pale Pass


Gains possibles : Combinaison Anti-Radiations Avancée, karma +. Karma -


Actions de script :Un activator de type Trigger (déclencheur) repèrera l'entrée du joueur dans l'abri. Un script désactivera Emma lorsque on trouve Shirley,un script fait s'ouvrir le labo, variables pour les dialogues d'emma.


ORGANIGRAMME DE LA QUETE MONMQ01


LA QUETE DEUXIEME PARTIE MONMQ02 : Retour vers l'être aimé


- Lorsqu'on a trouvé Shirley dans le Conteneur de Jek, lui parler de sa mère provoquera la première entrée journal de la deuxième partie MONMQ02. Si on parle de son père, Shirley expliquera comment il s'est sacrifié pour ouvrir la porte de l'abri 666. Malheureusement, devenu fou, Shirley a dû s'enfermer dans le labo pour se protéger du Béhémoth.

- Le premier Objectif de quête est d'accompagner shirley en dehors de l'Abri 666.

- Une fois sorti, l'objectif devient le cadavre d'Emma Tinkinson.

- Une phase optionnelle se passera dans Pale Pass : si on a appris comment les habitants se sont échappés de l'Abri, laissant les autres à leur sort (ceux qui avaient commencé la goulification), on débloque des dialogues et on a la possibilité de venger les Tinkinson (Objectif optionnel Karma-).

- Une fois arrivé dans le local de service de la station effondrée, Emma est devenue une goule agressive et doit être tuée. Une fois morte, Shirley vous parle et la quête se termine.

- Deux possibilités optionnelles : si on a tué Emma avant, elle n'a pas été transformée en goule agressive et Shirley en déduit que c'est vous qui l'avez tuée (possibilité de dialogues perk et discours). Si vous êtes retourné dans la station effondrée et découvert le cadavre d'emma, vous pouvez le dire à Shirley, ce qui changera l'objectif de quête en "Amener Shirley voir le corps d'Emma".


TABLEAU RECAPITULATIF QUETE MONMQ02:


Personnages Principaux : Shirley Tinkinson (donneur de quête), Cadavre d'emma Tinkinson (objectif de quête), Faction des Habitants de Pale Pass (renseignements histoire Abri, attitude faux cul), Faction des gardes de Pale Pass (optionnel : vengeance de shirley)


Lieux : Labo Abri 666 (donneur de quête), Atrium (risque que le Behemoth Tinkinson tue Emma), Station Effondrée (locaux de service) : Objectif Quête. Pale Pass (réactions des habitants à emma et à histoire de l'abri 666).


Objectifs de Quête : Sortie de l'Abri 666, Venger les Tinkinson (karma-),


Objets ou capacités utiles : Terminal du superviseur : activation tourelles, histoire abri. , ouverture portes), interrupteurs (ouverture portes), RadAway, Combinaison Anti Radiations (pour résister aux radiations).


Ennemis possibles : Ennemis non tués à l'aller : Radscorpions à l'entrée de l'Abri, Rataupes, Robots, Béhémoth Affaibli (Tinkinson).


Gains possibles : Combinaison Anti-Radiations Avancée (celle de Shirley), karma +. Karma -


Actions de script : Détection de la clé ID de Shirley si le joueur l'a volée, Detection de l'entrée du joueur dans l'Abri 666, détection de la prise de l'holodisque de Shirley par le joueur, variables pour les dialogues sur l'histoire de l'Abri avec les gens de Pale Pass.


ORGANIGRAMME DE LA QUETE MONMQ02 :






Quête Principale, première partie : MONMQ01

la fenêtre de Quête.

Créons notre nouvelle quête : Allez dans Actor Data/Quest et faites un clic droit, et New : rentrez l'ID MONMQ01. Comme Quest Name, mettez "Jamais sans ma fille !". Mettez une priorité de 50 et cochez la case Start GAme Enabled pour que la quête soit active dès le début du jeu. Cliquez sur OK pour valider, et sauvez le mod.

Ouvez votre nouvelle quête MONMQ01 en double cliquant dessus.





Quest Stages

L'onglet Quest Stages regroupe les étapes de la quête.

Cliquez sur l'onglet Quest Stages. Nouys allons rentrer les principales étapes de quête.

Faites un clic droit dans la liste des index et selectionnez New. Rentrez le nombre 5 et cliquez sur l'index 5. Dans la liste de log entry (celle du haut), faites clic-droit puis New. Dans le cadre Log Entry (en dessous), mettez la description "Rencontre d'emma dans la station effondrée pres de springvale". Appuyez sur entrée et fermez la fenêtre de correction avec Cancel. En Result Script, mettez les deux lignes qui activent le stage et son objectif :






setObjectiveDisplayed MONMQ01 5 1 setstage MONMQ01 5


Faites un index 10, mettez en Log Entry : Emma donne la quête au joueur. Le journal donne aussi l'objectif de trouver l'Abri 666. Il y a donc deux entrées journal à commander. Seul le Stage 10 est activé, car le prochain, trouver l'abri 666 ne sera activé qu'au stage 30. Donc, en Result Script, mettez :

setObjectiveDisplayed MONMQ01 10 1 setObjectiveDisplayed MONMQ01 30 1 setstage MONMQ01 10


Faites un index 20 avec en log Entry : Un des habitants du village apprend au joueur que l'Abri 666 se situe à l'est de Pale Pass, au bout du canyon. En result script le stage 20 est activé, et on donne l'objectif 20 (l'abri 666 est à l'est de Pale Pass, au fond du canyon) :

setstage MONMQ01 20 setObjectiveDisplayed MONMQ01 20 1


Faites un index 30 avec en log Entry : Abri 666 trouvé. En result script le stage 30 est activé, et l'objectif 30 est completé, et on donne l'objetif 50 (trouver où est cachée Shirley dans l'abri 666) :

setObjectiveCompleted MONMQ01 30 1 setstage MONMQ01 30 setObjectiveDisplayed MONMQ01 50 1


Faites un Index 50 avec en Log Entry : Le joueur apprend que Shirley est dans le Labo. On déclare l'objectif 50 completé, on active le Stage 50 et on donne comme nouvel objectif 100 d'ouvrir le labo secret de l'abri et de parler à Shirley.

setObjectiveCompleted MONMQ01 50 1 setstage MONMQ01 50 setObjectiveDisplayed MONMQ01 100 1


Faites un index 100 avec en Log Entry : Le joueur parle à Shirley Tinkinson dans le labo de l'abri 666. Valide le stage 100, donne 200 points de Karma, et Déclare tous les objectifs remplis. Termine la quête et enchaine sur la 2eme partie (cela sera rajouté dès qu'on aura créé la 2ème partie de quete.

setObjectiveCompleted MONMQ01 100 1 setstage MONMQ01 100 rewardKarma 200 completeAllObjectives MONMQ01

Cochez "Complete Quest".


Faites un Objectif 110 avec en Log Entry Quête échouée ou refusée.

setstage MONMQ01 110 rewardKarma -100 completeAllObjectives MONMQ01


Quest Objectives pour MONMQ01

Les objectifs de quêtes tels qu'ils sont visibles par le joueur dans le journal.

Cliquez sur l'onglet Quest Objectives, et faites un clic droit puis new dans la première ligne du champ Objective Index : mettez 5. Dans le cadre Quest Objectives Data :

- à l'index 5, mettez en Display text cette entrée journal :"Dans une station effondrée près de Springvale, j'ai rencontré une goule appelée Emma Tinkinson. Elle aussi vient d'un abri, l'Abri 666, sur l'île de Little Pawn Island."

- Mettez maintenant un nouvel Objectif 10 "Emma me demande de retrouver sa fille Shirley."

- Mettez un objectif 20 "L'Abri 666 se trouve à l'est de Pale Pass, au fond du canyon."

- Mettez de la même manière un objectif 30 "Trouver l'Abri 666.",

- puis un objectif 50 "Cherchez la cachette de Shirley dans l'Abri 666.".

- Enfin l'objectif 100 avec un log entry "Pénétrer dans le laboratoire secret de l'Abri 666 et parler à Shirley Tinkinson.". Cochez "Complete Quest" pour l'étape 100. Validez avec OK.

Quête Principale, deuxième partie : MONMQ02

Créons la quête de la deuxième partie : Allez dans Actor Data/Quest et faites un clic droit, et New : rentrez l'ID MONMQ02. Comme Quest Name, mettez "Retour vers l'être aimé !". Mettez une priorité de 50 et cochez la case Start GAme Enabled pour que la quête soit active dès le début du jeu. Cliquez sur OK pour valider, et sauvez le mod.


Réouvrez la quête MONMQ01 pour rajouter l'enchainement à la quête MONMQ02 : cliquez sur le Quest Stage 100 et à coté de la case cochée "Complete quest", selectionnez MONMQ02 dans la liste déroulante Next Quest. Validez avec OK.


Ouvrez votre nouvelle quête MONMQ02 en double cliquant dessus.


Quest Stages

Cliquez sur l'onglet Quest Stages. Nouys allons rentrer les principales étapes de quête.

Faites un clic droit dans la liste des index et selectionnez New. Rentrez le nombre 5 et cliquez sur l'index 5. Dans la liste de log entry (celle du haut), faites clic-droit puis New. Dans le cadre Log Entry (en dessous), mettez la description "Shirley veut sortir de l'abri 666". Appuyez sur entrée et fermez la fenêtre de correction avec Cancel. En Result Script, mettez les deux lignes qui activent le stage et son objectif :

setObjectiveDisplayed MONMQ02 5 1 setstage MONMQ02 5


Faites un index 10, mettez en Log Entry : Shirley donne la quête au joueur. Le journal donne aussi l'objectif de sortir de l'Abri 666. Le Stage 10 est activé. L'Objectif 5 est completé. Donc, en Result Script, mettez :

setObjectiveDisplayed MONMQ02 10 1 setObjectiveCompleted MONMQ02 5 1 setstage MONMQ02 10


Faites un index 50 avec en log Entry : sortie de l'Abri 666 . En result script le stage 50 est activé, et l'objectif 10 est completé, et on donne l'objetif 50 (emmener shirley voir sa mère dans la station effondrée) :

setObjectiveCompleted MONMQ02 10 1 setstage MONMQ02 50 setObjectiveDisplayed MONMQ02 50 1


Faites un index 90 avec en log Entry : arrivée à la station, emma a été tuée ! le joueur doit protéger shirley . En result script le stage 50 est activé, et l'objectif 10 est completé, et on donne l'objetif 50 (emmener shirley voir sa mère dans la station effondrée) :

setObjectiveCompleted MONMQ02 50 1 setstage MONMQ02 50 setObjectiveDisplayed MONMQ02 90 1


Faites un Objectif 100 avec en Log Entry : Shirley vous remercie, fin de quête. Valide le stage 100, donne 200 points de Karma, et Déclare tous les objectifs remplis. Termine la quête.

setObjectiveCompleted MONMQ02 100 1 setstage MONMQ02 100 rewardKarma 200 completeAllObjectives MONMQ02

Cochez "Complete Quest".


Faites un Objectif 110 avec en Log Entry : Shirley est morte, quête échouée. Valide le stage 110, donne -100 points de Karma, et Déclare tous les objectifs remplis. Echoue la quête.

setObjectiveFailed MONMQ02 100 1 setstage MONMQ02 110 rewardKarma -100 completeAllObjectives MONMQ02

Cochez "Fail Quest".


Quest Objectives pour MONMQ02

Cliquez sur l'onglet Quest Objectives, et faites un clic droit puis new dans la première ligne du champ Objective Index : mettez 5. Dans le cadre Quest Objectives Data :

- à l'index 5, mettez en Display text cette entrée journal :"Shirley Tinkinson était emprisonnée dans l'Abri 666. Son père a pris une surdose de JEK pour forcer la porte de l'Abri, avant de succomber à la folie. Elle s'est barricadée dans le labo."

- Mettez maintenant un nouvel Objectif 10 "Accompagnez Shirley à la sortie de l'Abri 666."

- Mettez de la même manière un objectif 50 "Retournez voir Emma avec Shirley dans la station effondrée.",

- puis un objectif 90 "Emma Tinkinson a été tuée par des Yao Guai ! Protégez Shirley..".

- Enfin l'objectif 100 avec un log entry "Shirley vous remercie tout de même. Elle va veiller sur le repos éternel de sa mère..". Validez avec OK.

- Rajoutez une étape 110 pour le cas où Shirley est morte : "Shirley est morte !".

Validez vos changements avec OK. Sauvez le mod et faites une sauvegarde de secours.



Les structures de stage et d'objectifs des deux quêtes sont intégrées. Il ne reste qu'à les provoquer dans le jeu grâce aux dialogues et à des scripts.


Les dialogues avec la goule Emma Tinkinson

Les dialogues du topic principal de la quête MONMQ01.

Dans la quête MONMQ01, nous allons faire le dialogue de bienvenue d'emma : cliquez sur l'onglet Topics, puis dans la liste à gauche, faites un clic droit puis New. Cherchez GREETING dans la liste qui apparait. Ensuite faites un clic droit sur la première ligne du cadre "info", et selectionnez New.

Comme réponse mettez "Qui êtes-vous ? Ne me faites pas de mal !", avec Fear comme emotion, et 100 en valeur. Validez. Cochez la case Say Once pour que la phrase ne soit dite qu'une fois. Pour désigner emma Tinkinson, faites un clic droit dans le cadre condition, selectionnez New, et rentrez GetIsID comme fonction, MONTinkinsonEmma à la place d'INVALID, et == 1.

Puisque cette phrase ne sera dite qu'une fois, copiez-la en faisant un clic droit sur l'info, et en selectionnant copy. Changez la phrase du dessous en

Créons ensuite les réponses du joueur :

- Faites un clic droit dans la liste de gauche des topics et selectionnez New. Faites un nouveau clic droit dans la liste qui apparait et rentrez l'ID du premier topic: "MONTopicMQ01EmmaKill", et validez. Cliquez sur ce nouveau topic dans la liste de gauche et faites un clic droit dans le cadre info, selectionnez new. Comme réponse, rentrez "Laissez moi tranquille !"; avec une emotion Fear de 100. Validez. Comme Prompt, mettez :"M'adresse pas la parole, ou je te bute sale goule !"Cochez la case "goodbye" et mettez comme condition GetIsID MONEmmaTinkinson == 1. Comme Result Begin mettez rewardKarma -30


- Créez un autre topic "MONTopicMQ01EmmaHistoire01", avec comme info "Oui, c'est une longue histoire. Vous venez d'un abri vous aussi, vous pourriez peut-être m'aider ?" avec une emotion "sad" de 50. Juste en dessous de cette response, rajoutez en une deuxième "Je viens d'un Abri, l'Abri 666 sur l'île de Little Pawn Island." avec une Emotion Type Neutral de 50. En prompt, mettez "Ce Pipboy à votre bras... vous venez d'un Abri ?" et copiez collez la condition GetIsID MONTinkinsonEmma == 1. Dans le Cadre Result End, mettez la phrase de script SetStage MONMQ01 5. Cela déclenchera la quête pour le joueur.

Créez un troisième topic "MONTopicMQ01EmmaGoule" avec comme info "Une goule ? Vous trouvez ? Je ne veux pas en parler.", un emotion "sad" de 100. Comme Prompt mettez "Qu'est ce que vous faites toute seule ? Vous n'êtes pas avec les autres goules ?"


Maintenant, nous allons ajouter ces topics au Greeting de tout à l'heure pour les valider. Cliquez sur la première info du topic Greeting de la quête MONMQ01, et faites un clic droit dans le cadre Addtopic à droite. Cochez "Current Quest Only" pour avoir les topics créés pour cette quête, et rajoutez les dans le cadre. Validez.

Allez tester ingame. En parlant à Emma, vous devriez avoir trois phrases. Chacune donne un dialogue différent. On peut remarquer qu'il n'est pas réaliste que lorsqu'on insulte emma, et qu'elle rompt le dialogue, elle puisse parler ensuite comme si rien n'était.

Utilisation d'un script de quête

Un script de quête indique plusieurs choses utiles à la quête : il déclare les variables qui servent à déclencher des dialogues ou des évènements relatif à la quête. C'est ce que nous allons voir dans ce paragraphe. Et en fonction de la progression de la quête, de certaines variables, ou d'actions du joueur ou de créatures du jeu, le script déclenchera des évènements. Contrairement à un script local qui s'éxécute sur un objet tant que le joueur est dans le voisinage immédiat de l'objet, un script de quête est actif tant que la quête est active, même si le joueur est loin d'un emplacement de la quête. Il ne s'éxécute pas à chaque frame (image) de temps de jeu, mais à un intervalle régulier (par défaut toutes les 5s) : cela permet à un grand nombre de scripts d'être actifs en même temps, sans saturer le jeu. Si la quête est stoppée par la commande StopQuest, le script le sera aussi, économisant des ressources pour le jeu.


Revenons à Emma que nous avons fâchée avec une insulte. Nous allons utiliser une variable qui agira comme un flag : cette variable indiquera qu'on a insulté Emma, et les dialogues prenant en compte cette variable changeront son comportement. Il faut tout d'abord créer cette variable. Cela se fait dans un script. Puisque c'est un dialogue associé à la quête MonMQ01, nous allons créer un script de quête MONScriptMQ01, et déclarer la variable MONVarEmmaInsulte :

- Ouvrez la fenêtre de script, soit en cliquant sur le menu Gameplay, puis sur Edit Script, soit en cliquant sur l'icone avec un Crayon.

- Dans le menu déroulant Script Type, selectionnez Quest pour indiquer qu'il s'agit d'un script de quête.

- Ecrivez ces deux lignes ; la première déclare le nom du script. La deuxième déclare la variable : elle pourra maintenant être prise en compte dans le jeu !


ScriptName MONScriptMQ01


Short MONVarEmmaInsulte



- Cliquez sur la disquette de la fenêtre script pour le sauver, ou sur Script puis sur Save dans le menu de script.

Pour l'instant le script ne contient que des variables, mais au fur et à mesure que nous mettrons en place la quête, il s'étoffera !


Pour que le script soit actif, il faut soit l'attacher à un objet (monstre, NPC, objet du jeu, quête,...), soit le démarrer par la commande startscript, dans le résultat d'un dialoque ou d'un autre script. Dans notre cas, il sera attaché à la quête MONMQ01.


- Double cliquez sur votre Quête MONMQ01 dans l'arborescence de la fenêtre Object (Actor DAta/Quest).

- Dans le menu déroulant Script de la fenêtre de quête, selectionnez MONScriptMQ01. Validez avec OK.


Changer des dialogues avec une variable

Donc en résultat de la phrase "M'adresse plus la parole, sale goule !", nous changerons la valeur de la variable de 0 à 1. Par la suite, pour le dialogue de bienvenue GREETING, une phrase "Laissez-moi !" apparaitra, et la condition MONVarEmmaInsulte == 0 sera ajoutée aux autres topics d'emma pour cette quête. Emma refusera de les dire.

- Ouvrez la quête MONMQ01. Ouvrez l'onglet Topics.

- Cliquez sur le topic MONTopicMQ01Emmakill et sur l'info "Laissez-moi tranquille" qui correspond à "M'adresse plus la parole...", et mettez en Result Begin : Set MONMQ01.MONVarEmmaInsulte to 1 (la syntaxe est : set IDdeQuete.IDdeVariable to X).

- Cliquez sur le topic GREETING, et faites un clic droit et Copy sur l'info "Qu'est ce que vous me voulez". Double cliquez sur la ligne du haut, et changez le texte de l'info en "Laissez-moi !", avec une Emotion Type "Anger" de 100. Validez. Comme condition à cette info, rajoutez GetQuestVariable, puis à la place d'invalid, selectionnez la quête MONMQ01 et la variable MONVArEmmaInsulte, et == 1.

- Cliquez sur le topic MONtopic MONTopicEmmaGoule, puis sur l'info, et rajoutez comme condition GetQuestVariable MONMQ01.MONVarEmmaInsulte == 0. Faites un clic droit et Copy condition pour le topic suivant.

- Cliquez sur les topics MONTopicEmmaHistoire, et MONtopicEmmaKill et rajoutez à leurs infos la condition précédente, en faisant un clic droit dans la liste des conditions, et Paste condition.


Voila ! Si on insulte Emma, elle refusera de donner plus d'infos, et il faudra alors la tuer pour récupérer l'holodisque, ou le lui voler. Les variables sont utilisables pour quantités de choses, pour prendre en compte les actions du joueur et leurs répercutions. Préparez-vous à vous en servir !


Prévoir les cas particuliers : vol de la clé, mort du donneur de quête

Notre première quête était très simple : le joueur est obligé de donner le fusil pour finir la quête, et le donneur de quête est immortel. Cela nous avait évité de prévoir d'autres situations que le déroulement "idéal" de la quête. Pour celle-ci, nous allons nous décarcasser un peu plus ! Le donneur de quête, Emma la goule, pourra être tuée par le joueur, et il faudra prévoir ce cas de figure dans la quête. Et la clé ID de Shirley, nécessaire pour rentrer dans l'abri, pourra être volée à Emma.

Détection de la mort d'Emma :

Normalement, si Emma la goule meurt avant le début de la quête, ou avant d'avoir atteint le stage 10, la quête est bloquée puisque ce sont les dialogues d'emma qui la font avancer. Nous allons donc prévoir ce cas particulier :

- Ouvrez la quête MONMQ01 et cliquez sur l'onglet Quest Stages. Nous allons rajouter un stage qui détecte que le joueur a pris la clé sur Emma la goule alors qu'elle est morte.

- Rajoutez une entrée 7 dans la liste des index, et comme Log Entry, mettez :"Le joueur a volé le passe de Shirley pour l'abri 666, sur le cadavre d' Emma la goule.". Comme Result Script au Stage 7, mettez :

setObjectiveDisplayed MONMQ01 7 1 setObjectiveDisplayed MONMQ01 30 1 setstage MONMQ01 7

Par ce biais, on démarre la quête à la mort d'Emma, dès que le joueur lui a pris la clé. Le reste de la quête continuera normalement.

- Cliquez sur l'onglet Quest Objectives de la quête MONMQ01, et rajoutez un objectif 7 : "J'ai trouvé un passe avec deux inscriptions : Abri 666 et Shirley T."

- Ouvrez le script de quête de MONMQ01 : nous allons rajouter un bloc GameMode qui va détecter la prise par le joueur de l'ID de Shirley alors que Emma est morte, et que la quête n'a pas attenit le stage 7. Le script de quête doit maintenant ressembler à ça :


ScriptName MONScriptMQ01

Script de quete pour jamais sans ma fille.

Short MONVarEmmaInsulte ;flag si emma est insultee


begin GameMode

if (Player.GetItemCount MONVault666ID >= 1 ) if ( GetStage MONMQ01 < 7 ) if (MONTinkinsonEmmaRef.GetDead == 1 ) SetStage MONMQ01 7 endif endif endif


End



Détecter le vol de l'ID par le joueur et ses conséquences avec Emma :

Normalement, Emma doit vous donner l'ID de shirley en même temps qu'elle vous donne la quête (Stage 10). Si vous volez le passe sur Emma, puis que vous lui parlez comme si rien n'était, elle ne peut logiquement pas vous donner le passe, puisque vous lui avez volé. Nous allons donc faire qu'elle voie que vous lui avez volé le pass, refusant de vous donner la quête. Emma aura donc une autre réaction négative, et ce sera une autre entrée journal 11 qui sera donnée à la place de la 10.

- Ouvrez la quête MONMQ01 et cliquez sur l'onglet Quest Stages. Rajoutez un index 11, avec en Log Entry "Emma la goule a vu que vous aviez volé le pass de l'abri 666". En Result Script, mettez :

setObjectiveDisplayed MONMQ01 11 1 setObjectiveDisplayed MONMQ01 30 1 setstage MONMQ01 11


- Cliquez sur l'onglet Quest Objectives et rajoutez un stage 11, avec comme Display Text :"La goule Emma Tinkinson m'a dans le nez. Elle a dû s'apercevoir que je lui ai volé le pass de l'Abri 666."

- Dans le topic MONTopicEmmaHistoire01, rajoutez en première ligne, tout en haut, une nouvelle Response "Qu'est ce que vous lui voulez, sale voleur ? Si vous faites du mal à ma fille, je vous étripe !" avec une émotion Angry de 100. En Prompt, mettez "Je cherche l'Abri 666...C'est qui cette Shirley ?", et mettez comme conditions :

GetQuestVariable MONMQ01 MONVArEmmaInsulte == 0 GetStageDone 11 == 1 GetIsID MonTinkinsonEmma == 1

Cette phrase sera dite après qu'emma se soit aperçue que vous lui avez volé l'ID de Shirley, alors que la quête est lancée, au stage 11.

- Cliquez sur la Réponse "J'ai réussi à m'échapper de cet Abri...", et faites un clic droit, puis copy.

- Modifiez la réponse "J'ai réussi..." du haut comme suit : Rajoutez une condition GetItemCount MONVault666ID >= 1 Subject.

- Modifiez la réponse "J'ai réussi..." du bas de cette manière : Modifiez le Prompt en "C'est quoi cet Abri 666 ?", et changez le deuxième Response text (de cette réponse toujours) en "Si vous la retrouvez,.. Bon sang ! Où est son passe ?! Vous me l'avez volé ! Foutez le camp d'ici !". Cochez Goodbye. En Result Script, mettez SetStage MONMQ01 11. Cela fait que la quête ne démarrera pas au stage 10 mais au stage 11, ce qui pourra être détecté par la suite.


Test des cas particuliers :


- Testez la quête en volant Emma avant de lui parler, et voyez si elle vous envoie paitre !

- Rechargez votre partie et testez la quête en tuant Emma avant de lui parler, et volez-lui l'ID de Shirley. La quête doit démarrer tout de même, mais de manière plus vague (vous n'avez eu aucun renseignement par emma).


Tout cela peut sembler fastidieux, mais pour que le joueur s'immerge bien dans votre mod, il faut prévoir certaines actions logiques, et éviter que la quête se trouve bloquée ou franchement invraissemblable. Veillez aussi à ne pas tomber dans l'excès inverse, et à prévoir tellement de cas particuliers que votre quête finira comme un sac de noeuds...



Continuer la quête :

Si on a parlé d'un abri, la quête a commencé et est au Stage 5. Rajoutons une ligne au Topic MONTopicEmmaHistoire, si Stage == 5, ou Emma raconte que sa fille y est enfermée et vous demande de la retrouver. La quête passera au stage 10, et activera un objectif : Trouver l'abri 666.

Ouvrez la quête MONMQ01 et le topic MONTopicEmmaHistoire. Faites un Copy sur la première info pour aller plus vite, et ajoutez une condition GetStage MONMQ01 >= 5 (et non pas GetStageDone qui necessite un objectif de quête). Changez le Result en SetStage MONMQ01 10. Changez la première Response Text en "J'ai réussi à m'échapper de cet Abri et à me réfugier ici. Mais ma fille, Shirley est toujours là bas.". Changez la deuxième en "Si vous la retrouvez, dites-lui que je vais bien. Elle aura peu-être besoin de vous pour sortir.", avec une emotion type "happy" de 50. Changez le prompt en "Qu'est ce qui vous est arrivé dans cet Abri ?"

Une fois que la quête en est au stage 10, nous changerons son dialogue pour ce topic en "Je cherche toujours votre fille..." : Copiez la première info du Topic MONTopicEmmaHistoire, et changez la condition en GetStageDone >= 10. Supprimez le Result (le dialogue n'a pas d'action). Changez le premier Response Text d'emma en "Faites attention, l'Abri est saturé de radiations. Trouvez de quoi vous protéger." avec une emotion fear 50, et supprimez le deuxième Response text avec clic-droit et Delete.


La recherche de renseignements :

La plupart du temps dans Fallout3, dès l'obtention de la quête, un joli marqueur indique l'objectif et le joueur n'a plus qu'à suivre. Or, dans un monde dévasté qu'il découvre, le joueur n'est pas sensé aller directement au but. C'est pour cela que seul un renseignement obtenu par un des villageois mettra l'objectif sur votre pipboy, en même temps qu'il activera le stage 20 qui donne la position de l'Abri.

Ouvrez la quête MONMQ01 et l'onglet Topics : ajoutez un nouveau topic dans la liste des topics : MONTopicMQ01Abri666.

Ajoutez une nouvelle réponse pour les gardes de Pale Pass : "Vous voulez...rentrer dans un Abri ? Vous êtes malade !" avec une emotion disgust de 100, et en prompt : "Vous ne sauriez pas où il y a un abri dans le coin ?". Comme conditions, mettez GetIsFaction MONFactionPalePassGardes == 1, et GetStage MONMQ01 < 30 et GetStage MONMQ01>= 7(on doit avoir eu la quête -MONMQ01>=7- et on ne doit pas avoir déjà trouvé l'Abri -MONMQ01<30). Faites ensuite un clic droit et Copy All Conditions, car vous aurez besoin de ces conditions pour les réponses suivantes.

Pour la réponse des villageois qui sera en général négative, copiez la réponse des gardes. Modifiez celle d'en dessous : double cliquez dessus, et rentrez le texte "Un Abri ? Il n'y a pas d'Abri ici. Faites-moi confiance." à la place, et une émotion fear de 50. Comme conditions, faites un Paste Conditions dans le cadre, et changez la faction de GetInFaction en MONFactionPalePass.


Chi Woo le marchand, a toujours un pipboy à son bras, ce qui pourra laisser penser au joueur observateur qu'il sait quelque chose. Si on l'interroge normalement, il répondra comme les autres villageois. Si on lui parle de son pipboy, avec un speech challenge, il dira l'emplacement de l'abri en cas de réussite. Mettez le texte : "Qu'est ce que vous cherchez là-bas ? C'est à l'est de Pale Pass, au fond du canyon. Faites attention, c'est dangereux. Plus que dangeureux." avec une émotion Surprise de 50, et en prompt, "Vous avez un pipboy ; vous venez d'un Abri. Dites-moi où il est ?". Cochez la case Speech Challenge en Very Easy. Dans le cadre Conditions, faites un clic droit et Pase Conditions (celles que nous avions copiées). Les deux conditions de stages sont toujours valables. Changeons la condition de faction, et remplaçons là par GetIsID MONPalePassVendeur == 1. En Result End, mettez SetStage MONMQ01 20 pour mettre jour le stage en cas de réussite.


Dans cette configuration, on ne posera à Chi Woo que le speech challenge, et pas la question par défaut. Comme nous voulons avoir les deux, et que seule la première info valable est dite, il faut déplacer l'info Speech Challenge dans un autre topic : Faites un clic droit et New dans la liste des topics à gauche. Créez le topic MONTopicAbri666Speech. Ensuite, revenez sur le topic MONTopicAbri666 simple. Faites un clic droit sur l'info de Chi Woo, et selectionnez Move to Topic ; selectionnez le topic MONTopicAbri666Speech, et validez. Vous savez déplacer une info d'un topic à l'autre !


Allez essayer ingame. Une fois la quête commencée, parlez aux gardes, aux Villageois, puis à Chi Woo. Pour l'instant, Chi Woo donnera le texte de l'emplacement, mais il n'y aura pas de marqueur. Nous le rajouterons lors de la prochaine étape, car le déclencheur du stage 30 n'est pas encore fait.




Utiliser un déclencheur (Trigger)

L'objectif 10 sera rempli lorsque le joueur passera la porte défoncée de l'Abri 666. Si la porte avait été fonctionnelle, nous aurions pu lui adjoindre un script détectant son activation, et mettant le journal et le stage à jour. Comme la porte est statique, nous allons faire un Trigger : une zone qui detectera le passage du joueur.


Fichier:GECKWiki Quete10.png
Appuyez sur le bouton script, puis sur le menu script, et New... et tapez votre script !

Faisons le script Trigger qui détectera le passage du joueur. Cliquez sur le bouton script dans la barre d'outils (crayon) et selectionnez New. Rentrez le script suivant :


scn MONMQ01stage10triggerSCRIPT

begin onTriggerEnter player

  if getStage MONMQ01 < 30
     setStage MONMQ01 30
  endif

end


Commentaires : Scn est l'abréviation de ScriptName. Le prémier bloc délimité par Begin/End est un bloc Trigger (OnTriggreEnter) et Player definit le joueur comme acteur. Ensuite, si la condition que le stage n'est pas encore à 30 (et que le joueur entre dans la zone Trigger), la ligne SetStage 30 met le Stage à 30. Vérifiez bien qu'il y a autant de If que de Endif (le endif termine le bloc de condition if), et que End termine le script.

Attention à ne pas faire de fautes d'orthographe ou de syntaxe (espaces mal placés dans une référence par exemple : player n'est pas play er). Lorsque vous enregistrez le script, le Geck tente de le compiler : s'il échoue, vous aurez un message d'erreur, et vous devrez le corriger jusqu'à ce qu'il l'accepte.



Appuyez sur le bouton Trigger, puis tracez au sol le rectangle de votre zone, puis la hauteur.
Fichier:GECKWiki Quete12.png
Remplissez la fenêtre Activator de votre Trigger.

Ouvrez la cellule intérieure de l'Abri 666 : en double cliquant dessus sur la fenêtre Cell View. Centrez la vue sur la porte dentée de l'abri, du dessus.

- Appuyez sur le bouton T (au milieu de la barre d'outils du Geck, dans un cube), qui active le mode Trigger.

- Délimitons la base du cube de la zone. Maintenez un clic droit près de la porte, et faites une diagonale jusque de l'autre coté (un carré de fil de fer noir devrait apparaitre). Relachez le clic droit.

- Determinons la hauteur du paralelepipède : bougez la souris pour faire apparaitre le cube, et cliquez droit pour fixer la hauteur. Nous pourrons ajuster les limites plus tard.

- Une fenêtre d'activator apparait. Elle vous donne le choix des activateurs déjà créés, mais nous allons en créer un nouveau : Cochez la case New. Modifiez l'ID en MONTriggerMQ01Stage10, effacez le champ Name. Dans le champ Sounds, Cliquez sur le bouton à coté d'Activate et selectionnez NONE tout en haut de la liste. Laissez tout le reste décoché.

- Dans la fenêtre Render, double cliquez sur le trigger, et dans sa fenêtre de référence, cochez Persistence Reference, et nommez la référence MONTriggerMONMQ01Stage10Ref, pour qu'elle puisse être identifiée comme marqueur.

- Ouvrez la quête MONMQ01, puis cliquez sur l'onglet Quest Objectives, et sur l'objectif 20, faites un clic droit et New dans le cadre Target Ref et dans le cadre Quest Target Data, selectionnez la cellule de l'Abri MONVault666Entree, puis la référence du Trigger. Enfin, rajoutez la condition GetStage MONMQ01 < 30 : la fleche disparaitra dès que le stage 30 sera activé.

Avant de finir,


Testez Ingame : En passant la porte de l'Abri 666, l'objectif 30 doit être completé, et un nouvel objectif 50 doit apparaitre.


En même temps qu'elle donne la quête, Emma la goule vous donnera l'ID de Shirley, qui servira une fois dans l'Abri :

- Allez dans l'arborescence de la fenêtre Object dans Items/Key, et trouvez la clé Vault106MasterKey. Double cliquez dessus, et changez son ID en MONVault666ID.

- Allez dans la cellule du métro effondré MONMetro03 et double cliquez sur la goule MONTinkinsonEmma, rajoutez dans Reference Editor ID: MONTinkinsonEmmaRef : c'est la référence et non le NPC de base qui doit être identifié pour les scripts. cliquez ensuite sur Edit, puis sur l'onglet d'inventaire. Faites-y glisser l'ID de Shirley (depuis Items/Key).

- Ouvrez la quête MONMQ01 et le topic MONTopicEmmaHistoire. A l'info "J'ai réussi à m'échapper...", rajoutez la condition GetItemCount MONVault666ID >= 1, et changez la cible subject en Target (c'est Emma qui doit avoir le passe avant de le donner)..

- En résult du topic, à la suite des autres lignes, pour enlever le pass à Emma et l'ajouter au joueur, rajoutez : MONTinkinsonEmmaRef.removeitem MONVault666ID 1 player.additem MONVault666ID 1

Ensuite, copiez cette info ("J'ai réussi à m'échapper...), et modifiez celle du bas en enlevant la condition GetItemCount sur le MONVault666ID. Enlevez aussi les deux lignes removeItem et Additem du Result.Modifiez la deuxième Response Text : "Si vous la retrouvez,.. Bon sang ! Où est son passe ?! Vous me l'avez volé ! Foutez le camp d'ici !".

Il faut prendre en compte le cas où on a tué Emma avant que la quête ait atteint le stage 10. Si le joueur prend le pass avant l'étape 10 du journal, le journal avertit qu'on a trouvé le pass de Shirley pour l'abri 666. Nous devons ajouter une étape à la quête, qui sera l'étape 11.

Ouvrez la fenêtre de quête de MONMQ01. Cliquez sur l'onglet Quest Stages et mettez un index 11 avec en Log entry :"Le joueur a pris le pass a Emma (tuee ou volee), prévient qu'on a trouvé un passe pour l'Abri 666 appartenant à une certaine shirley." En Result Script, mettez les lignes suivantes :

setObjectiveDisplayed MONMQ01 11 1 setObjectiveDisplayed MONMQ01 30 1 setstage MONMQ01 11

Cliquez maintenant sur l'onglet Quest Objectives et ajoutez une entrée 11 "J'ai trouvé un passe pour un Abri 666, au nom de Shirley Tinkinson."

Enfin, nous allons tout de suite utiliser le passe de shirley : Allez dans la cellule de l'abri 666. Centrez sur la salle du réacteur près de l'entrée. Double cliquez sur la porte pour éditer sa référence, et cliquez sur l'onglet lock. Cochez "Locked", et comme level, selectionnez "Necessite une clé". Comme Key, choisissez MONVault666ID. Validez avec OK. Dorénavant, sans le passe l'abri sera au 3/4 inaccessible, et ce n'est qu'avec le passe et la quête commencée que l'on pourra aller plus loin.

Au passage, cela nous évitera de gérer le cas où on trouverait la fille Shirley avant Emma...


Créer une note et l'utiliser pour la quête

Une fois entré dans l'abri, il faut trouver où est cachée Shirley, nous en sommes au Stage 30 et l'objectif est l'index 50 (trouver la cachette de Shirley). L'objet qui indiquera où est Shirley est un Holodisque. Une fois le message de l'holodisque lu l'objectif 50 sera complété, le stage passera à 50 et un nouvel objectif 100 sera donné au joueur.

Les Notes peuvent avoir plusieurs formes holodisques, feuille de papier, entrée de terminal... Nous pouvons en copier une qui correspond à nos besoins.



La note de l'holodisque et son placement dans le jeu.

Dans la fenêtre Object, allez dans Item/Note et cherchez Vault112holotape. Double-cliquez dessus pour l'éditer, vous remarquerez qu'on voit l'icone de l'holodisque tel qu'il apparait dans l'inventaire du pipboy. Changez son ID en MONShirleyHolodisque. Validez. A la question "create a new form", répondez Yes pour créer un nouvel objet.

Maintenant, double-cliquez sur votre nouvelle note pour l'éditer, et modifiez son contenu :

Name : son nom tel qu'il apparait en jeu : Holodisque de Shirley Tinkinson

Note type : le type de note, sonore, en texte. Ce sera du texte, donc cochez la case Text

Owner Quest : Spécifie si la note appartient à une quête. Effacez la mention existante à la quête du jeu MQ04, en faisant un clic droit dessus, et Delete. Faites maintenant un autre clic droit puis new dans le champ Owner Quest et selectionnez MONMQ01 dans la liste qui apparait.

Note Data : Le contenu de la note que pourra obtenir le joueur, ici, un texte. Rentrez-le tel qu'il sera lisible dans le jeu : La première tentative a échoué. Mais au moins, tout n'est pas perdu. Nous allons devoir repartir dans le Laboratoire de l'Abri pour en faire une deuxième. Je devrais réussir à trouver la bonne dose.

Mon père a confié un des derniers Steath Boy à ma mère. Si nous réussissons, il faudra qu'elle aille chercher du secours. Je resterai en sécurité dans le Labo si je ne parviens pas à rejoindre la sortie à temps.

Appuyez sur OK pour valider la note.


Chargez maintenant la cellule de l'Abri 666 et centrez sur la salle commune près de l'Atrium. Zoomez sur une des tables, et faites glisser l'holodisque (toujours dans Item/Note) jusque dans la fenêtre Render. Placez-le sur une table dans un coin sombre de la salle : les holodisques étant petits et pas très visibles, il est préférable de les mettre dans un endroit sombre, et de rajouter une petite lumière au dessus pour attirer le joueur. Allez chercher une lumière VaultAmb dans Light, et mettez là au dessus de l'holodisque.


Utiliser la note pour déclencher le stage 50

Pour déclencher un script quand le joueur prend la note, nous avons un problème : on ne peut attacher de script à une note. Cependant, nous pouvons détecter grâce à un Trigger que le joueur a bien la note dans son inventaire. Comme cela se fait dans la salle commune, il suffit de faire un carré trigger assez large autour de la table pour détecter la prise de l'objet.


Faisons tout d'abord le script. Cliquez sur l'icone Script (le crayon), et selectionnez New, et tapez le script suivant :

scriptname MONScriptTrigHoloShirley

begin OnTrigger player

if getStage MONMQ01 < 50

 if player.getHasNote MONShirleyHolodisque
   SetStage MONMQ01 50
 endif

endif

End


Ensuite, créons le Trigger comme nous l'avons fait tout à l'heure. Centrez la vue sur l'holodisque et élargissez un peu la vue.

Appuyez sur le bouton Trigger (le carré avec un T dedans) dans la barre d'outil du Geck, et cliquez au sol à distance de la table. Faites une diagonale pour englober la table et relachez le clic. Maintenant, bougez la souris de haut en bas pour regler la hauteur, et cliquez à nouveau.

Dans la fenêtre d'activator qui s'ouvre, cochez la case New et modifiez l'ID en MONTriggerHoloShirley. Cliquez sur la liste déroulante Script pour y selectionner votre nouveau script, et vérifiez qu'il n'y a pas de son joué dans Sound (si c'est le cas, cliquez sur le bouton et selectionnez la ligne blanche tout en haut).


Maintenant, sauvez le mod, et allez vérifier Ingame que le stage se déclenche bien quand on prend l'holodisque.



Créer des terminaux

Une des choses qui donne le plus d'ambiance à Fallout3, en plus de donner des informations sur le background du jeu, ce sont les terminaux. Techniquement, les terminaux sont des objets activables qui contiennent des notes, comme celle que nous avons fait plus haut.


Créer un terminal simple : Pour commencer, nous allons créer un terminal simple, qui n'aura comme réponse qu'un message d'erreur système (pour le joueur heureusement !).

Les terminaux se trouvent dans l'arborescence de la fenêtre Object sous WorldObject/Terminal. Ouvrez-en quelques-uns pour voir comment ils sont faits.

Nous allons créer un premier terminal avec un virus, à partir du teminal "DefaultTerminalVirus". Ouvrez-le, et renommez-le en MONDefaultTerminalVirus.

Changeons un peu le texte : dans la partie Welcome Text (le texte de bienvenue de l'ordi), changez la dernière ligne en "Analyse nécessaire."

Le cadre Menu Items regroupe les choix du menu de l'ordi. FAites un clic droit et New. Rentrez comme index 1: "Analyse du système de fichiers". Validez avec OK pour fermer la fenêtre.


Allez dans l'arborescence des Objects dans items/Note et créez en une nouvelle, avec une ID MONNoteTerminalCasseAnalyse. Cochez le Note Type : Text. Rentrez le texte :

RobCo DiskSearch Program


Initialisation

Fichiers Boot OK

Table allocation corrompue


Validez avec OK.


Réouvrez la fenêtre du terminal, cliquez sur l'index 1 et cliquez sur Display Note, et cherchez votre nouvelle note MONNoteTerminalCasseAnalyse. Validez avec OK.

Placez le terminal dans le couloir menant au bureau du superviseur, à coté de la porte.

Allez l'essayer ingame.


Faire un terminal de maintenance :

Un nouveau terminal permettra de réparer le terminal d'ouverture du bureau du superviseur. Ouvrez un terminal de type Desk (bureau), comme de DefaultDeskTerminalVirus.

Changez son ID en MONTerminalMaintenance, son name en Terminal de maintenance système.

Comme Welcome Text, mettez : Maintenance systèmes informatiques Abri 666

Faites un index 1 avec comme index text : Analyse terminaux-niveau 1, et en result Text : Tous terminaux branchés actifs.


Rajoutez dans le script MONMQ01 la variable TerminalAllocation, avec cette ligne juste en dessous du premier short : Short TerminalAllocation



Ouvrir le bureau du superviseur avec un interrupteur

A première vue, on se demande bien comment le bureau du superviseur peut s'escamoter. Dans le jeu, cela se fait par l'intermédiaire d'un terminal avec un script de résultat sur une des réponses. Mais nous pouvons faire encore plus simple : avec un interrupteur.

- Si ce n'est pas déjà fait, placez le bureau du superviseur VRmOverseerDeskR01, qui se trouve dans WorldObject/Activator, dans la salle du superviseur. Faites-le bien rentrer en position fermée (passage inaccessible). Double cliquez dessus, et mettez un nom de référence : MONOverseerDeskRef. Cochez la case Persistence Reference, validez avec OK.

- Toujours dans WorldObject/Activator, prenez un ElectricalSwitch et mettez le sur un mur de la salle du superviseur. Double cliquez dessus, renommez la référence MONOverseerSwitch01, cochez Persistent Reference, et validez avec OK.

- Cliquez sur le bureau amovible du superviseur, puis dans le menu du Geck, cliquez sur View puis sur Reference Batch Action Window (raccourci : -). Une fenêtre s'ouvre : elle permet de gérer les relations entre références. Cochez la case Activate Ref, puis en bas sur le bouton Select Reference in Render Window. Une croix rouge apparait ; déplacez-la sur l'interrupteur et double cliquez dès que la croix devient blanche. Validez l'opération avec Done. Une flèche relie alors le bureau amovible à l'interrupteur.


Cette manière de relier des références est très utile, par exemple pour ouvrir des portes, rélier un terminal à une Tourelle Mark (dans le mod, j'ai relié deux tourelles à deux terminaux spéciaux DefaultTurretTermWallDESK grâce à la fenêtre reference Batch (mais avec Link Ref).