Le site

News
Accueil
Guilde
Download
Liens
Forum !!!

Le Jeu

Sorts
Images 1
Images 2

Module

Bases
Dialogues
Scripts

Liste de scripts

Lire
Nouveau


::Admin::

Sorts
Scripts

 

 

 

1) Mettons les choses au point :

Avant de faire quoi que ce soit, fixons tout de suite une convention pour l'affichage des scripts sur cette page :
  • Les scripts seront dans des tableaux blancs et seront écris d'une autre police
  • Les identificateurs (int, float etc.) seront écris en bleu
  • Les commentaires seront en gris
  • Les constantes seront en majuscules et en gras
  • Les variables seront en rouge/bordeaux
  • Et les mots réservés comme If ou For seront en jaune orangé
Voici un exemple de script tels qu'ils seront présentés sur ce site :

void main()
{
	string sPhrase = "Les scripts sont très puissants !"; // Cette ligne n'a rien à voir avec le script
	location lObjet = GetLocation(OBJECT_SELF); //celle-ci est encore plus décorative !
	
	if (sPhrase == "Les scripts sont difficiles")
		SpeakString("C'est faux ! Les scripts sont puissants, pas difficiles !");
}



2) Comprendre l'aide aux scripts de L'Aurora Neverwinter Toolset :

L'éditeur de Scripts contenu dans l'Aurora Toolset met à notre disposition toutes les fonctions rendues disponibles par le fichier NWScript.h et nous en fait même une description syntaxique, c'es-à-dire que l'on devrait pouvoir utiliser parfaitement chacune des fonctions disponibles. Mais prenons l'exemple de la fonction "TakeGoldFromCreature()". Voilà les informations apportées par l'éditeur :


// Take nAmount of gold from oCreatureToTakeFrom.
// - nAmount
// - oCreatureToTakeFrom: If this is not a valid creature, nothing will happen.
// - bDestroy: If this is TRUE, the caller will not get the gold.  Instead, the
//   gold will be destroyed and will vanish from the game.
void TakeGoldFromCreature(int nAmount, object oCreatureToTakeFrom, int bDestroy=FALSE)


Cette description commence d'abord par 5 lignes de commentaires qui nous disent comment comprendre l'exemple : Tout d'abord, la fonction sert à prendre de l'or (un nombre entier --> nAmout) à une créature désignée par oCreatureToTakeFrom (les créatures sont toujours des objets). Ensuite, les variables utilisées sont énoncées : nAmount est la quantité d'or à prendre, oCreatureToTakeFrom est la créature à qui l'on doit prendre l'or (si elle n'existe pas, rien ne se passe), et bDestroy (b signifie que la variable est booléenne, elle ne peut que prendre les valeurs TRUE (vrai) et FALSE (faux)) permet de savoir si l'or va être détruit (TRUE) et disparaître du jeu.
Ensuite, l'exemple est donné : void signifie que le script devra être placé dans une fonction void() ; int nAmount signifie que le premier argument devra être entier et sera donc la quantité d'or à prendre, le second argument devra être la créature à laquelle on prend l'or et la troisième argument déterminera si l'or sera détruit ou pas.


3) Utiliser un script dans un certain contexte :

Prenons d'abord l'exemple du script précédant : on crée un dialogue, et dans une réponse possible du joueur, on mettra par exemple : "Tenez, voilà votre or". Dans la fenêtre de dialogue (dans l'éditeur, pas le jeu), on choisira l'option "Actions conséquentes", à côté de "Condition d'execution" ou "Action appears when...". Une fois dans cette fenêtre, on peut créer un nouveau script en cliquant sur "éditer". Le script sera évidemment un peu différent de celui décrit plus haut et sera le suivant :

void main()
{
	int nPrendre = 150; //On prend 150po à la créature
	object oCreature = GetPCSpeaker(); // cette fonction très utilisée dit que l'objet est la créature qui parle
	int bDetruire = TRUE; // ne pas mettre de guillements autours de TRUE !!! 
	TakeGoldFromCreature(nPrendre,oCreature,bDetruire);
}


Voilà comment le script devra être écrit, c'est donc légèrement différent de ce qu'indique l'éditeur. Ce script était évidemment très simple, puisque le "Script Wizard" le proposait tout simplement. Et à ce propos, voilà ce qu'il propose pour la même action :

void main()
{
    TakeGoldFromCreature(150, GetPCSpeaker(), FALSE);
}

Cet exemple nous indique donc simplement que l'on peut dirrectement mettre les arguments tels quels dans la fonction, sans être obligé de passer par des variables, ce qui est quand même beaucoup mieux dans les longs scripts bourrés de variables !!!










Version Imprimable
SoU - CHAPITRE II

Intro
Introduction
Camp Asabi

Partie Est
La Carte
Bibliothèque
Vent Sagesse

Partie Nord
La Carte
Crypte
Vent Mort

Partie Ouest
La Carte
Arcanistes
Vent Ténèbres

Temple des Vents
La Carte
Fin

 

 


 




© www.nwn.fr.st
- tous droits réservés - Tyraniek
connectés en ce moment