Mod:Scripts

De Wikipédia 2197
Sauter à la navigation Sauter à la recherche

Ce tutoriel vous expliquera la base de création de scripts dans Nous Aurons. Pour coder des dialogues, il est préférable de suivre les étapes de ce tutoriel.

Aperçu de la page de scripts.

Outils requis[modifier | modifier le wikicode]

Ce tutoriel utilise principalement l'éditeur de niveaux (Level Editor).

Avant de commencer[modifier | modifier le wikicode]

Prenez le temps de consulter la section Scripting du fichier "readme" de l'éditeur de Fallout Tactics (anglais).

Termes à connaître[modifier | modifier le wikicode]

Entité[modifier | modifier le wikicode]

Personnage (actor) et/ou objet, l'entité est un élément interactif du jeu. La majorité des scripts concerne et affecte les entités.

Player[modifier | modifier le wikicode]

Chaque entité (personnage ou objet interactif) est associée à un player, qu'il soit contrôlé par le joueur ou non. Chaque player est lié à une team, et plusieurs players peuvent avoir la même team. Il y a un nombre illimité de players.

Bulb.svg  Il est possible d'assigner des comportements spéciaux (IA) à chaque player, comme par exemple de fuir le joueur. 



Dans Nous Aurons, les players de base sont:

  1. Scenary : Tout ce qui fait partie du décor et n'a pas un comportement particulier. Comportement: passif.
  2. Joueur : Toute entité contrôlée par le joueur.
  3. Animaux : Animaux de la carte. Comportement: Amicaux par défaut, hostiles si le joueur dépèce un animal ou a de la viande crue sur lui sans ossements pour les distraire.
  4. Humains : Entités variées. Comportement: Neutres par défaut, hostiles si blessés en présence du joueur.
  5. Ennemis : Entités variées. Comportement: Hostiles par défaut, amicaux dans certaines circonstances scriptées.
  6. Amis : Entités variées. Comportement: Amicaux par défaut, hostiles si blessés en présence du joueur.
  7. Banque : Entités scriptées. Comportement: Jamais hostiles.

Team[modifier | modifier le wikicode]

Chaque team détermine l'alignement (de hostile à amical) d'un player vis-à-vis les autres. Cet alignement va de -10 (complète hostilité, point rouge dans la minicarte) à 10 (complète amicalité, point vert dans la minicarte). 0 désigne la neutralité (point gris dnas la minicarte).

Quantity[modifier | modifier le wikicode]

Quantity réfère à une grande liste de conditions possibles pour les entités, à peu près tout ce qui fait partie de la fiche de ceux-ci (exemple : Force, Dextérité, Âge, Sexe, % de Points de Vie, Vivant ou Mort, Dons, Électricité, etc.) peut-être vérifié (compté) dans une des conditions commençant par: Quantity -.

Waypoint[modifier | modifier le wikicode]

Un waypoint est une borne invisible ajoutée dans un lieu avec l'Éditeur de niveaux. Chaque waypoint a un nom de code et un index, et plusieurs waypoints peuvent partager le même nom. Il est possible de programmer un déplacement de personnages en programmant une série de waypoints.

Zone[modifier | modifier le wikicode]

Les zones sont des prismes rectangulaires (avec une largeur, longueur et hauteur) et un nom de code unique dans un lieu. Plusieurs conditions déterminent la présence ou les caractéristiques d'entités dans des zones. Elles sont créées dans l'Éditeur de niveaux.

Exit Grid[modifier | modifier le wikicode]

Zones vertes en bordure d'un lieu qui permet, lorsqu'on marche au milieu de celle-ci, de quitter le lieu en cours pour rejoindre la carte.

Créer un script[modifier | modifier le wikicode]

Ouvrir le fichier du lieu (éditeur de niveaux)[modifier | modifier le wikicode]

  1. Ouvrez le dossier Game/ puis FT Improver.EXE.
    Alert.svg  Utiliser FT Tools.exe à la place résultera en une erreur. 


  2. Passez les vidéos en cliquant dessus.
  3. Cliquez sur
    ⦿  MORE 
    .
  4. Cliquez sur
    ⦿  LEVEL EDITOR 
    .
  5. Accédez au menu
     File 
    puis
     Open 
    .
  6. Ouvrez le fichier du lieu précédemment créé qui doit se terminer par .mis.

Accéder aux scripts[modifier | modifier le wikicode]

