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}} |