Strict Standards: Non-static method AJAXChatFileSystem::getFileContents() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatTemplate.php on line 37

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81

Strict Standards: Non-static method AJAXChatEncoding::htmlEncode() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChat.php on line 2862

Strict Standards: Non-static method AJAXChatEncoding::encodeSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 53

Strict Standards: Non-static method AJAXChatEncoding::getSpecialChars() should not be called statically, assuming $this from incompatible context in /var/www/phpBB3/chat/lib/class/AJAXChatEncoding.php on line 81
www.minas-dae.com • Afficher le sujet - Tutoriel de scripting pour Neverwinter Nights

www.minas-dae.com

Les Copains D'Abord - Les Marches de Minas-Dae

Heures au format UTC + 1 heure [ Heure d’été ]

Nous sommes le 18 Fév 2019, 03:52




Poster un nouveau sujet Ce sujet est verrouillé, vous ne pouvez pas éditer de messages ou poster d’autres réponses.  [ 9 messages ] 
Auteur Message
 Sujet du message: Tutoriel de scripting pour Neverwinter Nights
MessagePosté: 23 Juin 2008, 16:27 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
Tutoriel de scripting pour Neverwinter Nights by Linéa

Le tutoriel sera alimenté au fur et à mesure puis mis en forme sur un wiki lorsqu'il sera terminé :)

Si des points ne sont pas clairs, ou à approfondir, merci de le faire savoir dans le topic discussion :)

_________________
Image


Dernière édition par Linéa le 23 Juin 2008, 16:48, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:31 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
Sommaire :

I- Introduction
I.1 - Prendre un bon départ
I.2 – le langage NWScript

II - Notions de base
II.1 – Les variables
II.2 – Les types
II.3 – Les opérateurs
II.4 - Exercices


Dernière édition par Linéa le 23 Juin 2008, 16:49, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:33 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
I – Introduction
I.1 – Prendre un bon départ

Ce tutoriel ne traitera que de l'élaboration de scripts et suppose que vous maîtrisez déjà la création de cartes, de créatures et d'objets.

Pour débuter dans de bonnes conditions, il faut savoir que la programmation nécessite de la patience, de la logique et du travail. Quand une erreur se produit, ce n'est pas parce que l'éditeur Aurora est nul, mais bien que vous avez commis une erreur quelque part :) Par ailleurs, ce n'est pas parce qu'un script semble fonctionner qu'il fonctionnera correctement continuellement, il faut penser au maximum d'éventualités, sinon à toutes, lors de la conception.
Pour les scripts complexes, et pour les plus simples lors de l'apprentissage, on évitera de sauter bêtement sur l'éditeur et on préfèrera analyser sur papier le fonctionnement avant de se lancer. Après avoir lu ces informations, vous êtes prêt à commencer l'apprentissage :) Ah oui une dernière chose... Il vous faudra au moins des notions d'anglais pour vous en sortir...


Dernière édition par Linéa le 23 Juin 2008, 16:49, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:34 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
I.2 – le langage NWScript

Le langage NWScript est un langage développé par Bioware et s'inspire du langage C. Il a néamoins été simplifié, on fera abstraction de la notion de pointeurs, de tableaux (arrays) qui auraient bien été utiles, mais malheureusement non présents en NWScript.


Dernière édition par Linéa le 23 Juin 2008, 16:49, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:34 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
II – Notions de base
Avant de commencer, il va falloir assimiler un brin de théorie. Ca risque d'être difficile à comprendre au départ mais en avançant ça devrait s'éclaircir.


Dernière édition par Linéa le 23 Juin 2008, 16:50, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:37 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
II.1 – Les variables
Les variables sont un moyen de stocker des valeurs en mémoire. Elles doivent nécessairement être déclarées avant d'être utilisées. C'est à dire qu'il faut préciser à l'interpréteur leur type avant de les utiliser.

Prenons un exemple pour commencer :
Code:
1   void main()
2   {
3      int unEntier = 10;
4   }


les lignes 1,2 et 4 apparaissent par défaut lorsque vous commencez un script. Ces instructions sont indispensables pour fournir au script un début et une fin. On reviendra dessus un peu plus tard lorsque nous aborderons les fonctions.





Concentrons-nous sur la ligne 3 :
Code:
3      int unEntier = 10;


C'est une déclaration de variable, on spécifie un type (int), un nom (unEntier) puis on lui donne une valeur (= 10). On notera la présence d'un point-virgule pour préciser à Aurora que l'instruction est terminée.


Dernière édition par Linéa le 23 Juin 2008, 16:50, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:41 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
II.2 – Les types