Les scripts sont stockés et codés dans l'Éditeur de niveaux.

  1. Cliquez sur l'onglet
     Level 
    .
  2. Cliquez sur
     Triggers... 
    en bas à gauche.

Ajouter un script[modifier | modifier le wikicode]

Dans l'Éditeur de niveaux, un script est une série de conditions menant (si elles sont toutes vraies) à une série d'actions. Attention: Il n'existe pas de "ou" (or) dans l'Éditeur. Vous pouvez créer autant de scripts que nécessaire, mais ceux-ci ne fonctionnent que dans le lieu dans lequel ils ont été ajoutés.

Bulb.svg  Pour chaque script, ajoutez une courte description qui est facile à comprendre (exemple: FUITE ENNEMIS - 1 mort). 



Conditions[modifier | modifier le wikicode]

Il existe 20 conditions. Celles qui ne sont pas recommandées sont barrées.

  • Always: Condition par défaut, elle est toujours vraie. Pratique quand on veut produire une action qui démarre automatiquement, comme l'assignation de variables.
  • Never: Elle est toujours fausse. Utile pour désactiver un script temporairement.
  • Speech Occured: Une fenêtre de dialogue au nom de code spécifié s'est ouverte. Peut être déclenchée par scripts en utilisant l'action Force Speech.
  • Skill Use Occured: Un personnage au nom de code spécifié a utilisé une Compétence.
  • Variable: Une variable spécifiée a une valeur déterminée.
  • Timer: Un compteur au nom de code spécifié a atteint une valeur déterminée.
  • Quantity - Team: Nombre d'éléments (< > ou =) d'un même type d'une team spécifiée.
  • Quantity - Player: Nombre d'éléments (< > ou =) d'un même type d'un player spécifié.
  • Quantity - Player Kills: Comparaison, entre deux players, du nombre de personnages tués.
  • Quantity - Unit: Nombre d'éléments (< > ou =) d'un même type d'une entité spécifiée.
  • Object Script State: État (activé ou non) d'un objet interactif, comme un interrupteur ou une porte.
  • WeaponMode is: Ces modes ne sont pas utilisés dans Nous Aurons
  • World mode of play is: Le mode de jeu de Nous Aurons est toujours CTB.
  • Gui Open: Fenêtre ouverte par le joueur. Inv (Sac), Main, Char (État), Loot (Fouille), Steal (Vol), Barter (Échange), Options (Options), Skilldex (Agir), Pipboy (GPSP) et Speech (Dialogue).
  • Right Click on Tab: Inutile.
  • All Alive at Exit Grid: Vraie si tous les personnages encore vivants dans l'équipe du joueur sont dans des Exit Grid, les zones vertes en bordure du lieu servant à atteindre la carte du jeu.
  • Can See: Vraie si le personnage d'un player est capable d'en voir un d'un autre player. Les personnages qui utilisent la Compétence Discrétion ne déclenchent pas cette condition.
  • Brain Extraction Complete: Inutile.
  • MP - Game Timed Out: Nous Aurons ne fonctionne pas en mode Multiplayer.
  • Main Actor Alive: Comme la partie s'arrête quand le personnage principal meurt, cette condition équivaut à Always.

Actions[modifier | modifier le wikicode]

