Cette page vous donne les différences entre la révision choisie et la version actuelle de la page.
ags45 28/04/2011 11:54 | ags45 30/01/2012 12:05 version actuelle | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
=====Les Mots-clés du Script===== | =====Les Mots-clés du Script===== | ||
- | |||
====Tableaux==== | ====Tableaux==== | ||
Ligne 32: | Ligne 31: | ||
// Voir aussi : // [[ags39#DynamicArrays|Tableaux dynamiques]] | // Voir aussi : // [[ags39#DynamicArrays|Tableaux dynamiques]] | ||
+ | ---- | ||
====Types de données==== | ====Types de données==== | ||
- | |||
- | |||
- | |||
- | ** Type ** | ||
- | ** Description ** | ||
^ Type ^ Description ^ | ^ Type ^ Description ^ | ||
Ligne 51: | Ligne 46: | ||
sont utiles uniquement pour conserver la mémoire dans les cas où vous créez un nombre énorme de variables.\\ \\ | sont utiles uniquement pour conserver la mémoire dans les cas où vous créez un nombre énorme de variables.\\ \\ | ||
Pour déclarer une variable, tapez son type suivi par son nom, et enfin un point-virgule. | Pour déclarer une variable, tapez son type suivi par son nom, et enfin un point-virgule. | ||
- | Par exemple :\\ \\ | + | Par exemple : |
- | int ma_variable;\\ \\ | + | |
+ | int ma_variable; | ||
déclare une variable de 4 octets qui contiendra un entier, appelée ma_variable \\ \\ | déclare une variable de 4 octets qui contiendra un entier, appelée ma_variable \\ \\ | ||
- | **ATTENTION :** | + | **ATTENTION :** Lorsque vous utilisez le type de données //float//, vous pourriez penser que les opérateurs == et != |
- | Lorsque vous utilisez le type de données //float//, vous pourriez penser que les opérateurs == et != | + | |
ne fonctionnent pas correctement. Par exemple : | ne fonctionnent pas correctement. Par exemple : | ||
float resultat = 2.0 * 3.0; | float resultat = 2.0 * 3.0; | ||
if (resultat == 6.0) { | if (resultat == 6.0) { | ||
- | Display("Le résultat est 6!"); | + | Display("Le résultat est 6!"); |
} | } | ||
Ligne 68: | Ligne 64: | ||
float resultat = 2.0 * 3.0; | float resultat = 2.0 * 3.0; | ||
if ((resultat > 5.99) && (resultat < 6.01)) { | if ((resultat > 5.99) && (resultat < 6.01)) { | ||
- | Display("Le résultat est 6!"); | + | Display("Le résultat est 6!"); |
} | } | ||
Ligne 75: | Ligne 71: | ||
à ce point si vous utilisez des décimaux dans vos calculs.\\ \\ | à ce point si vous utilisez des décimaux dans vos calculs.\\ \\ | ||
+ | ---- | ||
====Opérateurs==== | ====Opérateurs==== | ||
L'interprétateur de script AGS supporte les opérateurs suivants dans les conditions. | L'interprétateur de script AGS supporte les opérateurs suivants dans les conditions. | ||
- | Ils sont listés ici en ordre de priorité de traitement, le premier évalué étant tout en haut de la liste. | + | Ils sont listés ici en ordre de priorité de traitement, le premier évalué étant tout en haut de la liste.\\ \\ |
- | \\ \\ | + | **ATTENTION :** En utilisant des opérateurs de même priorité, AGS les évaluera pas défaut |
- | **ATTENTION :** | + | |
- | En utilisant des opérateurs de même priorité, AGS les évaluera pas défaut | + | |
de droite à gauche. Donc l'expression a = 5 - 1 - 2; sera évaluée comme a = 5 - (4 - 2); | de droite à gauche. Donc l'expression a = 5 - 1 - 2; sera évaluée comme a = 5 - (4 - 2); | ||
ce qui ne correspond pas à ce à quoi vous vous attendez. Utilisez toujours les parenthèses pour coder clairement. | ce qui ne correspond pas à ce à quoi vous vous attendez. Utilisez toujours les parenthèses pour coder clairement. | ||
Ligne 110: | Ligne 105: | ||
Cet ordre de priorité vous permet de prévoir l'évaluation de telles expressions : | Cet ordre de priorité vous permet de prévoir l'évaluation de telles expressions : | ||
- | \\ \\ | + | |
- | if (!a && b < 4)\\ \\ | + | if (!a && b < 4) |
- | ce qui exécutera le bloc 'if' si **a** vaut 0 et si **b** est plus petit que 4.\\ \\ | + | |
+ | exécutera le bloc 'if' si **a** vaut 0 et si **b** est plus petit que 4.\\ \\ | ||
Cependant, il est toujours bon d'utiliser des parenthèses pour grouper les expression. | Cependant, il est toujours bon d'utiliser des parenthèses pour grouper les expression. | ||
- | Il est bien plus lisible d'écrire le script plus haut comme ceci :\\ \\ | + | Il est bien plus lisible d'écrire le script plus haut comme ceci : |
- | if ((!a) && (b < 4))\\ \\ | + | |
+ | if ((!a) && (b < 4)) | ||
+ | |||
+ | ---- | ||
====Constantes==== | ====Constantes==== | ||
Ligne 124: | Ligne 123: | ||
| DEBUG | Retourne une valeur positive si le jeu a été compilé pour le debug mode, sinon retourne une valeur nulle | | | DEBUG | Retourne une valeur positive si le jeu a été compilé pour le debug mode, sinon retourne une valeur nulle | | ||
| STRICT | Retourne une valeur positive si l'option "Obliger le script orienté-objet" est cochée, sinon retourne une valeur nulle | | | STRICT | Retourne une valeur positive si l'option "Obliger le script orienté-objet" est cochée, sinon retourne une valeur nulle | | ||
- | | STRICT_STRINGS | | | + | | STRICT_STRINGS | Définie seulement si l'option "Enforce new-style strings" ("//Forcer le nouveau style pour les chaînes de caractères//") est cochée | |
+ | | STRICT_AUDIO | Définie seulement si l'option "Enforce new-style audio scripting" ("//Forcer le nouveau style pour les scripts audios//") est cochée | | ||
| LRPRECEDENCE | Retourne une valeur positive si l'option "Priorité d'opérateurs de gauche à droite" est cochée, sinon retourne une valeur nulle | | | LRPRECEDENCE | Retourne une valeur positive si l'option "Priorité d'opérateurs de gauche à droite" est cochée, sinon retourne une valeur nulle | | ||
| AGS_NEW_STRINGS | Retourne une valeur positive si la version d'AGS est supérieure ou égale à 2.71 et permet les objets new-strings, sinon retourne une valeur nulle. | | | AGS_NEW_STRINGS | Retourne une valeur positive si la version d'AGS est supérieure ou égale à 2.71 et permet les objets new-strings, sinon retourne une valeur nulle. | | ||
Ligne 163: | Ligne 163: | ||
les propriétés du style [[ags53#CharacterCount|Game.CharacterCount]].\\ \\ | les propriétés du style [[ags53#CharacterCount|Game.CharacterCount]].\\ \\ | ||
+ | ---- | ||
====Vérification de la Version==== | ====Vérification de la Version==== | ||
Ligne 179: | Ligne 180: | ||
utiliser les vérification #ifver si vous voulez faire une différence entre des versions | utiliser les vérification #ifver si vous voulez faire une différence entre des versions | ||
plus récentes. | plus récentes. | ||
+ | |||
+ | ---- | ||
====Comparaisons if, else==== | ====Comparaisons if, else==== | ||
- | **if (** //condition// **)** { | + | |
- | + | > **if (** //condition// **)** { | |
- | //commandes1// | + | > |
- | + | >> //commandes1// | |
- | } | + | > } |
- | + | > [ **else** { | |
- | [ **else** { | + | >> //commande2// |
- | + | > } ] | |
- | //commande2// | + | |
- | + | ||
- | } ]\\ \\ | + | |
Si //condition// est vraie, alors //commande1// est exécutée.\\ \\ | Si //condition// est vraie, alors //commande1// est exécutée.\\ \\ | ||
Si //condition// n'est pas vraie, et qu'il y a une case **else**, alors | Si //condition// n'est pas vraie, et qu'il y a une case **else**, alors | ||
Ligne 198: | Ligne 199: | ||
if (GetGlobalInt(5) == 10) { | if (GetGlobalInt(5) == 10) { | ||
- | Display("Globalint 5 vaut 10."); | + | Display("Globalint 5 vaut 10."); |
} | } | ||
else { | else { | ||
- | Display("Globalint 5 ne vaut pas 10."); | + | Display("Globalint 5 ne vaut pas 10."); |
} | } | ||
Ligne 210: | Ligne 211: | ||
if (GetGlobalInt(5) == 1) { | if (GetGlobalInt(5) == 1) { | ||
- | Display("Globalint 5 vaut 1."); | + | Display("Globalint 5 vaut 1."); |
} | } | ||
else if (GetGlobalInt(5) == 2) { | else if (GetGlobalInt(5) == 2) { | ||
- | Display("Globalint 5 vaut 2."); | + | Display("Globalint 5 vaut 2."); |
} | } | ||
else { | else { | ||
- | Display("Globalint 5 ne vaut ni 1 ni 2."); | + | Display("Globalint 5 ne vaut ni 1 ni 2."); |
} | } | ||
+ | ---- | ||
====while==== | ====while==== | ||
- | **while (** //condition// **)** { | + | |
+ | > **while (** //condition// **)** { | ||
- | //commandes// | + | >> //commandes// |
- | }\\ \\ | + | > } |
Exécute les //commandes// en continu, tant que la //condition// est vraie.\\ \\ | Exécute les //commandes// en continu, tant que la //condition// est vraie.\\ \\ | ||
Par exemple :\\ \\ | Par exemple :\\ \\ | ||
while (cEgo.Moving) { | while (cEgo.Moving) { | ||
- | Wait(1); | + | Wait(1); |
} | } | ||
Ligne 238: | Ligne 241: | ||
de la boucle et s'arrêtera.\\ \\ | de la boucle et s'arrêtera.\\ \\ | ||
+ | ---- | ||
====function==== | ====function==== | ||
- | **function** //nom// ( [//type1 param1//, //type2 param2//, ... ] )\\ \\ | + | |
+ | > **function** //nom// ( [//type1 param1//, //type2 param2//, ... ] ) | ||
Déclare une fonction personnelle dans votre script. Une fonction vous permet de définir | Déclare une fonction personnelle dans votre script. Une fonction vous permet de définir | ||
une suite de commandes qui seront effectuées les unes après les autres lorsque vous appellerez | une suite de commandes qui seront effectuées les unes après les autres lorsque vous appellerez | ||
Ligne 248: | Ligne 254: | ||
une fonction qui s'en chargerait :\\ \\ | une fonction qui s'en chargerait :\\ \\ | ||
- | function AddInvAndPlaySound(int inventoryItem) { | + | function AddInvAndPlaySound(InventoryItem* item) { |
- | player.AddInventory(inventory[inventoryItem]); | + | player.AddInventory(item); |
- | PlaySound(5); | + | aInventorySound.Play(); |
} | } | ||
ainsi, vous aurez simplement à appeler cette fonction ailleurs dans votre code : | ainsi, vous aurez simplement à appeler cette fonction ailleurs dans votre code : | ||
- | AddInvAndPlaySound(8); | + | AddInvAndPlaySound(iKey); |
Pour ajouter l'objet 8 à votre inventaire tout en jouant le son 5.\\ \\ | Pour ajouter l'objet 8 à votre inventaire tout en jouant le son 5.\\ \\ | ||
Ligne 274: | Ligne 280: | ||
de la fonction elle-même.\\ \\ | de la fonction elle-même.\\ \\ | ||
+ | ---- | ||
====struct==== | ====struct==== | ||
- | **struct** //nom// {\\ \\ | + | |
+ | > **struct** //nom// { | ||
Déclare une structure personnelle dans votre script. | Déclare une structure personnelle dans votre script. | ||
Ligne 318: | Ligne 327: | ||
Les structures sont essentielles si vous avez des données complexes à manipuler dans vos scripts.\\ \\ | Les structures sont essentielles si vous avez des données complexes à manipuler dans vos scripts.\\ \\ | ||
+ | |||
+ | ---- | ||
====enum==== | ====enum==== | ||
**Recommandé uniquement pour les utilisateurs avancés**\\ \\ | **Recommandé uniquement pour les utilisateurs avancés**\\ \\ | ||
- | **enum** //nom// { | + | > **enum** //nom// { |
- | //option1// [ = //valeur1// ], | + | >> //option1// [ = //valeur1// ], |
- | //option2// [ = //valeur2// ], | + | >> //option2// [ = //valeur2// ], |
- | ... | + | >> ... |
- | };\\ \\ | + | > }; |
Déclare un type d'énumération. Une énumération vous permet de grouper des options, dont une seule | Déclare un type d'énumération. Une énumération vous permet de grouper des options, dont une seule | ||
pourra être vraie à la fois -- un peu comme le contenu d'une listbox.\\ \\ | pourra être vraie à la fois -- un peu comme le contenu d'une listbox.\\ \\ | ||
Ligne 337: | Ligne 349: | ||
function faireTruc(int param) { | function faireTruc(int param) { | ||
if (param == 1) { | if (param == 1) { | ||
- | // faire quelque chose | + | // faire quelque chose |
} | } | ||
else if (param == 2) { | else if (param == 2) { | ||
- | // faire autre chose | + | // faire autre chose |
} | } | ||
- | // etc | + | // etc |
} | } | ||
Ligne 349: | Ligne 361: | ||
enum faireTrucOption { | enum faireTrucOption { | ||
- | CuireGateau, | + | CuireGateau, |
- | LaverLinge | + | LaverLinge |
}; | }; | ||
function faireTruc(faireTrucOption param) { | function faireTruc(faireTrucOption param) { | ||
- | if (param == CuireGateau) { | + | if (param == CuireGateau) { |
- | // faire quelque chose | + | // faire quelque chose |
- | } | + | } |
- | else if (param == LaverLinge) { | + | else if (param == LaverLinge) { |
- | // faire autre chose | + | // faire autre chose |
- | } | + | } |
- | // etc | + | // etc |
} | } | ||
Ligne 401: | Ligne 413: | ||
Veuillez consulter la page des [[ags40#ExtenderFunctions|fonctions d'extension]] pour les détails. | Veuillez consulter la page des [[ags40#ExtenderFunctions|fonctions d'extension]] pour les détails. | ||
+ | ---- | ||
====import==== | ====import==== | ||
- | **import** //declaration// ;\\ \\ | + | |
+ | > **import** //declaration// ; | ||
Déclare //declaration// en tant que variable ou fonction qui est externe au script courant, | Déclare //declaration// en tant que variable ou fonction qui est externe au script courant, | ||
mais à laquelle le script doit accéder. Vous utilisez ceci pour permettre à vos scripts de pièce | mais à laquelle le script doit accéder. Vous utilisez ceci pour permettre à vos scripts de pièce | ||
Ligne 422: | Ligne 437: | ||
**NOTE :** Vous ne pouvez pas importer les variables d'anciennes chaînes (cela ne s'applique pas | **NOTE :** Vous ne pouvez pas importer les variables d'anciennes chaînes (cela ne s'applique pas | ||
aux nouvelles chaînes).\\ \\ | aux nouvelles chaînes).\\ \\ | ||
+ | |||
+ | ---- | ||
====export==== | ====export==== | ||
- | **export** //variable// [, //variable// ... ] ;\\ \\ | + | |
+ | > **export** //variable// [, //variable// ... ] ; | ||
Déclare que //variable// peut être exportée et que les autres scripts peuvent y accéder. Vous devez placer | Déclare que //variable// peut être exportée et que les autres scripts peuvent y accéder. Vous devez placer | ||
cette déclaration à la **fin** de votre script global. Vous pouvez exporter beaucoup de variable en | cette déclaration à la **fin** de votre script global. Vous pouvez exporter beaucoup de variable en | ||
Ligne 435: | Ligne 454: | ||
Ceci exporte trois variables - ma_variable, compteur et force.\\ \\ | Ceci exporte trois variables - ma_variable, compteur et force.\\ \\ | ||
+ | ---- | ||
====noloopcheck==== | ====noloopcheck==== | ||
- | function **noloopcheck** //nom_fonction// ( //paramètres ...// ) {\\ \\ | + | |
+ | > function **noloopcheck** //nom_fonction// ( //paramètres ...// ) { | ||
Le mot-clé noloopcheck empêche le script de vérifier les boucles de la fonction spécifiée.\\ \\ | Le mot-clé noloopcheck empêche le script de vérifier les boucles de la fonction spécifiée.\\ \\ | ||
Normalement, si une boucle [[ags45#whilestatement|while]] s'exécute plus de 150 000 fois, | Normalement, si une boucle [[ags45#whilestatement|while]] s'exécute plus de 150 000 fois, | ||
Ligne 456: | Ligne 478: | ||
function noloopcheck initialiser_tableau() { | function noloopcheck initialiser_tableau() { | ||
- | char grostableau[200000]; | + | char grostableau[200000]; |
- | int a = 0; | + | int a = 0; |
- | while (a < 200000) { | + | while (a < 200000) { |
- | grostableau[a] = 1; | + | grostableau[a] = 1; |
- | a++; | + | a++; |
- | } | + | } |
} | } | ||
ici sans le mot-clé "noloopcheck", AGS avorterait ce script.\\ \\ | ici sans le mot-clé "noloopcheck", AGS avorterait ce script.\\ \\ | ||
- | {{tag>en_cours révision}} | + | {{tag>français}} |