1. Général
Cette section vous explique des choses bonnes à savoir sur les Nwscript :
Le compilateur prend en compte la casse des caractères : 'a' n'est pas la même chose que 'A'.
Il existe trois types de NWScripts :
- les scripts d'inclusion : ils ne doivent pas contenir l'instruction void main() ou int StartingConditionnal().
- les scripts conditionnels (réservés aux dialogues) : un script conditionnel contient exclusivement la fonction int StartingConditionnal().
- les scripts 'divers' (qui contiennent tout et n'importe quoi) : ce type de script doit contenir la fonction void main() pour être valide.
Les scripts sont construits sous forme de blocs délimités par des accolades ({ et }) par exemple :
void main()
{
if ( condition )
resultat ;
else if ( condition2 )
{
resultat2 ;
}
else
resultat3;
}
Nous avons plusieurs blocs : if ( condition ), else if (condition 2 ), et enfin else . Ces trois blocs sont inclus dans un bloc général void main().
Vous pouvez inclure un autre NWScript afin d'alléger vos scripts et d'éviter de recopier sur chacun de vos scripts nécessitant une fonction 'x' le code de la fonction x : pour cela, vous devez utiliser l'instruction #include " nom_du_script ".
Chaque instruction doit être finie par un point-virgule " ; " tel que :
if ( condition )
{
resultat ;
foo();
}
Vous ne devez pas mettre de " ; " après la parenthèse de fin d'une structure de contrôle (voir section 6). De même, vous ne devez pas mettre de " ; " après la fin d'un appel de fonction (voir exemple sur les blocs).
Vous pouvez ajouter des commentaires (ceux-ci ne seront pas exécuté) : pour cela, vous avez deux façons de faire :
- les commentaires sur une ligne : ceux-ci doivent être précédés de // tel que :
// Ceci est un commentaire sur une ligne
- - les commentaires multi lignes : ceux-ci doivent être 'entourés' de /* et de */ tel que :
/* Ceci est un commentaire sur deux lignes
Voici la deuxième ligne */
Vous n'êtes - bien entendu - pas forcé de sauter une ligne avec le commentaire multi lignes. C'est à vous de choisir.
Une fois que vous avez écrit votre script, celui-ci doit être (bien sûr) sauvegardé, et compilé. La compilation du script se fait par la commande F7 et vous permet de savoir où il y a des erreurs dans votre script. Cependant, sur ce point là, l'éditeur de script de NWN a une lacune : il reconnaît les scripts conditionnels et les scripts " divers " mais pas les scripts d'inclusions. Ce qui fait que celui-ci risque de vous avertir que le script n'est pas valide parce qu'il ne contient pas au choix la fonction void main() ou la fonction int StartingConditional. Pour compiler un script d'inclusion, vous devrez passer par un script incluant votre script d'inclusion.