10 - FinalAlert2: YR, scripts utilisateur
Final Alert 2:YR introduit un tout nouveau interprèteur de scripts.
Ces scripts sont utilisés directement par Final Alert 2:YR. Ils permettent
d'ajouter de nouvelles fonctionnalités à l'éditeur!
Pour accéder à l'éditeur de script, allez dans "Maptools-Tool
Script". Vous pouvez sélectionner le script que vous voulez exécuter
et cliquer sur "Run". Les scripts fournis avec l'éditeur ne
causeront aucun problème. Cependant, si vous lancez des scripts fait
par vous-même ou d'autres personnes, sauvegardez votre carte avant de
lancer le moindre script...
Un bon script pour commencer est "Add Reveal Map Debug Trigger".
Lancez-le, puis fermer l'interpréteur de script. Ensuite, faite "Edit-Triggers"
et regardez les nouveaux triggers. Facile non?
Tout script ont un nom assez descriptif. Assayez-en quelques uns, mais sauvegardez
votre carte avant.
Nous allons maintenant voir comment créer nos propres scripts. Il serait
préférable d'avoir quelques connaissances en programmation avant
de faire ceci, le langage de script étant en effet assez proche de la
programmation classique. Il vous ne connaissez pas la programmation, il sera
peut-être assez dur pour vous de comprendre le langage de script. De plus,
il serait également préférable de connaitre l'édition
des fichiers INI, si vous voulez ajouter des fonctions supplémentaires.
En premier lieu, essayez d'ouvrir un fichier de script déjà existant.Utilisez
pour cela l'eplorateur Windows, ouvrez "Add Reveal Map Debug Trigger.fscript".
Choisissez le bloc-note pour l'ouvrir.
Vous voyez maintenant un script typique. Il s'agit d'un petit script pour commencer.
Comme vous pouvez le remarquer, // est utilisé pour placer un commentaire:
le reste de la ligne est ignorée. Ceci est similaire au C++. Les scripts
contiennent seulement des fonctions et des saut de lignes. (pas de saut de ligne
dans ce script cependant). Il n'y a pas de variable à déclarer,
mais il y a des variables (ex: %TriggerID% est remplacé par l'ID du trigger
qui a été créé dans la fonction AddTrigger()). Notez
que pour toutes les fonctions, tous les paramètres doivent être
entourés de ", et séparés par des virgules. Maintenant,
que fait ce script?
AskContinue(); affiche une boîte de dialogue qui demande si l'utilisateur
veut continuer. Si l'utilisateur appuie sur Non, le script se quitte. AddTrigger();
se comprend comme ceci: Dans le premier paramètre nous spécifions
une variable qui sera remplacée par l'ID du trigger, dans le second paramètre
nous spécifions les lignes INI du trigger, dans le troisième l'événement
INI, et dans le quatrième l'action INI. Maintenant, comment choisir les
lignes INI? Vous pouvez les retrouver si vous faite un nouveau trigger dans
l'éditeur de trigger, exactement comme vous voulez qu'il soit. Maintenant,
lancez l'éditeur ini de FA2:YR "Edit-INI Editing", choisissez
votre trigger, notez l'ID (key) et copiez le contenu. Vous avez maintenant la
clé INI du trigger, mais pas encore les événements et les
actions INI. Pour les avoir, allez dans les sections "Events" et "Actions"
et copiez les clé pour l'ID que vous avez noté.
Une autre possibilité est le saut de ligne, vous le définissez
en utilisant ceci:
:NomDuSautDeLigne:
La fonction de saut de ligne est utilisée pour se rendre directement
à une ligne précise du script, et peut être utilisé
pour créer des boucles.
Toutes les fonctions du langage de script de FA2:YR exceptées les fonctions
AND() et Or() ont des paramètres. Par exemple la fonction AddTrigger
a 4 paramètres. Cependant, vous pouvez spécifier un 5ème
paramètre! Qu'est-ce que cela veut dire? Ce paramètre est une
valeur booléenne (vrai/faux). Si ce paramètre optionnel est utilisé,
FA2:YR exécutera cette fonction seulement si la paramètre est
à "vrai' (encore une fois, ce paramètre ne s'applique pas
aux fonctions AND() et Or()). Très utile, en particulier pour les boucles.
Vous pouvez bien sûr utiliser une variable pour ce paramètre, ce
qui sera le cas la plupart du temps.
Si vous avez tout lu jusqu'ici, vous connaissez maintenant les rudiments des
scripts de FA2:YR. Retenez cependant que tout ne fonctionnera pas toujours comme
vous le voulez car FA2:YR à des obligation internes rapport à
l'infanterie, les structures, etc...
Voici la liste des variables prédéfinies (vous ne pouvez pas
les redéfinire en utilisant SetVariable() ou une autre fonction!):
%WaypointCount% - Nombre de waypoints
%InfantryCount% - Nombre d'infanteries
%AircraftCount% - Nombre d'unités aériennes
%UnitCount% - Nombre de véhicules
%TerrainCount% - Nombre d'objets
%Theater% - le type de terrain (lune, etc...)
%Width% - Largeur de la carte
%Height% - Hauteur de la carte
%IsoSize% - =largeur+hauteur de la carte
%PlayerCount% - Nombre de joueurs sur la carte (1 pour les cartes solos)
%HousesCount% - Nombre de camps définis
%CountriesCount% - Nombre de pays définis (Corée, France,
etc...)
%DeleteAllowed% - Est-ce que l'effacement est permis?
%AddAllowed% - Est-ce que l'ajout de triggers ou d'objets est permis?
%SafeMode% - Est-ce que le SafeMode est lancé?
Voici la liste des fonctions que FA2:YR supporte (souvenez-vous que toutes
les fonctions à part And() et Or() peuvent avoir un paramètre
booléen additionnel)
Tous les paramètres normaux sont écrits en italique, ceux qui
prennent uniquement des variables sont soulignés.
JumpTo(Jumpline);
Le script saute à le line Jumpline. Faite attention à cette fonction!
Vous pouvez faire des boucles infinies si vous ne faite pas attention! Rappelez-vous
du paramètre booléen!
SetSafeMode(Enabled, Reason);
Met le Safemode à "True" ou "false". Si vous mettez
le Safemode à False, qui est requis pour placer des clés INI et
d'autres fonctions, le script demandera à l'utilisateur s'il veut faire
ça et montrera la raison.
AllowDelete();
Si votre script veut effacer un objet ou un trigger, vous avez besoin d'appeler
cette fonction. Le script demandera, comme SetSafeMode() à l'utilisateur.
AllowAdd();
Si votre script veut ajouter un objet ou un trigger, vous avez besoin d'appeler
cette fonction. Le script demandera, comme SetSafeMode() à l'utilisateur.
SetAutoUpdate(Enabled);
Mettez SetAutoUpdate à FALSE pour que votre script s'exécute plus
rapidement. Cela évite à FA2:YR de mettre à jour la fenêtre
d'affichage après chaque appelle de fonction.
RequiresMP();
Ce script requière une carte multijoueurs. Si la carte n'en est pas une,
le script s'annulera.
RequiresSP();
Ce script requière une carte solo. Si la carte n'en est pas une, le script
s'annulera.
Cancel();
Annule de script. Habituellement utilisé avec un paramètre booléen.
Sortie sur écran:
AskContinue(Message);
Affiche une boîte de dialogue et quitte le script si l'utilisateur clique
sur NO, sinon, il continue.
Message(Message, Caption);
Affiche une boîte de dialogue avec le message et le "Caption"
Print(Text);
Affiche le texte dans la fenêtre de rapport.
Interaction avec l'utilisateur:
Ask(Variable,Message, Caption);
Montre une fenêtre de message qui met la variable à "0"
si l'utilisateur appuie sur NO, sinon, met la variable à "1".
UInputGetInteger(Variable,Message, Min, Max);
Montre une fenêtre avec un message. Si Min et/ou Max ne sont pas vide,
ils spécifient le minimum et le maximum de la valeur nécessaire.
La variable sera remplacé par ça.
UInputGetString(Variable,Message);
Montre une fenêtre avec un message. La variables sera remplie avec ça.
UInputGetHouse(Variable,Message);
Montre une boîte de dialogue qui permet à l'utilisateur de choisir
un camp. La variable sera remplie avec ça.
UInputGetCountry(Variable,Message);
Montre une boîte de dialogue qui permet à l'utilisateur de choisir
un pays. La variable sera remplie avec ça.
UInputGetTrigger(Variable,Message);
Montre une boîte de dialogue qui permet à l'utilisateur de choisir
un trigger. La variable sera remplie avec ça.
UInputGetTag(Variable,Message);
Montre une boîte de dialogue qui permet à l'utilisateur de choisir
un tag. La variable sera remplie avec ça.
Modification de variable:
SetVariable(Variable,Value);
Met la variable spécifiée à la valeur rentrée.
Add(Variable,Number);
Ajoute un nombre à la variable.
Substract(Variable,Number);
Soustrait un nombre à la variable.
Multi(Variable,Number);
Multiplie la variable par un nombre.
Divide(Variable,Number);
Divise la variable par un nombre.
Mod(Variable,Number);
Divise la variable par un nombre, et place le reste dans la variable.
Insert(Variable, Text, Position);
Insert un texte à Position dans la variable.
Remove(Variable,Start, Length);
Efface un nombre de caractères (length) à partir de Start de la
variable.
Replace(Variable,Old, New);
Remplace Old par New dans la variable.
Trim(Variable);
Enlève les espaces à droite et à gauche de la variable.
Not(Variable);
Si la variable est à TRUE, la variable sera mise à FALSE, et inversement. |