2. Les types
Les NWScripts vous permettent de définir des variables (voir section 3) : celles-ci sont obligatoirement typées. Voici pour vous aider la définition de chacun des types présents dans les NWScripts.
- action : ceci représente une action. Ce type est beaucoup utilisé par les fonctions Action*.
- command : ce type revient au même qu'au type void sauf qu'il est utilisé par les fonctions DelayCommand() et AssignCommand().
- constant : une constante est une variable qui ne change pas (et qui ne peut pas être changée) au cours du déroulement normal du script une fois qu'elle est déclarée et définie et qui est présente quelque soit le script. Dans les NWScripts, vous ne pourrez pas réellement définir de constantes : vous devrez utiliser les constantes de bases (nous vous renvoyons sur cette page : http://www.reapers.org/nwn/reference/compiled/constant.index.html) ou vous servir de variables globales.
- effect : ce type vous permet de définir un effet pour ensuite pouvoir l'appliquer avec ApplyEffectToObject() ou encore ApplyEffectAtLocation().
- event : un event (ou événement) est le moteur de vos scripts : il vous permet d'activer vos scripts en fonction d'une condition précise (par exemple, le personnage meurt).
- float : ceci correspond au type décimal (aux nombres décimaux). Il s'agit d'un nombre signé sur 32 bits (4 octets) allant de -3.402823e38 à 3.402823e38. Nous reviendrons sur le type décimal dans la section 3.
- int : ce type sera certainement celui que vous utiliserez presque tout le temps avec le type 'object'. Il s'agit du type entier : c'est un nombre signé sur 32 bits (4 octets) allant de -2147483647 à 2147483647.
- location : une location correspond à un point spécifique sur une zone. Une location se caractérise par : un ID de zone, un vecteur (voir plus bas) et un nombre décimal représentant la position angulaire d'un objet par rapport à l'axe Ouest-Est (par exemple : si vous regardez vers le sud, votre position angulaire par rapport à l'axe Ouest Est sera de 270° ou -90°).
- object : le type objet est un des types les plus importants des NWScripts : il représente chacun des objets présents dans votre module : par exemple, le module sera un objet, une zone sera un objet. Il s'agit en fait d'un entier qui représente un objet particulier dans le module.
- string : ce type vous permet de stocker des chaînes de caractères d'une taille arbitraire (une chaîne de caractères étant par exemple « salut ».)
- struct : le type structure vous permet de combiner plusieurs autres types (entiers, etc). Vous ne pourrez pas combiner d'autres structures à l'intérieur de votre structure.
- talent : ceci représente un talent : par exemple, un don, une aptitude, ou encore des sorts.
- vector : un vecteur revient au même qu'une structure de trois nombres décimaux. Un vecteur est caractérisé par ses coordonnées x, y, z.
- void : il s'agit du type « nul ». Il ne renvoie rien. Il sert surtout aux fonctions ne devant rien renvoyer (par exemple void main() ; Note : de telles fonctions sont appelées Procédures).
Ceux qui connaissent déjà la programmation remarqueront qu'il manque un type qui pourtant est très utilisé : il s'agit du type tableau (array) qui n'est pas présent dans le NWScript. Aussi, vous trouverez un deuxième type qui est présent mais sous une autre forme : c'est le type booléen. Celui-ci n'est pas présent en tant que type à part, mais présent en tant que type entier où 0 vaut FALSE et 1 vaut TRUE.
Une fois que vous avez les différents types, il nous faut les déclarer : c'est ce que nous verrons dans la section suivante.
|