De Fallout Wiki.
Sommaire |
Pour bien débuter dans le scripting:
Un tutoriel de Agrajag de Fan Made Fallout, trouvé sur le site http://www.fanmadefallout.com.
1) Intro:
À l'initiative de Stevie D, le court tutoriel que j'ai écrit, «pour des noobs, par des noobs» il y a quelques mois, est maintenant disponible pour tous. En fait, vous être en train de le lire. Bien que ce qui suit n'a pas pour but de vous faire passer d'un ignorant à un expert en scripting, il devrait vous permettre de passer d'un ignorant à un scripteur débutant. Ce n'est pas vraiment un tutoriel sur comment scripter, mais plutôt sur la façon dont on commence à scripter - comment se servir du compilateur, comment tout cela fonctionne, ce genre de chose.
Veuillez noter que je commence tout juste en matière de scripting, aussi ne me tuez pas s'il y a des erreurs dans ce qui va suivre - il semble déjà avoir fonctionné pour deux ou trois membres de FMF (FanMadeFallout), et cela s'est bien passé pour moi, mais cela ne signifie pas nécessairement qu'il en sera de même pour vous. C'est une tentative, rien plus. Si vous ne l'aimez pas, vous n'êtes pas tenu de le suivre. Maintenant, commençons.
Sur la demande de Bloodlust, j'ai écrit tout ce que je connaissais en scripting pour Fallout 2. Ce n'est pas énorme. Cependant, je pense qu'il est suffisant pour ceux qui souhaitent débuter. J'ai personnellement constaté que les premières phases – du commencement - étaient les plus dures de toutes. Par où commencer ?? Qu'est-ce que je dois faire pour que çà fonctionne ? Ce n'est pas vraiment une partie de plaisir et cela prend un moment pour s'y habituer.
Ce n'est pas aussi dur une fois vous franchissez les étapes initiales. C'est le but de ce tuto- de vous faire passez ces étapes afin que n'importe qui puisse comprendre. N'essayez plus de rassembler le peu d'informations (souvent contradictoires) éparpillées dans les fins fonds des forums et des sujets dispersés un peu partout. Plus de lecture de « Tutoriels » traitant sur « Comment débuter en scripting », mais qui en fait ne font rien du tout pour vous aider à franchir la première étape, la plus cruciale, consistant à compiler un script et de l'introduire dans le jeu.
Je me rends tout naturellement compte de ma propre ignorance sur le sujet. Je ne m'y connais pas sur beaucoup de choses. Mais je sais seulement ce qui a marché pour moi, et la vérité est que suivre ce tuto pourrait ne pas fonctionner pour vous. Cependant, si il marchait, si j'avais lu ceci il y a quelques semaines (édit : ceci a été écrit il y a quelque temps), il m'aurait permis de progresser beaucoup plus rapidement. A chaque instant, j'ai eu l'avantage d'être aider par Dj_Unique. Sans cela, rien n'aurait abouti. Ou du moins cela m'aurait pris un temps considérable. Quoi qu'il en soit, ce que j'essaye de dire est que ce tuto pourrait n'être d'aucune valeur pour vous.
On pourrait aussi précisé de quoi vous avez besoin pour commencer. Espérons que vous ferez plus que débuter!
2) Augmentez votre niveau en scripting en 10 étapes
Comme il a été énoncé ailleurs, ce qui va suivre va vous aider à acquérir une compréhension de base avant que vous commenciez.
Pour commencer:
1. D'abord, vous avez besoin d'un compilateur. Il existe probablement beaucoup de moyens différents pour compiler, moi j'utilise le compilateur openWatcom, et il fonctionne. C'est tout ce qui compte. Téléchargez-le d'ici : http://www.openwatcom.org/index.php/Main_Page (il est libre !).
2. Installez le compilateur.
3. Utiliser le fichier P.BAT dans le répertoire suivant: « Fallout 2 Mapper\SCRIPTS\ ». Click droit sur ce fichier, éditez le, et remplacer le texte qu'il contient par celui-ci (RQ: faîtes un backup de ce fichier avant (en cas de problèmes)):
@echo off @if not exist %1.ssl goto DONE @copy %1.ssl temp.c @G:\WATCOM\binnt\wcc386.exe temp.c /pc /fo=temp.i /w4 @rem Microsoft Visual Studio 6 users uncomment the following line: @rem cl /P temp.c @copy temp.i temp.ssl @..\dos4gw ..\compile temp.ssl @if %errorlevel% neq 0 goto ERROR @rem The path in the following two lines should point to the Fallout 2 folder: @copy temp.int G:\FalloutStuff\CompiledBIS\%1.int @del temp.c @del temp.i @del temp.ssl @del temp.int @goto DONE :ERROR @echo ERROR: %_CWDS%%1.ssl >> ..\err.log :DONE
4. Chemins requis
4. Avant que vous fermiez le fichier P.BAT, vous devrez probablement éditer quelques lignes. A la place de « G:\WATCOM\binnt\wcc386.exe », indiquez l'endroit où se situe votre fichier wcc386.exe. Il n'est probablement pas sur le lecteur G. La ligne « temp.int @copy G:\FalloutStuff\CompiledBIS\ %1.int » mettra le fichier compilé (le fichier .int) dans le dossier « G:\FalloutStuff\CompiledBIS\ ». Si vous n'avez pas un tel dossier, ou que vous souhaitez mettre votre dossier ailleurs, indiquez lui l'endroit de votre choix.
NOTE : Watcom ne semble pas créer le dossier de lui même, la première fois que vous compilez un script. S'il n'existe pas déjà , vous devrez créer le dossier G:\FalloutStuff\CompiledBIS\ (ou tout autre endroit où vous voulez mettre les fichiers .int) avant de lancer le compilateur. Autrement, vous recevrez un message d'erreur en fenêtre DOS et aucun script ne sera compilé.
5. Editer les scripts
5. Maintenant vous devez créer un nouveau script, ou en éditer un existant. L'édition d'un script est plus facile, aussi, commencerons par celui. Plutôt que decompiler les scripts du jeu original, vous pouvez utiliser les fichiers scripts (fichiers .ssl) situés dans le dossierFallout 2 Mapper\SCRIPTS\. Vous pouvez utiliser le bloc-notes, ou n'importe quel éditeur de texte, pour les ouvrir et les éditer. Un script préférable pour débuter est celui nommé ACKLINT.SSL, à retrouver dans le dossier ARROYO. C'est le script qui contrôl le mec appelé Klint, qui est le NPC(personnage non joueur) se tenant en bas de la première carte du temple à Arroyo.
Prenez ACKLINT.SSL, copiez-le dans un nouveau dossier et éditez-le. On va tout d'abord commençer par quelque chose de très simple, pour voir si tout fonctionne. Exemple : faites descendre l'écran jusqu'à la procédure appelée le « look_at_p_proc », et changez la ligne « display_msg (mstr (100)) » en « display_msg (mstr (101)) ». Cela devrait rendre la courte et la longue description du personnage Klint identique - pas très fantaisie, mais assez facile de voir si çà a fonctionné une fois compilé.
Une fois que vous êtes faits vos changements, enregistrer le fichier .SSL. Je préfère avoir un dossier séparé pour mes propres scripts (édités ou nouveaux), aussi je n'enregistre pas par dessus les scripts déjà existants. Il peut être utiles les avoir comme référence. N'importe où vous le mettez, assurez vous qu'il y ait une copie de P.BAT dans le répertoire parent. Ainsi si vous avez votre script dans le dossierSCRIPTS\MesScripts\, vous devez avoir le fichier P.BAT dans le dossier SCRIPTS\.
6. La compilation
6. Pour compiler le script, ouvrez l'invite de commandes windows (Démarrer->Programmes->Accessoires) et changez le répertoire par le répertoire de votre script. Pour le faire, écrivez "cd <new directory>", sans guillemets, et le répertoire voulu au lieu du <new directory>. Maintenant, tapez "..\p <scriptname>", où "<scriptname>" est le nom du script, sans l'extension. Ainsi si vous voulez compiler ACKLINT.SSL, tapez "..\p ACKLINT" dans l'invite de commande. Si la syntaxe du code est correcte, et que tout est installé correctement, il ne devrait y avoir aucun message d'avertissement, et le fichier devrait être compilé. Il devrait maintenant y avoir un fichier appelé ACKLINT.int dans votre répertoire de travail (qui est, si vous suiviez mon exemple, dans le dossier appelé FalloutStuff \ CompiledBIS \).
7. L'installation
7. Enfin, vous devrez déplacer (ou copier) votre ACKLINT.int nouvellement créé dans le dossier du jeu: Program Files\BlackIsle\Fallout2\DATA\scripts\. Si vous avez déjà un dossier appelé ACKLINT.int, vous devrez l'écraser pour que les changements soient effectifs. Maintenant, pour voir les changements, vous pouvez démarrer une nouvelle partie de Fallout 2 (pratique car Klint est sur la première map du jeu rencontrée) ou ouvrir la map « ARTEMPLE.MAP » à l'aide du mappeur de Fallout 2. C'est sur cette carte que ce trouve le personnage Klint. Une fois sur la carte appuyez sur F8 pour constater les changements. Si tout va bien, la description détaillée de Klint sera maintenant identique à la description courte(si vous suiviez mon exemple ci-dessus). Hourra!
8. Les nouveaux échantillons de scripts
8. Cela devient très rapidement ennuyant si on se contente de modifier des scripts existants, donc allons un peu plus loin, vous voulez bien? Lorsque que vous concevez des scripts à partir de zéro, il est beaucoup plus facile de prendre un script existant, semblable à celui que vous voulez créer, puis de l'éditer et l'ajuster aux besoins. Pour le transformer en nouveau scripts utilisé par le jeu, en opposition à un script qui est déjà employé dans Fallout 2, vous devrez lui donner un nouveau nom. J'en sais peu au sujet des conventions de nomination des scripts de Fallout 2, mais il semble que les noms des scripts ne doivent pas être plus longs que 8 caractères. Je ne sais pas pourquoi, et je ne sais pas ce qu'il se produit si ils le sont, mais pour le faire en sécurité, donner simplement un nom court aux scripts.
Pour rendre ce «Tutoriel» aussi facile que possible, prenons simplementACKLINT.ssl et donnons-lui un nouveau nom. Cela fait techniquement de lui un nouveau script, alors que c'est vraiment le même qu'avant. Un peu fastidieux, mais cela sert à montrer comment faire, comment on procède. Ouvrons ACKLINT.SSL et enregistrons le en tant queAACKLINT.SSL. Maintenant, avant que vous puissiez le compiler, vous devrez ouvrir le fichier appelé SCRIPTS.H, qui est situé dans le répertoireFallout 2 Mapper\scripts\headers\. Ouvrez-le, faites-le défiler jusqu'en bas, et ajoutez la ligne suivante :
Code : #define SCRIPT_AACKLINT (1304) //AACKlint.int ; Test
Enregistrez. Maintenant il devrait être possible de compiler AACKLINT.SSL. Nous n'en sommes pas encore là cependant. Il reste une dernière chose à faire. Vous devrez obtenir un certain genre de programme qui permette d'exporter des fichiers .DAT. J'emploie DatExplorer, et cela fonctionne très bien. Il y a abondance de ce genre d'utilitaire, faîtes juste une recherche sur NMA.
Ainsi, utilisez votre explorateur de .dat pour explorer le fichier master.dat, qui se trouve dans votre répertoire fallout2\. Allez au dossier « scripts », et cherchez le fichier appelé les SCRIPTS.LST. Extrayez-le. Maintenant, ouvrez-le (bloc - notes marche très bien), et ajoutez la ligne suivante tout en bas :
Code : AACKlint.int ; Version modifiée de ACKlint.int # local_vars=10
Sauvez le fichier, et mettez-le dans le dossier Program Files\BlackIsle\Fallout2\DATA\scripts\. Maintenant vous devriez pouvoir utiliser votre nouveau script dans le mapper. Pour le faire, ouvrir le mapper, charger une carte (ou en faire une neuve), ajouter une nouvelle créature (ou en faire une nouvelle), choisissez cette créature, éditez la, cliquez sur «New script», cherchez votre script dans la liste et confirmer le choix. Pressez f8 pour le tester.
9. Le texte/dialogue
9. Si vous avez joué avec les script pendant un moment, vous aurez probablement noté que les textes/dialogues ne sont trouvables nulle part dans les fichiers SSL. Au lieu de çà , tout le texte est stocké dans des fichiers .msg. Si vous voulez regarder les fichiers .msg utilisés dans Fallout 2, ouvrez DatExplorer et explorez le master.dat encore une fois. La plupart des fichiers msg sont stockés dans le dossier text\english\dialog\(ou french ici). Extrayez-les et lisez les, si vous voulez. Notez que vous pouvez maintenant éditer les fichiers msg selon vos envies, en utilisant n'importe quel éditeur de texte. Par exemple, si vous voulez éditer le dialogue pour Klint, trouver le fichier ACKLINT.MSG et éditer-le, puis sauvegarder. Tous les fichiers du répertoire Program Files\BlackIsle\Fallout2\DATA\text\english\dialog\(ou french) écraseront les fichiers du master.dat, ainsi tous les changements que vous sauvegarderez à ACKLINT.MSG apparaîtront dans le jeu. Cependant, ne vous inquiétez pas. Si vous écrasez des fichiers déjà existants, vous pourrez toujours récupérer une copie «d'origine » du master.dat.
Vous pouvez bien sûr faire vos propres fichiers msg, assortis à vos nouveaux scripts. Créez un simple fichier msg avec le même nom que le script (par exemple AACKLINT.msg), et écrivez ce que vous souhaitez dedans. Employez la syntaxe suivante :
Code :
{<number>} {} {<text>}
Où <number> est un nombre unique (vous ne pouvez pas avoir deux fois le même nombre dans un dossier de msg), et où<text> est un dialogue que vous souhaitez mettre.
Maintenant, afin d'accéder au texte de vos fichiers msg, vous devez utiliser la fonction appelée« message_str ». Elle renvoie une chaîne de caractères (le texte écrit en face du numéro) à partir d'un fichier msg choisi, qui correspond à un nombre choisi. Par exemple, message_str (SCRIPT_AACKLINT, 100) renvoie la chaîne de caractères qui correspond au numéro 100 dans le fichier AACKLINT.msg. Pour afficher un texte flottant (au dessus du personnage), utiliser la fonction display_msg. Exemples : display_msg (« bonjour le monde.") ; Cela affichera « bonjour le monde. » au dessus du personnage. display_msg (message_str (SCRIPT_AACKLINT, 100)); affiche le texte qui correspond au numéro 100 dans AACKLINT.msg.
Plutôt que de taper « SCRIPT_AACKLINT » à chaque fois, il est plus pratique d'utiliser un nouveau macro en début du code, de sorte à ce que vous n'ayez plus qu'à écrire le « NOM ». Si vous allez tout en haut de AACKLINT.ssl, en supposant que vous l'ayez laisser semblable à ACKLINT.ssl, vous trouverez la ligne suivante :
Code : #DEFINE NAME SCRIPT_ACKLINT
Ce que fait cette ligne vous permet simplement d'écrire NAME au lieu de SCRIPT_ACKLINT. Changez aussi cette ligne en ceci :
Code : #DEFINE NAME SCRIPT_AACKLINT
et vous avez terminé. Comme vous vous en souvenez plus haut, le script ACKLINT utilise le « display_msg (mstr (x)) ; » pour afficher du texte à partir du fichier msg. Où est la définition de mstr () ? , vous pourriez demander. Aller tout en haut et regardez les lignes
Code : #include "..\headers\define.h" #include "..\headers\command.h" #include "..\headers\ModReact.h"
Ce que font ces lignes ajoute simplement toutes les définitions qui sont faites dans ces fichiers en-tête (.h), de sorte que vous puissiez les utiliser pour votre script. Pour voir ce qu'ils contiennent, allez dans le répertoire Fallout 2 Mapper\SCRIPTS\HEADERS\ et ouvrez-les, et aller tout en haut. Vous trouverez beaucoup de définitions. Dans le fichier command.h vous trouverez cette ligne :
Code : #define mstr(x) message_str(NAME,x)
Cela signifie que vous pouvez, si vous incluez command.h à votre code comme c'est fait dans ACKLINT.ssl, écrire mstr (100) au lieu de message_str (SCRIPT_AACKLINT, 100). Assez pratique. Car vous pourrez l'avoir noté ici, vous devrez définir le NOM dans votre fichier SSL, autrement la définition de mstr () ne fonctionnera pas. NAME est employé très fréquemment. Ainsi c'est généralement une bonne idée de l'inclure à votre code, et le fait pointer au script avec lequel vous travaillez.
10. D'autres émetteurs d'informations
10. Il ne me reste plus grand chose à vous enseigner, mais si vous allez plus loin, vous devriez pouvoir faire le reste par vous même. Je l'ai fait (réellement, ce n'est pas vrai. J'ai obtenu beaucoup d'aide de Dj_Unique - merci beaucoup pour cela). Ensuite, j'essayerai de vous expliquer comment entrer votre propre dialogue dans le jeu. Fondamentalement, cela consisterait à exporter le fichier .fmf vers les fichiers .msg et .ssl (que l'outil de dialogue peut faire), compiler le fichier SSL, et rajouter les choses que vous devez ajouter à SCRIPTS.H et à SCRIPTS.LST. Et là , vous aurez terminé.
Quoi qu'il en soit, afin d'être apte à faire ce que vous voulez, vous devrez connaître les ressources d'informations suivantes : le COMMANDS.DOC. Si vous avez regardez un peu, vous l'avez peut être déjà trouvé. Il est inclus avec le mapper, et se situe dans le dossier Fallout 2 Mapper\SCRIPTS\DOCS\. Il inclut une liste de toutes les fonctions du noyau qui sont à votre disposition , ainsi qu'une description de chacune. Apprenez à l'employer, apprenez à l'aimer - croyez-moi quand je vous dis que c'est votre endroit numéro 1 si vous n'êtes pas sûr de l'utilisation d'un script. Tout ce qui est possible de faire avec des moyens conventionnels de scripting, peut être fait avec une utilisation adroite des fonctions de cette liste.
Si vous ne suivez pas mes dires au sujet des macros, ne vous inquiétez pas. Il est déjà expliqué dans nombreux des « tutoriels » plus ou moins compréhensibles. J'ai trouvé celui-ci, qui peu être utile en quelques rares occasions (ce n'est pas vraiment une référence, mais il y a des choses à savoir) : http://koti.mbnet.fi/dsjoblom/scrtut.htm
Ce qui suit est une FAQ très utile, qui a répondu à beaucoup de mes questions de débutant : modguide.nma-fallout.com/
Enfin, voici très un court, mais également très simple tutoriel, couvrant certaines bases : http://www.coljack.pwp.blueyonder.co.uk/fallout/
Notes
NOTE: Vous pouvez rencontrer des problèmes si vous utilisez une version patchée de Fallout 2. Si c'est le cas, consulter ce tuto si vous pouvez passer les premières étapes avec le compilateur et tout ce qui peut l'être.(Ça peut donner mal à la tête, je sais)
http://www.duckandcover.cx/forums/viewtopic.php?t=4855
Merci de m'avoir lu. J'espère que ça sera utile à quelqu'un. Maintenant vous êtes prêt pour le script - macros
NOTE: Une fois que vous avez terminé le tutoriel d'Agra, ci-dessus, téléchargez et installez le Fallout Script Editor. Il est plus convivial que l'éditeur de texte. Il présente de nombreux avantages pour vous en tant que scripteur .