[TUTORIEL] LE KIT DE SURVIE - CHAPITRE 6 : Savoir manipuler un script
Posté : dim. 10 févr. 2013, 09:12
LE KIT DE SURVIE DU MODDER DEBUTANT
Ou comment survivre dans la jungle quand on est un puceau du tp2
Chapitre 6 : Savoir manipuler un script
Avant propos
Et oui déjà au chapitre 6 !
Certains d'entre vous pourront me faire remarquer que je m'étais arrêté au chapitre 4 la dernière fois, mais je me réserve ce chapitre 5 dédié à l'ajout de nouvelles répliques dans les dialogues existants pour plus tard. D'une part parce que je commence à me lasser de tutorialiser sur les dialogues mais aussi et surtout parce que je pense qu'aborder le problème des scripts est beaucoup plus urgent dans l'immédiat.
Les scripts couvrent des domaines vraiment très larges et on a beau être limité par certaines contraintes du moteur du jeu, on peut vraiment envisager beaucoup de choses en termes de réalisation grâce à cet outil. Faire un tutoriel très exhaustif qui couvre tous les cas de figures relèverait de l'utopie mais nous allons essayer de vous donner les armes pour parvenir à comprendre comment tout ça marche et quels types de manipulations on peut envisager.
Préparation
On ne change pas une équipe qui gagne. Vous allez avoir encore une fois besoin de votre éditeur de texte favori et bien sur d’IESDP plus que jamais avec de préférence un onglet pour les triggers et un autre pour les actions. Vos aller-retour sur ces différents onglets risquent d’être extrêmement fréquents. En bonus je vous suggère d’ouvrir Near Infinity, pour explorer les scripts y’a pas mieux et qui plus est je vais m’en servir dans ce tutoriel donc autant être armé. Enfin j'ai une fois de plus mis à jour mon mod moine (le mod que vous avez pu découvrir lors de mon tuto sur les dialogues), en étoffant un peu la partie script : cette v3 est disponible ici.
Étape 1 : Écrire un script, les bases
a) Les différents types de scripts
Alors avant de démarrer on va aborder les différents types de scripts que vous pourrez rencontrer.
Scripts de personnages :
Ce sont les scripts qui s’appliquent lorsque le personnage ayant le script dédié est en jeu. Il peut s’agir d’un PNJ, d’un PNJ recrutable, d’une créature invoquée ou même d’une créature invisible, voire d’un cadavre. C’est le script que vous utiliserez le plus souvent vu que c’est le plus léger et le plus modulable.
Scripts de zones :
Même principe pour les cartes, tant qu’un personnage joueur se trouve dans cette zone alors le script s’exécute. A manipuler avec prudence car c’est un script qui va tourner en permanence et que beaucoup de moddeurs (bien souvent amateurs ou sur des vieux mods) auront tendance à utiliser, voire à sur-utiliser. Pourquoi ? Parce que c’est plus simple. Ce script ne nécessitant pas de création de créatures, d’objets, de sorts ou de région particulière qui détermine un piège ou une partie du décor susceptible d’implanter un événement sous certaines conditions.
Script de region trigger :
Si vous avez consulté mon tuto sur la création de travel triggers vous devez déjà savoir ce que c’est : ce sont des zones créées sur une carte qui permettent de déclencher des évènements lorsque l’on clique/passe dessus (piège, affichage de texte, génération de créatures ou autre). Il est donc possible de leur assigner des scripts, et c’est ce que font d’ailleurs systématiquement les pièges. Je vous invite à vous balader dans l’onglet trigger d’Infinity Explorer, lorsque vous ouvrez une zone avec ce logiciel, cela peut être très riche en information.
Puisqu’on peut cibler un endroit en particulier et que le script ne se déclenchera que si on s’approche ou si on clique sur ce point (quand cela nous est proposé) le script par region trigger reste très intéressant. Seul bémol : il faut bien sûr s’assurer que notre région ne chevauche pas une autre région existante, ce qui pourrait être la source de conflit.
Script universel :
L’infini te happe, l’infini te suit comme dirait l’autre...
Comme son nom l’indique, il s’agit d’un script qui s’appliquera en permanence. A priori on pourrait penser que c’est la solution idéale mais comme je l’ai dit plus haut, il faut dans la mesure du possible s’assurer qu’un script soit effectif le moins longtemps possible. Ça évite les conflits comme les ralentissements. De plus, tout mettre dans un script universel ralentit le jeu de manière presque automatique. Le script universel n’est à utiliser que lorsqu’aucun des autres types de scripts ne peut parvenir à réaliser ce que vous voulez faire.
Question du noob : tout ça c’est bien beau mais comment on écrit un script ? Quel fichier utiliser ?
Il suffit de créer un fichier .txt et de le renommer en .baf. Vous pouvez aussi réutiliser l’un de vos fichiers .d en le copiant et en le renommant vu que ce sont tous deux des fichiers textes non cryptés. Les fichiers .baf sont une version lisible (non compilée) des fichiers .bcs (script) qu’utilise le jeu, comme les fichiers .d sont une version lisible des fichiers .dlg (dialogue).
b) Quelques mécanismes simples à connaitre
Écrire des scripts peut être assez simple lorsqu’on se cantonne à un usage « courant » mais peut être également assez compliqué quand on cherche à réaliser quelque chose de plus inhabituel. Mais quel que soit le degré de complexité du script, on peut résumer son fonctionnement ainsi :
SI
Certaines conditions sont vérifiées
ALORS
Certains évènements se produiront
Comme je vous en ai déjà parlé à plusieurs reprises au fil de mes tutoriels, les scripts sont écrits à partir des conditions et des actions qui peuvent exister et qui sont référencées dans IESDP ici et ici. Les conditions vérifiant les évènements et les actions permettant d’en produire, nous allons en voir quelques exemples courants afin que vous puissiez vous faire une idée de comment procéder.