Il existe 61 actions. Celles qui ne sont pas recommandées sont barrées.

  • Center view: Centre la vue sur une entité spécifiée. Le reste du temps, la vue peut être changée librement par le joueur.
  • Player Retreat Zone: Assigne une Retreat Zone à un player (zone dans laquelle les personnages d'un player se rendront si gravement blessés).
  • Player Move State - Deactivate: Désactive un player. Il disparaît.
  • Player Move State - Stationary: Hors combat, rend les personnages d'un player statiques. Si désactivés, ils apparaissent.
  • Player Move State - Perimeter: Hors combat, assigne une zone à un player (zone dans laquelle les personnages essaient de rester).
  • Player Move State - Wander: Hors combat, assigne une zone à un player (zone dans laquelle il erre).
  • Player Move State - Follow: Hors combat, assigne le nom de code d'un personnage à un player. Les personnages de ce player essaient de le suivre.
  • Player Move State - WayPoint: Hors combat, assigne le premier WayPoint (index 0) d'un nom spécifié aux personnages d'un player. Ils marcheront (dépendamment de leur Priority) vers ce premier WayPoint puis d'autres WayPoints du même nom s'ils existent.
    Alert.svg  Si le script est marqué comme
     ✔ Preserve 
    , les personnages ne marcheront jamais au delà de l'index 0.
     


  • Player Move State - Flee: Donne l'ordre aux personnages d'un player de se sauver dans une zone spécifiée.
  • Player Priority - Move State: Chance que les personnages d'un player se déplacent quand un script leur demande. À 10, ils abandonnent tout et se déplacent. Au dessus de 8, ils courent au lieu de marcher.
  • Player Priority - Aggression: Chance que les personnages d'un player en attaquent un autre quand un script leur demande.
  • Player Priority - Communication: Distance à laquelle les personnages d'un même player se rendent compte qu'un autre est attaqué. À 0, ils ne réagissent pas, à 10, ils communiquent sur toute la carte.
  • Player Priority - Mobility: Hors combat, fréquence à laquelle les personnages d'un player se déplacent. À 1, ils arrêtent à chaque pas ou presque, à 10, ils sont toujours en mouvement.
  • Player Priority - Kill Player: Chance que les personnages d'un player attaquent un autre player quand un script leur demande.
  • Player Priority - Kill Unit: Chance que les personnages d'un player attaquent une entité spécifiée quand un script leur demande.
  • Set Variable: Assigne une valeur (textuelle) à une variable. Il est possible de cocher l'option
     Campaign 
    pour que la variable soit lue dans d'autres lieux.
  • Set Timer: Détermine et démarre un compteur ascendant ou descendant (si la case
     Decending 
    est cochée.
    Alert.svg  Un compteur laissé en fonction peut parfois faire planter le jeu. 


  • Stop Timer: Arrête un compteur spécifié.
  • Show Timer: Affiche un compteur spécifié en haut de l'écran, visible par le joueur.
  • Wait: Attend un nombre de secondes spécifiées avant d'accomplir les actions suivantes dans la liste.
    Alert.svg  Wait fonctionne uniquement quand la case
     ✔ Blocking 
    est cochée dans les paramètres de l'action.
     


  • Add Objective: Ajoute une tâche (parmi les entrées du fichier .txt du lieu) à la liste de tâches du joueur (écran GPSP). Si la case
     with popup box 
    est cochée, une notification de tâche apparaît sur l'écran principal.
  • Complete Objective: Complète (change en gris) une tâche spécifiée (parmi les entrées du fichier .txt du lieu) à la liste de tâches du joueur (écran GPSP).
  • Set Death Text: Non utilisé.
  • End Mission: Quitte le jeu (
     Main Menu 
    ), Rejoint la carte (
     World Map 
    ), Tue le personnage principal (
     Death Screen 
    ), mène à l'écran d'échec (
     Fail Screen 
    ) ou de victoire (
     Win Screen 
    ).
  • Goto Mission: Déplace instantanément le joueur et tous ses personnages dans un lieu (spécifié par son nom de code).
  • Toggle Exit Grids: Les Exit Grids sont toujours fonctionnelles dans Nous Aurons.
  • Set Click Speech: Assigne un dialogue (ajouté dans l'onglet
     Level 
    et bouton
     Speech... 
    ) à une entité spécifiée. Celui-ci se déclenche quand le joueur clique dessus.
    Bulb.svg  Utiliser Set Click Speech sur une entité spécifiée avec le paramètre "None" enlève un dialogue déjà programmé. 


  • Set Random Speech: Assigne un dialogue (ajouté dans l'onglet
     Level 
    et bouton
     Speech... 
    ) flottant au dessus de la tête d'une entité spécifiée. Celui-ci s'affiche de temps en temps.
    Bulb.svg  Utiliser Set Random Speech sur une entité spécifiée avec le paramètre "None" enlève un dialogue déjà programmé. 


  • Play Wav: Fait jouer un fichier .wav du dossier Game/core/sound/. Le
     Sound Id 
    doit être unique. Si le nom de code d'une entité est spécifié, le son ne pourra être entendu qu'à proximité de cette entité.
  • Kill Entity: Tue instantanément une entité d'une manière spécifiée (Normal, Explode, Cutinhalf, Electrify, Melt, Fire, Riddled, Bighole).
  • Set object script state: Actionne un objet interactif spécifié. Par exemple, si c'est une porte, il est possible de l'ouvrir ou de la fermer.
  • Set Team Alignment Matrix: Détermine l'alignement d'une team. Affecte tous les players de cette team.
  • Display World Text: Affiche un texte (parmi les entrées du fichier .txt du lieu) sous forme d'une fenêtre jaune au milieu de la page. La fenêtre interrompt le jeu, il faut appuyer sur
    ⦿  OK 
    pour continuer.
  • Start Combat Mode: Le mode de jeu de Nous Aurons est toujours CTB.
  • Add Reputation: Utilisé par les scripts généraux pour déterminer l'électricité disponible.
  • Add Experience: Ajoute un nombre spécifié de Points d'Autonomie au personnage principal.
  • Add Experience to Player: Ajoute un nombre spécifié de Points d'Autonomie à tous les personnages d'un player spécifié.
  • Force Speech: Déclenche le dialogue (ajouté dans l'onglet
     Level 
    et bouton
     Speech... 
    ) d'une entité spécifiée et centre automatiquement la vue dessus.
    Alert.svg  Spécifier une entité inexistante fera planter le jeu. 


  • Change Team: Change la team d'un player spécifié.
  • Change Player: Change le player d'une entité (Unit) spécifiée.
  • Move Unit: Téléporte une entité à un waypoint spécifié.
    Alert.svg  Déplacer une entité inexistante fera planter le jeu. 


  • Give Item to NPC: Fait passer un item au nom de code spécifié des personnages du joueur à un personnage au nom de code spécifié.
    Alert.svg  Quand le joueur est trop loin, il ne se passe rien. Quand le personnage a déjà une copie de l'item, il ne se passe rien. 


  • Give Item from NPC to Human: Fait passer un item au nom de code spécifié d'un personnage au nom de code spécifié au joueur.
    Alert.svg  Quand le personnage est trop loin, il ne se passe rien. Quand le joueur a déjà une copie de l'item, il ne se passe rien. 


  • Lock/Unlock Door: Barre (
     LockState 
    coché) ou débarre (
     LockState 
    décoché) une porte au nom de code spécifié.
  • Jam/Unjam Minimap: Utilisé par les scripts généraux en fonction de l'électricité disponible.
  • Ping Minimap: Marque un emplacement spécifié (nom de code d'un waypoint) dans la minicarte. Le joueur doit avoir assez d'électricité pour que ça fonctionne.
  • Add text to Debrief text list: Utilisé seulement à la fin du jeu.
  • Display Debrief window and text: Utilisé seulement à la fin du jeu.
  • Zone of death: Tue instantanément toutes les entités dans une zone spécifiée et d'une manière spécifiée (Normal, Explode, Cutinhalf, Electrify, Melt, Fire, Riddled, Bighole). En cochant
     Outside location 
    , il est possible de tuer toutes les entités à l'extérieur de la zone spécifiée.
  • Play Bink Movie: Démarre une vidéo .bik (créée avec The RAD Video Tools) et stockée dans Game/core/movie/. L'
     Archive Title Key 
    est un nom de code (ex:movie_name_intro) qui doit aussi être ajouté aux fichiers Game/core/locale/game/generic_mission.txt et Game/NousAurons/locale/game/generic_mission.txt sous "// NOM DES FILMS" de cette façon:
    movie_name_intro = {Introduction}
  • Modify RecruitPool list: Appelle une action à appliquer à la liste des compagnons disponibles au joueur, à partir d'un nom de code présent dans Game/core/campaigns/campaign.txt. Habituellement, l'action consiste à ajouter un personnage.
  • Add items to QuarterMaster list: Utilisé par les scripts généraux pour mettre des objets dans la glacière.
  • Set Mission State: Cache (
     Covered 
    ), révèle (
     UnCovered 
    ) ou indique l'emplacement (
     Visited 
    ) d'un lieu spécifié.
  • Open Mission: Utiliser plutôt
     Set Mission State 
    .
  • Mission Complete: Tourne un lieu (spécifié par son nom de code) en gris sur la carte, ce qui l'indique comme visité.
  • Set Random Encounter Enable: Active ou désactive (cochez
     Enabled to 
    ou non) une rencontre aléatoire spécifiée.
  • Brain Extraction: Inutile
  • MP - Team with the Most Wins: Nous Aurons ne fonctionne pas en mode Multiplayer.
  • MP - Team with the Least Wins: Nous Aurons ne fonctionne pas en mode Multiplayer.
  • MP - Team Meeting Condition Wins: Nous Aurons ne fonctionne pas en mode Multiplayer.
  • MP - Team Victory: Nous Aurons ne fonctionne pas en mode Multiplayer.


Bulb.svg  Chaque série d'actions peut être exécutée une seule fois, ou à chaque fois que les conditions sont remplies. Pour se faire, cochez
 Preserve 
à droite de
 ✔ Conditions 
   Actions 
.