Citation:
A savoir : une variable doit toujours être déclarée avant d'être utilisée. Elle peut prendre n'importe quel nom à condition de commencer par une lettre et de ne pas comporter de caractère spécial, et de ne pas faire partie de la liste de mots-clefs du langage de script, dont voici une liste non exhaustive :
void, int, string, float, object, struct, effect,... Vous reconnaîtrez un mot-clef car il se colorise en bleu (par défaut).
Il est également conseillé de ne pas mettre d'accents pour améliorer la portabilité du script (qu'on puisse le lire sous windows et linux, à l'étranger...)



Il existe plusieurs types de variables, nous utiliserons particulièrement ceux-ci au début :

- int : pour integer, c'est à dire un entier, positif comme négatif ou un booléen, TRUE, qui vaut 1, ou FALSE qui vaut 0.
ex :
Code:
   int monEntier = -10;
   int monBooleen = TRUE;


- float : flottant, ou nombre réel, autrement dit un nombre à virgule (la virgule est représentée par un point, notation anglo-saxonne oblige :)
ex :
Code:
float monFlottant = 9.06;


- string : Une chaine de caractère. Celle- ci doit être spécifiée entre guillemets.
ex :
Code:
string maChaine = "a";


- object : l'objet est une notion assez complexe, dans le sens où ça peut être une créature, un point de passage, un item.... Il n'en sera pas moins la variable la plus utilisée dans les scripts.

Je ne fournirai pas d'exemple pour ce type car un objet est une notion assez abstraite et doit être retourné par une fonction, notion que nous aborderons par la suite.


Dernière édition par Linéa le 23 Juin 2008, 16:50, édité 2 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:45 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
II.3 – Les opérateurs
Ici je vais juste faire la liste des principaux opérateurs et donner leur fonction :

= : opérateur d'affectation, il permet tout simplement d'assigner une valeur à une variable.:

+ : opérateur d'addition : Il permet d'additionner deux entiers ou deux flottants, ou de concaténer deux chaines, c'est à dire les mettre bout à bout.
Exemples :
Code:
      int a = 1 + 2;
      float b = 1.05 + 2.56;
      string c = "Coucou " + "c'est moi";


- : opérateur de soustraction : il ne fonctionne qu'avec des nombres, entiers ou réels.
Exemples :
Code:
      int a = 2 - 1;
      float b = 30.67 - 12.3465;


* : opérateur de multiplication : il ne fonctionne également qu'avec des nombres, entiers ou réels.
Exemples :
Code:
      int a = 2*5;
      float b = -10.56 * 32.6789;


/ : operateur de division : Toujours avec des nombres uniquement
Exemples :
Code:
      int a = 5 / 2;
      float b = 22.56 / 11.54;

note : la première instruction aura pour résultat 2 : c'est ce qu'on appelle une division entière, le résultat est arrondi à l'entier inférieur.Concrètement :
5 / 2 = 2.5
On ne conservera que la partie entière du résultat : 2


Dernière édition par Linéa le 23 Juin 2008, 16:50, édité 1 fois.

Haut
 Profil Envoyer un e-mail  
 
 Sujet du message:
MessagePosté: 23 Juin 2008, 16:48 
Hors ligne
¤Développement Inside¤
Avatar de l’utilisateur

Inscription: 31 Déc 2005, 05:11
Messages: 941
II.4 - Exercices

Il est temps de commencer à se prendre la tête avec des exercices maison, si vous n'y arrivez pas, vous êtes allé trop vite (ou alors j'explique mal, ce qui n'est pas exclu ^^'). Interdiction formelle d'utiliser l'ordinateur, c'est pour votre bien :p

Exercice 1 :
Quelle est l'instruction correcte ?
a - int resultat = 465 * 34.76;
b - float f = -10.56 / 12.43
c - int r = 43 / 32;

Exercice 2 :
Que vaut la variable resultat dans chacun de ces cas ? :
a - float resultat = 33.0/ 11.0;
b - int resultat = 58 / 20;
c - string resultat = "Ceci est" + "une chaine" + "mais...";

Exercice 3 :
Pourquoi cette instruction n'est pas valide ?
a = 10 + 23.34


Haut
 Profil Envoyer un e-mail  
 
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Ce sujet est verrouillé, vous ne pouvez pas éditer de messages ou poster d’autres réponses.  [ 9 messages ] 

Heures au format UTC + 1 heure [ Heure d’été ]


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 1 invité


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages
Vous ne pouvez pas joindre des fichiers

Rechercher:
Aller à:  
cron
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
Style based on FI Black by Daz (FI) :: Ported to phpBB3 by NeXur.
Traduction par: phpBB-fr.com