Pages traduites Pages à traduire Pages en cours de traduction
A propos
 

Ceci est une ancienne révision du document !



Fonctions de jeu globales (Game / Global functions)

AbortGame

AbortGame(string message, ...)
Arrête le jeu et retourne au système d'exploitation (OS).

La fenêtre standard d'erreur d'AGS est affichée, contenant les numéros de ligne du script et le code d'appel, ainsi que le message (dans lequel vous pouvez utiliser les codes variables %d et %s).

Vous pouvez utiliser cette fonction plutôt que QuitGame lorsque vous vérifiez que votre script est appelé correctement, de façon à vous assurer que l'utilisateur utilise vos fonctions comme il faut.

Dans l'idéal, cette fonction ne devrait jamais être appelée dans la version finale du jeu.

Exemple :
function Elargir(int nouvelleLargeur) {
  if (nouvelleLargeur < 10)
    AbortGame("nouvelleLargeur doit être au moins de 10 !");
}

arrêtera le jeu si Elargir est appelée avec un paramètre inférieur à 10.

Voir Aussi : QuitGame


CallRoomScript

CallRoomScript (int valeur)
Appelle la fonction on_call de la pièce actuelle. Ceci est utile par exemple pour le parser de texte, lorsque vous voulez vérifier les phrases générales du jeu, et voir si la phrase est significative pour la pièce actuelle.

La fonction on_call sera appelée dans le script de la pièce actuelle, avec le paramètre valant valeur, que vous aurez passée. Ceci vous permet de différencier les différents appels, et vous permettre de ne pas utiliser de GlobalInt pour dire ce qu'il faut faire.

Si la pièce actuelle n'a pas de fonction on_call, il ne se passera rien. Aucun message d'erreur de n'affichera.

Vous devez placer la fonction on_call dans le script de la pièce (bouton “Edit Script” dans le paneau de réglages de la pièce), de la même façon que vous le faîtes pour dialog_request dans le script global :
function on_call (int valeur) {
  if (valeur == 1) {
    // Vérification texte entré
    if (Parser.Said("prendre Pomme"))
      Display("Non, ne touchons pas à l'arbre.");
  }
}

La fonction on_call n'est pas appelée immédiatement, la machine suit plutôt son cours, et exécutera probablement le code à la prochaine séquence d'exécution, donc vous ne pouvez pas vous servir de cette fonction pour définir immédiatement des valeurs.

Une fois que la fonction on_call a été exécutée (ou non s'il n'en existe pas), la variable game.roomscript_finished vaudra 1, vous pourrez donc la tester dans votre script repeatedly_execute si vous devez faire autre chose à la suite.

Voir Aussi : L'analyseur de texte


ChangeTranslation

static bool Game.ChangeTranslation(string nomNouvelleTraduction)
Change la traduction en cours pour nomNouvelleTraduction . Cela doit représenter le nom du fichier sans l'extension, par exemple “Francais” ou “Espanol”. Ce peut aussi être une chaîne vide, auquel cas la traduction en cours sera annulée, et le jeu retournera dans sa langue par défaut.

Retourne true si la traduction a été correctement modifiée, ou false s'il y a eu un problème (par exemple, vous avez spécifié une traduction inexistante).

NOTE : Ceci est une fonction statique, vous devez donc taper Game. devant elle. Voyez l'exemple suivant.

Exemple :
if (Game.ChangeTranslation("Espanol") == true)
{
  Display("La traduction est maintenant espagnole !");
}
else
{
  Display("Impossible de changer la traduction");
}

tentera de permutter la traduction vers l'espagnol.

Compatibilité : Supporté par AGS 3.1.0 et les versions plus récentes.

Voir aussi : Game.TranslationFilename, IsTranslationAvailable


ClaimEvent

ClaimEvent()
Cette commande s'utilise dans les fonctions on_key_press et on_mouse_click des scripts de pièce ou de module , et empêche AGS de les appeler ensuite depuis le script global.

Par exemple, si le script de votre pièce réagit lorsque le joueur appuie sur la barre espace, et que vous ne voulez pas que le on_key_press du script global réagisse, alors utilisez cette commande.

Ceci est utile si vous faire par exemple un mini-jeu dans la pièce, et que vous voulez utiliser des touches qui ont ordinairement une autre fonction.

L'ordre normal dans lequel les scripts sont appelés pour on_key_press et on_mouse_click est le suivant :
Script de la pièce
Script des modules (dans l'ordre des modules)
Script global

Si l'un de ces scripts appelle ClaimEvent, alors la chaîne rompra à ce point.

Exemple :

if (keycode == ' ') {
  Display("Vous avez appuyé sur la barre espace dans cette pièce !");
  ClaimEvent();
}

empêche les on_key_press du script global et des éventuels modules d'être exécutés si le joueur appuie sur la barre espace.

Voir Aussi : Fonctions prédéfinies du script global


Debug

Debug (int command, int data)
Cette fonction gère tous les services de debug du moteur. Exécute différentes tâches, selon la valeur du paramètre COMMAND. Si le debug mode est désactivé, alors cette fonction n'a pas d'effet. Cet aspect vous permet de distribuer votre jeu sans toucher à votre script, il vous suffit juste de désactiver le debug mod dans l'Editeur AGS.

Le paramètre DATA dépend de command - passez 0 s'il n'est pas utile. Toutes les valeurs possibles pour le paramètre COMMAND sont listées ici, avec leur description :
0   Tout l'inventaire - Donne au personnage joueur un élément de chaque
objet de l'inventaire. Ceci est pratique pour tester, lorsque vous
avez besoin de ramasser un objet chaque fois que vous testez une partie
du jeu où celui-ci est nécessaire.
1   Affiche la version de l'interpréteur - la machine affichera son numéro
de version et sa date de création.
2   Zones de déplacement - colore les parties de l'écran où le joueur peut
se rendre depuis sa position actuelle. Ceci est utile si vous pensez que
le path-finder ne fonctionne pas correctement. Toutes les zones de déplacement
(//Walkable Areas//) sont peintes dans leurs couleurs respectives, sauf la partie
correspondant à la surface occupée par le personnage (sous ses pieds).
3   Téléportation - affiche une boîte de dialogue vous demandant dans quelle
pièce vous voulez vous rendre, et appelle ensuite ChangeRoom pour vous y
emmener. Utile pour passer des parties du jeu ou aller à un point spécifique
pour tester quelque chose.
4   Afficher FPS - active/désactive l'affichage du nombre d' images par seconde
à l'écran. Donnez la valeur 1 à DATA pour l'afficher, 0 pour l'effacer.

Voir Aussi : Options de débogage


DeleteSaveSlot

DeleteSaveSlot (int slot)
Supprime la sauvegarde contenue dans l'emplacement numéro SLOT.

NOTE : Si vous spécifiez un des emplacements standards (1 à 50), alors AGS réarrangera les autres sauvegardes de façon à former une suite d'emplacements complète. Vous devrez rafraîchir toute liste de sauvegardes après avoir appelé cette fonction.

Exemple :
DeleteSaveSlot (130);

supprime l'emplacement de sauvegarde 130 (qui aura été sauvé au préalable).

Voir Aussi : RestoreGameSlot, SaveGameSlot


DisableInterface

DisableInterface ()
Désactive l'interface du joueur. Ceci fonctionne de la même façon que lorsqu'une animation la désactive : le mode du curseur est celui d'attente, et les clics de la souris ne seront pas envoyés à la fonction “on_mouse_click”. Les boutons de GUI seront également désactivés.

NOTE : AGS retient le nombre de fois que DisableInterface est appelée. Chaque appel de DisableInterface doit être suivi d'un EnableInterface plus loin dans le jeu, sinon le joueur ne pourra plus accéder à l'interface.

Exemple :
DisableInterface();

désactivera l'interface du joueur.

Voir Aussi : EnableInterface, IsInterfaceEnabled


DoOnceOnly

static bool Game.DoOnceOnly(const string token)
Cette fonction vous fournit un moyen facile de n'exécuter du code que la première fois que le joueur le déclenche. C'est fréquemment utilisé pour gérer l'obtention de points.

Le paramètre token est une chaîne arbitraire. Vous pouvez passer ce que vous voulez, mais ELLE DOIT ETRE UNIQUE . Cela représente la chaîne qui permet à AGS de déterminer si la section de code a déjà été exécutée ou non, ainsi vous devriez vous assuer de ne pas utiliser la même chaîne token à deux endroits différentes dans votre jeu .

Retourne true la première fois qu'elle est appelée avec ce token, et false ensuite.

NOTE : Ceci est une fonction statique, et doit donc être précédée de Game. , voir l'exemple suivant.

Exemple :
if (Game.DoOnceOnly("ouvrir armoire")) {
  GiveScore(5);
}

donnera 5 points au joueur la première fois que ce code est exécuté.

Voir aussi : GiveScore


EnableInterface

EnableInterface ()
Réactive l'interface du joueur, qui avait été au préalable désactivée par la fonction DisableInterface. Chaque élément désactivé par cette fonction retourne à la normale.

Exemple :
EnableInterface();

réactivera l'interface du joueur.

Voir Aussi : DisableInterface, IsInterfaceEnabled


EndCutscene

EndCutscene()
Marque la fin d'une cutscene (cinématique). Si le joueur passe la cutscene, le jeu reprendra à partir de ce point. Cette fonction retourne 0 si le joueur a regardé la cutscene et 1 s'il l'a passée.

Voir Aussi : StartCutscene


GetColorFromRGB

(Anciennement RawSetColorRGB, désormais obsolète)

static int Game.GetColorFromRGB(int rouge, int vert, int bleu)

Récupère le Nombre de Couleur AGS (AGS Colour Number) pour la couleur RGB spécifiée. Les composants rouge, vert et bleu sont des valeurs de 0 à 255. Cette fonction vous donne durant l'exécution un équivalent du Colour Finder (Chercheur de Couleur) de l'éditeur.

Cette commande est lente dan les jeux 256 couleurs, puisque la palette doit être scannée afin de trouver la couleur la plus proche.

NOTE : Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = Game.GetColorFromRGB(0, 255, 0);
surface.DrawLine(0, 0, 50, 50);
surface.Release();

dessinera une ligne vert brillante sur l'arrière-plan de la pièce.

Voir aussi : DrawingSurface.DrawingColor


GetFrameCountForLoop

(Anciennement compris dans GetGameParameter, désormais obsolète)

static int Game.GetFrameCountForLoop(int vue, int sequence)

Retourne le nombre d'images dans la séquence spécifiée de la vue spécifiée.

NOTE : Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

int nombreImages = Game.GetFrameCountForLoop(NAGE, 2);
Display("La deuxième séquence dans la vue NAGE possède %d images.", nombreImages);

Voir aussi : Game.GetLoopCountForView, Game.GetRunNextSettingForLoop, Game.GetViewFrame


GetGameOption

GetGameOption (option)
Retourne le réglage actuel d'une option du jeu, initialement définie dans le paneau de régalages généraux (Game Settings) de l'éditeur AGS.

OPTION détermine quelle option doit être considérée, et sa valeur est retournée.

Les valeurs possibles pour OPTION sont listées à SetGameOption.

Exemple :
if (GetGameOption (OPT_ANTIGLIDE) == 1) {
Display("Le mode anti-glide est activé !");
}

vérifiera si l'option angi-glide est activée (retourne 1), auquel cas le message sera affiché, ou non (retourne 0). Voir Aussi : SetGameOption




GetGameParameter

La fonction GetGameParameter est désormais obsolète.

Elle a été remplacée par les fonctions et propriétés suivantes :

Game.SpriteWidth (anciennement GP_SPRITEWIDTH)

Game.SpriteHeight (anciennement GP_SPRITEHEIGHT)

Game.GetLoopCountForView (anciennement GP_NUMLOOPS)

Game.GetFrameCountForLoop (anciennement GP_NUMFRAMES)

Game.GetRunNextSettingForLoop (anciennement GP_ISRUNNEXTLOOP)

Game.GetViewFrame (anciennement GP_FRAMExxx, GP_ISFRAMEFLIPPED)

Game.GUICount (anciennement GP_NUMGUIS)

Room.ObjectCount (anciennement GP_NUMOBJECTS)

Game.CharacterCount (anciennement GP_NUMCHARACTERS)

Game.InventoryItemCount(anciennement GP_NUMINVITEMS)


GetGameSpeed

GetGameSpeed ()
Retourne la vitesse actuelle du jeu (nombre de cycles par seconde).

Exemple :
if (GetGameSpeed() &gt; 40) {
SetGameSpeed(40);
}

gardera toujours la vitesse du jeu à 40 cycles par seconde (au cas où l'utilisateur l'a augmentée).

Voir Aussi : SetGameSpeed


GetGlobalInt

GetGlobalInt (int index)
Retourne la valeur de la variable globale entière numéro INDEX.

NOTE : Les GlobalInts sont désormais considérées comme obsolètes. Utilisez plutôt les variables globales, qui vous permettent de nommer vos variables.

Exemple :
if (GetGlobalInt(20) == 1) {
  // le code ici
}

exécutera le code seulement si la variable globale entière 20 vaut 1.

Voir aussi : SetGlobalInt, Game.GlobalStrings




GetGraphicalVariable

GetGraphicalVariable (string nom_variable);
Retourne la valeur de la variable NOM_VARIABLE de l'éditeur d'interaction. Ceci vous permet d'accéder aux valeurs que vous avez données aux variables propres à l'éditeur d'interaction. (Games - Set variable value)

NOTE : Cette commande est désormais obsolète, et n'est proposée que par soucis de compatibilité avec AGS 2.x. Lorsque vous écrivez de nouveaux codes, utilisez plutôt les variables globales.

Exemple :
if (GetGraphicalVariable("rocher enlevé")==1)
{ code ici }

n'exécutera le code que si la variable d'interaction “rocher enlevé” vaut 1.

Voir Aussi : GetGlobalInt, SetGraphicalVariable


GetLocationName

(Anciennement fonction globale GetLocationName, désormais obsolète)

static String Game.GetLocationName(int x, int y)

Retourne le nom de ce qui se trouve à l'écran aux coordonnées (X,Y). Ceci vous permet de créer une ligne de statut “Regarder xxx” à la Lucasarts lorsque le joueur déplace le curseur sur un élément.

NOTE : Contrairement à ProcessClick, cette fonction considère ce que le joueur voit à l'écran - ainsi, si les cooronnées correspondent à un GUI, une ligne vide est retournée.

NOTE : Les coordonnées sont celles de l'ECRAN, et PAS de la PIECE. Cela signifie que dans une pièce plus large que l'écran, les coordonnées que vous passez sont relatives à la position actuelle de l'écran, et NON sur les coordonnées de la pièce. Cette fonction serait donc à utiliser avec les variables de la position du curseur de la souris.

Exemple :

String alecran = Game.GetLocationName(mouse.x, mouse.y);

retournera le nom de tout ce que la souris survole dans une variable string.

Voir Aussi : Hotspot.Name, InventoryItem.Name, GetLocationType, Object.Name


GetLocationType

GetLocationType(int x, int y)
Retourne le type de l'élément qui se trouve aux coordonnées (X,Y) ; si c'est un personnage, un objet, un hotspot ou rien de tout cela. Ceci peut être utile si vous voulez gérer différemment les clics en fonction de ce sur quoi le joueur clique.

NOTE : Les coordonnées sont celles de l'écran, PAS de la pièce. Voyez la description de GetLocationName pour plus d'informations.

La valeur retournée peut être :
eLocationNothing    rien, un GUI ou l'inventaire
eLocationHotspot    un hotspot
eLocationCharacter  un personnage
eLocationObject     un objet

Exemple :

if (GetLocationType(mouse.x,mouse.y) == eLocationCharacter)
mouse.Mode = eModeTalk;

utilisera le mode dialogue pour le curseur si celui-ci est sur un personnage.

Voir Aussi : Hotspot.GetAtScreenXY, Game.GetLocationName, Object.GetAtScreenXY


GetLoopCountForView

(Anciennement compris dans GetGameParameter, désormais obsolète)

static int Game.GetLoopCountForView(int vue)

Retourne le nombre de séquences dans la vue spécifiée.

NOTE: Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

int sequences = Game.GetLoopCountForView(NAGE);
Display("La vue NAGE (vue %d) possède %d séquences.", NAGE, sequences);

Voir aussi : Game.GetRunNextSettingForLoop, Game.GetFrameCountForLoop, Game.GetViewFrame


GetRunNextSettingForLoop

(Anciennement compris dans GetGameParameter, désormais obsolète)

static bool Game.GetRunNextSettingForLoop(int view, int loop)

Retourne si la séquence spécifiée dans la vue spécifiée a l'option “Run the next loop after this one” (Lancer la prochaine séquence après celle-ci) de cochée.

NOTE : Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

if (Game.GetRunNextSettingForLoop(NAGE, 5) == true) {
  Display("La séquence 5 de la vue NAGE lancera la prochaine séquence.");
}
else {
  Display("La séquence 5 de la vue NAGE ne lancera pas la prochaine séquence.");
}

Voir aussi : Game.GetLoopCountForView, Game.GetFrameCountForLoop, Game.GetViewFrame


GetSaveSlotDescription

(Anciennement fonction globale GetSaveSlotDescription, désormais obsolète)

static String Game.GetSaveSlotDescription(int slot)

Retourne le texte de description de l'emplacement de sauvegarde numéro SLOT.

Si l'emplacement correspondant à ce numéro n'existe pas, retourne null.

Exemple :

String description = Game.GetSaveSlotDescription(10);

stockera la description de l'emplacement de sauvegarde 10 dans la variable.

Voir Aussi : DynamicSprite.CreateFromSaveGame, RestoreGameSlot, SaveGameSlot


GetTextHeight

GetTextHeight(string texte, FontType font, int largeur)
Calcule la hauteur à l'écran que prendra l'affichage de TEXTE en utilisant la police FONT dans une largeur de LARGEUR pixels.

Ceci vous permet de savoir la taille qu'un message affiché avec une commande comme DrawMessageWrapped occupera. LARGEUR est la largeur de la zone dans laquelle le texte sera affiché.

La hauteur est retournée dans la résolution normale de 320 pixels, donc elle peut être utilisée avec des commandes d'affichage à l'écran.

Exemple :
int height = GetTextHeight("Le message sur le GUI !", Game.NormalFont, 100);
gLigneDuBas.SetPosition(0, 200 - height);

déplacera le GUI LIGNEDUBAS de façon à ce qu'il puisse afficher le texte à l'écran.

Voir Aussi : GetTextWidth, DrawingSurface.DrawString




GetTextWidth

GetTextWidth(string texte, FontType font)
Retourne la largeur qu'occupera l'affichage à l'écran de TEXTE dans la police FONT sur une seule ligne.

Ceci peut être utile si vous avez besoin de centrer ou d'aligner à droite du texte, par exemple lorsque vous utilisez des commandes DrawingSurface.

La largeur est retournée dans la résolution normale de 320 pixels, donc elle peut être utilisée avec des commandes d'affichage à l'écran.

Exemple :
DrawingSurface *surface = Room.GetDrawingSurfaceForBackground();
surface.DrawingColor = 14;
int width = GetTextWidth("Salut !", Game.NormalFont);
surface.DrawString(160 - (width / 2), 100, Game.NormalFont, "Salut !");
surface.Release();

affichera “Salut !” au milieu de l'arrière-plan de la scène.

Voir Aussi : GetTextHeight, DrawingSurface.DrawString


GetTranslation

GetTranslation (string original)
Retourne la traduction du texte contenu dans la string. Normalement, vous n'aurez pas besoin de cette fonction puisque le jeu traduit la plupart des choses pour vous. Cependant, si vous utilisez une InputBox ou une autre forme d'input, et que vous voulez comparer ce que l'utilisateur a entré à une string particulière, la traduction ne sera pas automatique. Donc, vous devriez procéder ainsi :

Exemple :
String buffer = Game.InputBox("Entrez le mot de passe :");
if (buffer.CompareTo(GetTranslation("secret")) == 0) {
// correspond à la traduction actuelle de "secret"
}

S'il n'y a pas de traduction pour la string spécifiée, elle se trouvera inchangée, cette fonction est donc sans danger.

Voir Aussi : IsTranslationAvailable


GetViewFrame

(Anciennement compris dans GetGameParameter, désormais obsolète)

static ViewFrame* Game.GetViewFrame(int vue, int sequence, int image)

Retourne une variable ViewFrame pour l'image spécifiée dans la séquence et la vue spécifiées.

Cette variable vous permettra d'obtenir des propriétés sur l'image elle-même, comme son numéro d'image, le son qui lui est associée ou autres.

NOTE: Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

ViewFrame *image = Game.GetViewFrame(NAGE, 2, 3);
Display("L'image numéro 3 de la séquence 2 de la vue NAGE a pour numéro de sprite %d", image.Graphic);

Voir aussi : Game.GetLoopCountForView, Game.GetRunNextSettingForLoop, Game.GetFrameCountForLoop, ViewFrame.Graphic, ViewFrame.Speed


GiveScore

GiveScore (int score)
Définit le SCORE du joueur. Préférez cette méthode à une modification directe du paramètre, puisqu'elle jouera le son associé à un changement de score, mettra à jour toute ligne de statut l'affichant et appellera la fonction on_event en passant le paramètre GOT_SCORE.

SCORE peut être une valeur négative, auquel cas le son associé au changement de score N'est PAS joué.

Exemple :
GiveScore(5);

définira le score du joueur à 5 points.

Voir aussi : Game.DoOnceOnly


InputBox

(Anciennement fonction globale InputBox, désormais obsolète)

static String Game.InputBox(string prompt)

Affiche une fenêtre demandant à l'utilisateur de taper du texte, utilisant PROMPT comme texte pour la fenêtre. Tout ce que l'utilisateur entrera sera retourné par cette fonction.

Cette commande affiche une fenêtre input très basique, utile principalement pour débuguer. La fenêtre étant assez petite, seules de courts textes d'environ 20 caractères pourront être entrés.

La façon recommandée pour récupérer ce que l'utilisateur entre est de créer votre propre GUI avec une boîte de texte, ce qui vous permet de personnaliser entièrement l'aspet de la fenêtre.

TIP : Si vous ajoutez un caractère '!' au début de PROMPT, alors un bouton Annuler (Cancel) sera disponible dans la fenêtre d'input. Si le joueur appuie sur ce bouton Annuler (ou sur la touche Echap), une ligne vide sera retournée.

Exemple :

String nom = Game.InputBox("!Quel est votre nom ?");

demandera son nom à l'utilisateur et le stockera dans la string NOM. S'il appuie sur Annuler, la string NOM sera vide.

Voir Aussi : String.AsInt


InventoryScreen

InventoryScreen ()
Cette commande est obsolète.

Cette commande était utilisée pour afficher une fenêtre d'inventaire par défaut dans les précédentes versions d'AGS, mais n'est désormais plus supportée.

Plutôt qu'utiliser cette commande, vous devez créer votre propre Inventaire de GUI. Le modèle de jeu par défaut en offre un exemple.


IsGamePaused

IsGamePaused ()
Retourne 1 si le jeu est actuellement en pause, sinon 0. Le jeu est en pause lorsque la barre d'icônes est affiché, ou qu'une interface “script-only” a été affichée à l'aide de GUI.Visible=true. Lorsque le jeu est en pause, aucune animation ou autre changement ne peut intervenir.

Exemple :
if (IsGamePaused() == 1) UnPauseGame();

reprendra le jeu s'il était en pause.

Voir Aussi : GUI.Visible


IsInterfaceEnabled

IsInterfaceEnabled()
Retourne 1 si l'interface du joueur est actuellement disponible, sinon 0. L'interface de l'utilisateur est désactivée lorsque le curseur est en mode d'attente - c'est-à-dire lorsque le personnage est en déplacement bloquant, ou autre action bloquante. (Blocking)

Exemple :
if (IsInterfaceEnabled())
DisableInterface();

désactivera l'interface d'utilisateur si elle était activée.

Voir Aussi : DisableInterface, EnableInterface


IsInteractionAvailable

IsInteractionAvailable (int x, int y, int mode)
Vérifie si une interaction serait déclenchée lors d'un clic à l'écran aux coordonnées (X,Y) avec un mode de curseur MODE.

Cette fonction est très similaire à ProcessClick, excepté qu'au lieu de traiter des interactions elles-mêmes, elle retourne simplement 1 si quelque chose se produisait, ou 0 si unhandled_event était appelée.

Ceci est utile pour activer des options dans un GUI basé sur des verbes, par exemple.

Exemple :
if (IsInteractionAvailable(mouse.x,mouse.y, eModeLookat) == 0)
Display("Regarder ici n'aurait aucun effet.");

Voir Aussi : InventoryItem.IsInteractionAvailable, ProcessClick


IsKeyPressed

IsKeyPressed (int numerotouche)
Vérifie si la touche du clavier spécifiée est actuellement pressée ou non. Vous pouvez utiliser ceci pour déplacer un objet lorsque le joueur appuie sur la flèche de bas, par exemple.

NUMERCOTOUCHE est une des valeurs ASCII, respectant certaines limites : puisque la fonction vérifie la pression ou non de la touche, vous NE POUVEZ PAS passer des valeurs correspondant à Ctrl+(A-Z) ou Alt+(A-Z) (puisque ce sont des combinaisons de touches). Vous pouvez, cependant, utiliser des valeurs particulières listées au bas de la page dédiée.

Retourne 1 si la touche est actuellement pressée, sinon 0

NOTE : Le clavier numérique a des valeurs variables entre IsKeyPressed et on_key_press. Avec IsKeyPressed, le clavier numérique utilise toujours des valeurs entre 370 et 381. on_key_press, cependant, considère des valeurs différentes si Verr Num (Num Lock) est activé puisque les touches pressées sont interprétées comme les touches de chiffres plutôt que comme les touches de flèches.

Exemple :
if (IsKeyPressed(372) == 1)
cEgo.Walk(character[EGO].x, character[EGO].y+3);

déplacera le personnage EGO de 3 pixels vers le haut lorsque la touche haut sera pressée.

Voir Aussi : Mouse.IsButtonDown


IsTimerExpired

bool IsTimerExpired (int id_timer)
Vérifie si le timer ID_TIMER est dépassé. Si le délai défini par SetTimer est expiré, retourne true . Sinon, retourne false .

Notez que cette fonction ne retournera true qu'une seule fois - après cela, le statut du timer passe à OFF ce qui fait qu'il retournera toujours false jusqu'à ce qu'il soit redémarré.

Exemple : (dans repeatedly_execute)
if (IsTimerExpired(1)) {
  Display("Timer 1 expiré");
}

affichera un message lorsque le timer 1 aura expiré et seulement une fois.

Voir Aussi : SetTimer


IsTranslationAvailable

IsTranslationAvailable ()
Informe si le joueur utilise une traduction du jeu ou non.

Retourne 1 si une traduction est utilisée, sinon 0.

Voir Aussi : GetTranslation, Game.TranslationFilename


MoveCharacterToHotspot

Cette fonction est désormais obsolète. Utilisez Character.Walk à la place.

MoveCharacterToHotspot (CHARID, int hotspot)

Déplace le personnage CHARID depuis sa position actuelle jusqu'à l'endroit “walk-to” du hotspot spécifié. Si le hotspot n'a pas d'endroit “walk-to”, rien n'arrivera.

Ceci est un appel bloquant (blocking) - le contrôle n'est rendu au script qu'une fois que le personnage a atteint sa destination.

Exemple :

MoveCharacterToHotspot(EGO,6);

déplacera le personnage EGO jusqu'au point “walk-to” du hotspot numéro 6.

Voir Aussi : Hotspot.WalkToX, Hotspot.WalkToY, Character.Walk, MoveCharacterToObject


MoveCharacterToObject

Cette fonction est désormais obsolète. Utilisez Character.Walk à la place.

MoveCharacterToObject (CHARID, int objet)

Déplace le personnage CHARID depuis sa position actuelle jusqu'à l'objet OBJET. Ceci est utile si par exemple vous voulez que le personnage ramasse un objet. Ceci est un appel bloquant (blocking) - le contrôle n'est rendu au script qu'une fois que le personnage a atteint sa destination.

Exemple :

MoveCharacterToObject (EGO, 0);
object[0].Visible = false;

Déplacera le personnage EGO jusqu'à l'objet numéro 0, puis effacera l'objet 0.

Voir Aussi : Character.Walk, MoveCharacterToHotspot




PauseGame

PauseGame ()
Stoppe le processus de la machine, les animations et déplacements du personnage, et tout autre aspect. Ceci a le même effet sur le jeu que lorsqu'une interface script-only s'affiche. Le processus ne reprendra que lorsque la fonction UnPauseGame sera appelée.

NOTE : Lorsque le jeu est en pause, les cycles de jeu continuent à tourner mais aucune animation ni mouvement n'est effectuée. Ainsi, tous les timers ou toute commande Wait() que vous avez lancés continueront à s'exécuter normalement. Exemple :
if (IsKeyPressed(32)==1) PauseGame();

mettra le jeu en pause si le joueur appuie sur la barre d'espace.

Voir Aussi : UnPauseGame


ProcessClick

ProcessClick (int x, int y, CursorMode)
Simule un clic de la souris aux coordonnées (X,Y) de l'écran, dans le mode de curseur spécifié. Toute conséquence prévue sera exécutée. Par exemple,
ProcessClick (100, 50, eModeLook);

simulera un clic de la souris aux coordonnées (100,50) dans le mode Regarder.

NOTE : Cette fonction ignore les interfaces qui se trouvent au point spécifié. C'est-à-dire qu si aux coordonnées que vous avez passées se trouve un bouton d'interface, le jeu se comportera comme si on avait cliqué sous l’interface, à l'écran.

Les modes de curseur disponibles sont ceux définis dans la partie Curseurs de l'éditeur (précédés de eMode). En général, ce sont eModeWalkto, eModeLook, etc.

Exemple :

ProcessClick(mouse.x,mouse.y, eModeLookat);

simulera un clic dans mode de curseur “Regarder” à l'endroit où le curseur se trouve.

Voir Aussi : IsInteractionAvailable, Hotspot.RunInteraction, GUI.ProcessClick, Room.ProcessClick


QuitGame

QuitGame(int prevenir)
Quitte le jeu et retourne au système d'exploitation (OS).

Si PREVENIR vaut 0, cela quittera immédiatement. Si PREVENIR ne vaut pas 0, cela affichera une fenêtre de message demandant à l'utilisateur s'il est sûr de vouloir quitter.

Exemple :
QuitGame(0);

quittera le jeu sans demander au joueur de confirmer.

Voir Aussi : AbortGame


Random

Random (int max)
Retourne un nombre aléatoire entre 0 et MAX. Ceci peut être utile pour divers effets dans votre jeu.

NOTE : L'intervalle de retour est inclusif - c'est-à-dire que si vous appelez Random(3); alors la valeur de retour peut être 0, 1, 2 ou 3.

Exemple :
int alea=Random(2);
if (alea==0) cEgo.ChangeRoom(1);
else if (alea==1) cEgo.ChangeRoom(2);
else cEgo.ChangeRoom(3);

Changera la pièce actuelle pour la pièce 1, 2 ou 3 selon le résultat aléatoire.


RestartGame

RestartGame ()
Redémarre le jeu depuis le début.

Exemple :
if (IsKeyPressed(365) == 1) RestartGame(); 

redémarrera le jeu si le joueur appuie sur la touche F7.

Voir aussi : SetRestartPoint


RestoreGameDialog

RestoreGameDialog ()
Affiche le dialogue de chargement de jeu, où le joueur peut sélectionner une partie précédemment sauvegardée pour la restaurer.

Le dialogue n'est pas affiché immédiatement, il s'affichera en fait une fois que le script a fini son exécution.

Exemple :

if (IsKeyPressed(363) == 1) RestoreGameDialog();

affichera le dialogue de chargement si le joueur appuie sur la touche F5.

Voir Aussi : RestoreGameSlot, SaveGameDialog


RestoreGameSlot

RestoreGameSlot (int slot)
Charge la position de la partie sauvegardée dans l'emplacement numéro SLOT. Vous voudrez utiliser ces fonctions si par exemple vous voulez que le joueur n'utilise qu'une seule partie sauvegardée plutôt que les 50 habituelles. Si l'emplacement correspondant au numéro est vide, un message d'erreur avertira le joueur mais le jeu continuera. Pour éviter toute erreur, utilisez la fonction GetSlaveSlotDescription pour voir si l'emplacement contient une partie avant de la charger.

NOTE : La partie ne sera pas chargée immédiatement mais seulement lorsque le script aura terminé exécution.

Exemple :
RestoreGameSlot(30);

chargera la partie de l'emplacement 30 si celui-ci n'est pas vide.

Voir Aussi : Game.GetSaveSlotDescription, RestoreGameDialog, SaveGameSlot


RunAGSGame

RunAGSGame (string nomfichier, int mode, int data)
Quitte la partie actuelle, et lance NOMFICHIER à la place. NOMFICHIER doit être un jeu AGS exécutable ou un fichier AC2GAME.AGS, et doit se trouver dans le répertoire courant.

MODE définit la façon dont vous voulez lancer le jeu. Pour le moment les valeurs peuvent être :
0   La partie actuelle est totalement quittée, et le nouveau jeu est exécuté comme s'il avait
été lancé séparemment.
1   Les valeurs GlobalInt sont conservées, ne sont pas remises à 0 pour le nouveau jeu.

DATA vous permet de passer un entier au nouveau jeu. La valeur que vous passez ici sera accessible par le jeu chargé à l'aide de la variable game.previous_game_data .

Les emplacements de sauvegarde seront partagés par les deux jeux, et si vous chargez une partie sauvegardée dans l'autre jeu, elle sera automatiquement chargée.

Gardez à l'esprit que puisque les jeux doivent être dans le même dossier, il partageront aussi les fichiers music.vox, speech.vox et autres. C'est une limite d'utilisation pour cette commande.

NOTE : Le jeu que vous exécutez sera lancé dans la même résolution et profondeur des couleurs que le jeu actuel ; si vous ne considérez pas la profondeur des couleurs, de mauvaises surprises pourraient se présenter.

NOTE: Assurez-vous que le jeu que vous voulez lancer a un nom de fichier de 8 caractères ou moins, ou cette commande échouera dans la machine DOS.

NOTE: Le jeu que vous voulez lancer doit avoir été créé avec la même version d'AGS que celui à partir duquel il est lancé. (version 2.xy - X doit être le même pour les deux jeux).

Exemple :

RunAGSGame ("MonJeu.exe", 0, 51);

lancera le jeu MonJeu, en lui passant la valeur 51.


SaveGameDialog

SaveGameDialog ()
Affiche le dialogue de sauvegarde, où le joueur peut sauvegarder sa progression dans la partie actuelle. S'il choisissent de sauvegarder, alors la position dans le jeu sera sauvée.

NOTE: Le dialogue ne s'affichera pas directement ; il ne sera montré que lorsque le script aura terminé son exécution.

Exemple :
if (keycode == 361) SaveGameDialog();

affichera le dialogue de sauvegarde si le joueur appuie sur la touche F3.

Voir Aussi : RestoreGameDialog, SaveGameSlot


SaveGameSlot

SaveGameSlot (int slot, string description)
Sauvegarde la progression de la partie actuelle dans l'emplacement spécifié par SLOT, en utilisant DESCRIPTION comme texte de description pour la sauvegarde. Soyez prudent en utilisant cette fonction, car vous pourriez écraser une des parties sauvées par le joueur par mégarde.

La fonction SaveGameDialog utilise les emplacements numérotés de 1 à 50, donc si vous ne voulez pas pas interférer avec les sauvegardes du joueur, vous devriez utiliser des emplacements supérieurs à 100.

NOTE : La partie ne sera pas sauvegardée immédiatement ; la fonction attendra que le script ait fini son exécution avant de sauvegarder.

Exemple :
SaveGameSlot(30, "Sauver partie");

sauvera la progression de la partie actuelle dans l'emplacement 30 avec la description “Sauver partie”.

Voir Aussi : DeleteSaveSlot, RestoreGameSlot, SaveGameDialog


SaveScreenShot

SaveScreenShot (string nomfichier)
Prend une capture d'écran et la sauve sur le disque. Le NOMFICHIER doit se terminer par ”.BMP” ou ”.PCX”, qui sont les types de fichiers qui peuvent être sauvés. Retourne 1 si la capture a été correctement sauvée, ou 0 si une extension de fichier invalide a été spécifiée.

NOTE : La capture d'écran sera sauvée dans le dossier de sauvegarde (Saved Game folder).

NOTE : Cette commande peut s'avérer lente si vous utilisez le pilote graphique Direct3D.

Exemple :
String input = Game.InputBox("Entrez le nom du fichier :");
input = input.Append(".pcx");
SaveScreenShot(input);

demandera au joueur un nom de fichier et sauvera la capture d'écran dans le fichier entré par le joueur.

Voir Aussi : DynamicSprite.SaveToFile


SetAmbientTint

SetAmbientTint(int rouge, int vert, int bleu, int saturation, int luminosite)
Teinte tous les objets et personnages à l'écran en (ROUGE, VERT, BLEU) à une saturation de SATURATION pour-cent.

Ceci vous permet d'appliquer une teinte globale à tous les éléments à l'écran. Les paramètres ROUGE, VERT et BLEU vont de 0 à 255, et définissent la couleur de teinte.

Le paramètre SATURATION définit le taux d'application de la teinte, et va de 0 à 100. Une saturation de 100 recolorisera entièrement les sprites dans la couleur spécifiée, et une saturation de 1 leur donnera une teinte très faible dans la couleur spécifiée.

Le paramètre LUMONISITE vous permet d'ajuster la brillante des sprites du même coup. Il va de 0 à 100. Passer 100 dessinera les sprites à une brillance normale. Des nombres inférieurs assombrira les images en conséquence, jusqu'à 0 qui les dessinera entièrement noires.

La teinte appliquée par cette fonction est globale. Pour l'annuler, appeler cette commande une nouvelle fois mais en spécifiant une saturation de 0.

NOTE : Cette fonction marche uniquement avec des jeux hautes-couleurs et des sprites hautes-couleurs.

NOTE : Cette fonction remplace tout niveau de luminosité ou de teinte propre à une région à l'écran.

Exemple :
SetAmbientTint(0, 0, 250, 30, 100);

teintera tout ce qui se trouve à l'écran dans une nuance de bleu.

Voir Aussi : DrawingSurface.DrawImage, Character.Tint, Object.Tint




SetGameOption

SetGameOption (option, int valeur)
Change une des options du jeu, initialement définie dans le paneau des Réglages du Jeu de l'éditeur AGS (Game Settings).

OPTION spécifie quelle option doit être changée, et VALEUR est sa nouvelle valeur. Les valeurs pour OPTIONS peuvent être :

Option Valeurs

OPT_WALKONLOOK Marcher jusqu'au hotspot en mode Regarder (0 ou 1)

OPT_DIALOGOPTIONSGUI Options de dialogue pour GUI (0 = aucune, sinon nom/numéro du GUI)

OPT_ANTIGLIDE Mode Anti-glide (0 ou 1)

OPT_DIALOGOPTIONSGAP Pixels entre les choix des dialogues (0 = aucun, sinon nombre de pixels)

OPT_WHENGUIDISABLED Lorsque le GUI est désactivé, 0 = grisé, 1 = noir, 2 = inchangé, 3 = non-affiché

OPT_ALWAYSSPEECH Toujours affiché le texte comme du discours (0 ou 1)

OPT_PIXELPERFECT Détection des clics au pixel près (0 ou 1)

OPT_NOWALKMODE Ne pas déplacer automatiquement le personnage en mode Marche (0 ou 1)

OPT_FIXEDINVCURSOR Ne pas utiliser les icônes d'inventaire comme curseurs (0 ou 1)

OPT_DONTLOSEINV Ne pas perdre automatiquement les objets de l'inventaire (0 ou 1)

OPT_TURNBEFOREWALK Les personnages tournent avant de commencer à marcher (0 ou 1)

OPT_HANDLEINVCLICKS Gérer les clics sur l'inventaire dans le script (0 ou 1)

OPT_MOUSEWHEEL Activer la gestion de la molette de la souris (0 ou 1)

OPT_DIALOGNUMBERED Numéroter les choix des dialogues (0 ou 1)

OPT_DIALOGUPWARDS Les choix des dialogues surlignent le GUI (0 ou 1)

OPT_CROSSFADEMUSIC Fondre les musiques (0 = non, 1 = lent, 2 = moins lent, 3 = moyen, 4 = rapide)

OPT_ANTIALIASFONTS Rendu anti-alias pour les polices TTF (0 ou 1)

OPT_THOUGHTGUI Penser utilise des bulles GUI (nom/numéro du GUI) Thought uses bubble GUI (GUI name/number)

OPT_TURNWHENFACING Les personnages se tournent en direction (0 ou 1)

OPT_LIPSYNCTEXT Synchronisation des lèvres activée ou non (1 ou 0)

OPT_RIGHTTOLEFT Ecriture du texte de droite à gauche (0 ou 1)

OPT_MULTIPLEINV Possibilité d'afficher plusieurs inventaires (0 ou 1)

OPT_SAVEGAMESCREENSHOTS Sauver les captures d'écran dans les parties sauvegardées (0 ou 1)

OPT_PORTRAITPOSITION Côté du portrait dans les dialogues (0 = gauche, 1 = droite, 2 = alterné, 3 = xpos)



Les réglages du jeu qui ne sont pas listés ici ont soit une commande séparée pour les changer (comme SetSpeechStyle), ou ne peuvent simplement pas être changés lorsque le jeu est lancé (comme Letterbox Mode).

Cette commande retourne l'ancienne valeur du réglage.

Exemple :

SetGameOption (OPT_PIXELPERFECT, 0);

désactivera la détection précise des clics.

Voir Aussi : GetGameOption, SetSpeechStyle, SetTextWindowGUI


SetGameSpeed

SetGameSpeed (int nouvelle_vitesse)
Définit la fréquence maximum d'images par seconde à NOUVELLE_VITESSE images par seconde, ou aussi près que possible de cette vitesse. La fréquence par défaut est de 40 fps, mais vous pouvez accélérer ou ralentir le jeu en utilisant cette fonction. Notez que cette vitesse est aussi la fréquence à laquelle les fonctions Repeatedly_Execute seront déclenchées.

La NOUVELLE_VITESSE doit valoir entre 10 et 1000. Si ce n'est pas le cas, la vitesse sera ajustée à 10 ou 1000. Notez que si vous définissez une vitesse que l'ordinateur de l'utilisateur ne supporte pas (par exemple, un 486 ne pourra pas supporter un fps de 80), alors le jeu ira aussi vite que possible.

NOTE : Puisque le curseur de la souris est rafraîchi à la fréquence du jeu, à de très basses vitesses, comme un fps de 10 à 20, la souris ne semblera pas répondre correctement.

NOTE : Si vous donnez la valeur true à la propriété System.VSync, la vitesse du jeu sera limitée selon le taux de rafraîchissement de l'écran, et vous ne pourrez alors pas la définir à plus de 60-85 (en fonction du taux de rafraîchissemment de l'écran du joueur).

Exemple :
SetGameSpeed(80);

définira la vitesse du jeu à 80.

Voir Aussi : GetGameSpeed


SetGlobalInt

SetGlobalInt (int index, int valeur)
Définit la variable globale INDEX à VALEUR. Vous pouvez récupérer cette valeur depuis d'autres scripts en utilisant GetGlobalInt.

Il y a 500 variables globales disponibles, indexées de 0 à 499.

NOTE : Les variables globales entières (GlobalInts) sont désormais obsolètes. Utilisez plutôt les variables globales à la place, qui vous permettent de nommer vos variables.

Exemple :
SetGlobalInt(10,1);

définira la valeur de la variable globale entière 10 à 1.

Voir Aussi : GetGlobalInt


SetGraphicalVariable

SetGraphicalVariable(string nom_variable, int valeur);
Donnera la valeur VALEUR à la variable d'interaction NOM_VARIABLE. Ceci vous permet de changer les valeurs des variables définies dans la fenêtre d'interaction de l'éditeur.

NOTE : Cette commande est désormais obsolète, et n'est fournie que par soucis de compatibilité avec AGS 2.x. Lorsque vous écrivez de nouveaux codes, utilisez plutôt les variables globales.

Exemple :
SetGraphicalVariable("rocher enlevé", 1);

donnera la valeur 1 à la variable de l'éditeur d'interaction “rocher enlevé”.

Voir Aussi : GetGraphicalVariable


SetMultitaskingMode

SetMultitaskingMode (int mode)
Vous permet de définir ce qui se passera quand l'utilisateur réduira votre jeu.

Si MODE vaut 0 (par défaut), alors si l'utilisateur utilise Alt+Tab sous votre jeu, ou clique sur une autre fenêtre, le jeu sera mis en pause et ne reprendra pas jusqu'à ce qu'il remette le jeu au premier plan.

Si MODE vaut 1, alors le jeu continuera de tourner en arrière-plan si l'utilisateur le réduit (utile si, par exemple, vous créez juste une sorte de lecteur de musiques avec AGS).

Notez que le mode 1 ne fonctionne pas avec certaines cartes graphiques en mode plein écran, vous ne devriez donc considérer que ceci ne fonctionne que lorsque votre jeu tourne en mode fenêtre.

Plateformes qui supportent le multitâche

Windows: Oui MS-DOS: Non Linux: Oui MacOS: Oui

Exemple :

SetMultitaskingMode (1);

signifiera que le jeu devra continuer à tourner en arrière-plan.


SetRestartPoint

SetRestartPoint ()
Change le point de départ du jeu pour la position actuelle. Cela signifie qu'à partir de ce moment-là, si le joueur choisit de redémarrer le jeu, il recommencera à partir d'ici.

Cette fonction est utile si le point de départ par défaut ne fonctionne pas correctement dans votre jeu - utilisez cette fonction seulement pour le déplacer.

NOTE : Le point de départ ne peut pas être redéfini lorsqu'un script est en exécution – ainsi, lorsque vous appelez cette fonction, le point ne sera véritablement redéfini que lors du prochain cycle qui ne présente pas de script bloquant en arrière-plan.

Voir aussi : RestartGame


SetSaveGameDirectory

static bool Game.SetSaveGameDirectory(string repertoire)
Change le répertoire où les fichiers de sauvegarde du jeu sont stockées pour repertoire . Si le dossier spécifié n'existe pas, AGS tentera de le créer.

Vous ne pouvez pas utiliser de chemins de dossier complets avec cette commande (par exemple C:\Jeux\Cool\Sauvegardes), parce que le joueur peut avoir installé votre jeu dans n'importe quel dossier, et qu'il peut ne pas être sous Windows.

Ainsi, seules deux types de chemins sont supportés : 1. Les chemins relatifs (par exemple “Sauvegardes”). Ceci créea un dossier “Sauvegardes” dans le dossier du jeu. 2. Le mot-clé spécial $MYDOCS$ qui vous permet de créer un dossier pour les sauvegardes du jeu dans le dossier principal des documents de l'utilisateur. Sur Vista, correspond au dossier “Saved Games” ; sur Windows XP et avant, correspond à “Mes Documents”. Sur Mac et Linux, pointe simplement le dossier du jeu pour le moment.

Retourne true si le répertoire de sauvegarde a correctement été modifié ; false sinon.

NOTE: Il est recommandé de ne pas utiliser cette fonction. A la place, modifiez la propriété “Save games folder name” (”Nom du dossier de sauvegarde”) dans l'onglet General Settings (Réglages généraux) de l'éditeur, qui vous permet à l'Explorateur de Jeu Vista (Vista's Game Explorer) de détecter les sauvegardes de jeu afin d'éviter des problèmes en tentant d'écrire dans le dossier Program Files.

Exemple :
Game.SetSaveGameDirectory("$MYDOCS$/Sauvegardes De Mon Super Jeu");

changera le répertoire de sauvegarde pour “Sauvegardes De Mon Super Jeu” dans Mes Documents, en créant le dossier s'il n'existe pas (peut être pratique dans game_start).

Voir aussi : ListBox.FillSaveGameList, RestoreGameDialog


SetTextWindowGUI

SetTextWindowGUI (int gui)
Change le GUI utilisé comme fenêtre de texte pour le GUI spécifié. Ceci change le réglage “Fenêtres de texte utilisent GUI” dans l'éditeur.

Vous pouvez passer -1 en numéro de GUI pour réutiliser la fenêtre par défaut.

Exemple :
SetTextWindowGUI (4);

utilisera le GUI 4 pour afficher les fenêtres de texte à l'avenir.


SetTimer

SetTimer (int id_timer, int delai)
Lance le timer ID_TIMER - sera décompté à chaque cycle du jeu (normalement 40 fois par seconde), jusqu'à la fin du DELAI (en nombre de cycles de jeu), après quoi il sera arrêté. Vous pouvez vérifier si le timer est expiré en appelant la fonction IsTimerExpired.

Donnez la valeur 0 à DELAI pour désactiver le timer qui tourne actuellement.

Il y a 20 timers disponibles, ID_TIMER allant de 1 à 20.

Exemple :
SetTimer(1,1000); 

dira au timer 1 d'expirer après 1000 cycles de jeu.

Voir Aussi : IsTimerExpired


SkipUntilCharacterStops

SkipUntilCharacterStops(CHARID)
En jeu, saute la séquence de déplacement du personnage spécifié, et un script bloquant est alors exécuté, ou une boîte de message affichée.

Cette commande permet de reproduire la fonctionnalité dans les jeux comme The Longest Journey, où le joueur peut appuyer sur Echap pour que le personnage arrive directement à destination. Cela sert comme option manuelle, pour vous permettre de donner une vitesse de déplacement relativement lente au personnage principal, sans que le joueur s'impatiente pour autant en attendant que le personnage aille d'un point A à un point B.

Si le personnage spécifié n'est pas en déplacement lorsque cette fonction est appelée, rien ne se passe.

Exemple : (dans on_key_press)
if (keycode == 27) SkipUntilCharacterStops(EGO);

Ceci signifie que si le joueur appuie sur Echap, le jeu sautera le déplacement du personnage EGO pour reprendre ensuite, ou sera interrompu par une commande Display ou encore par une cutscene (cinématique) bloquante.

Voir Aussi : StartCutscene




StartCutscene

StartCutscene(CutsceneSkipType)
Marque le début d'une cutscene (cinématique). Une fois que le script a passé ce point, le joueur peut choisir de passer cette partie en appuyant sur une touche ou sur le bouton de la souris. Ceci est utile pour des choses comme des séquences d'introductions, que vous voulez que le joueur puisse passer puisqu'il les aura déjà vues.

CutsceneSkipType détermine comment la cutscene peut être passée :
eSkipESCOnly
seulement en appuyant sur Echap
eSkipAnyKey
en appuyant sur n'importe quelle touche
eSkipMouseClick
en cliquant sur le bouton de la souris
eSkipAnyKeyOrMouseClick
en appuyant soit sur une touche, soit sur le bouton de la souris
eSkipESCOrRightButton
en appuyant sur Echap ou en faisant un clic droit

Vous devez également marqué la fin de la cutscene avec la commande EndCutscene.

Faîtes très attention à l'endroit où vous placez la command EndCutscene correspondante. Le script doit arriver à EndCutscene dans son ordre d'exécution normal pour que le saut puisse fonctionner - sinon, lorsque le joueur appuyera sur Echap, le jeu pourra planter.

Voir Aussi : EndCutscene, SkipUntilCharacterStops, Game.InSkippableCutscene, Game.SkippingCutscene.


UpdateInventory

UpdateInventory ()
Met à jour l'affichage de l'inventaire à l'écran. Si vous ajoutez ou enlevez un objet d'inventaire manuellement (c'est-à-dire en utilisant le tableau InventoryQuantity plutôt que les fonction AddInventory/LoseInventory), l'affichage ne sera pas automatiquement mis à jour. Dans ce cas appelez cette fonction après avoir opéré vos changements, pour mettre à jour ce qui sera affiché au joueur.

Notez qu'utiliser cette fonction redéfinira l'odre dans lequel les objets sont affichés dans l'inventaire, en celui qui a été créé dans l'éditeur.

Voir Aussi : Character.AddInventory, Character.LoseInventory, Character.InventoryQuantity


UnPauseGame

UnPauseGame ()
Reprend le jeu.

Exemple :
if (IsGamePaused() == 1)
UnPauseGame();

reprendra le jeu s'il était en pause.

Voir Aussi : PauseGame


Wait

Wait (int temps)
Marque une pause dans l'exécution du script et laisse le jeu continuer durant TEMPS cycles de jeu. La norme est de 40 cycles/seconde (à moins que vous ne changiez ce paramètre avec SetGameSpeed), donc utiliser une valeur de 80 aura pour effet dattendre 2 secondes. Notez qu'aucun autre script ne peut être exécuté tant que la fonction Wait agit en fond.

Exemple :
cEgo.Walk(120, 140, eBlock, eWalkableAreas);
Wait(80);
cEgo.FaceLocation(1000,100);

déplacera le personnage EGO aux coordonnées (120,140), attendra qu'il y soit rendu puis attendra 2 secondes (80 cycles) pour enfin le tourner vers la droite.

Voir Aussi : WaitKey, WaitMouseKey


WaitKey

WaitKey (int temps)
Marque une pause dans l'exécution du script et laisse le jeu continuer jusqu'à ce que soit :

(a) TEMPS cycles de jeu se sont écoulés, soit

(b) le joueur appuie sur une touche

Retourne 0 si le temps s'est écoulé, ou 1 si le joueur a interrompu la pause.

Exemple :
WaitKey(200);

marquera une pause dans le script et attendra que 5 secondes soient passées ou bien que le joueur ait pressé une touche pour reprendre.

Voir Aussi : Wait, WaitMouseKey


WaitMouseKey

WaitMouseKey (int temps)
Marque une pause dans l'exécution du script et laisse le jeu continuer jusqu'à ce que soit :

(a) TEMPS cycles de jeu se sont écoulés, soit

(b) le joueur appuie sur une touche, soit

© le joueur clique avec la souris

Retourne 0 si le temps s'est écoulé, ou 1 si le joueur a interrompu la pause.

Exemple :
WaitMouseKey(200);

marquera une pause dans le script et attendra que 5 secondes soient passées ou bien que le joueur ait pressé une touche ou cliqué avec la souris pour reprendre.

Voir Aussi : Wait, WaitKey


CharacterCount

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.CharacterCount

Retourne le nombre de personnages dans le jeu.

Ceci est utile pour les modules de script si vous devez itérer tous les personnages pour une raison quelconque.

Exemple :

Display("Le jeu a %d personnages", Game.CharacterCount);

DialogCount

readonly static int Game.DialogCount
Retourne le nombre de dialogues dans le jeu.

Ceci est utile pour les modules de script si vous devez itérer tous les dialogues pour une raison quelconque. Les dialogues sont numérotés de 0 à DialogCount - 1.

Exemple :
Display("Le jeu a %d dialogues.", Game.DialogCount);

Compatibilité : Supporté par AGS 3.0.2 et les versions plus récentes.


FileName

readonly static String Game.FileName
Retourne le nom de fichier qui a lancé le jeu. Cela correspondra généralement au fichier EXE, mais peut aussi correspondre à “ac2game.dat” si vous exécutez le jeu en utilisant ACWIN.EXE.

Exemple :
Display("Le fichier principal du jeu est : %s", Game.FileName);

affichera le fichier du jeu.

Voir aussi : Game.Name


FontCount

readonly static int Game.FontCount
Retourne le nombre de polices dans le jeu.

Ceci est utile pour les modules de script si vous avez besoin d'itérer toutes les polices pour certaines raisons.

Exemple :
Display("Le jeu a %d polices.", Game.FontCount);

GlobalMessages

(Anciennement fonction globale GetMessageText, désormais obsolète)

readonly static String Game.GlobalMessages[int message]

Retourne le texte du message global spécifié. Le numéro du message est un des numéros de message global, allant de 500 à 999.

Si un numéro de message invalide est entré, null sera retourné. Sinon, le contenu du message sera retourné.

Exemple :

String message = Game.GlobalMessages[997];
Display("Le message global 997 dit : %s", message);

affichera le message global 997.


GlobalStrings

(Anciennement GetGlobalString, désormais obsolète) (Anciennement SetGlobalString, désormais obsolète)

static String Game.GlobalStrings[index]

Retourne/Définit la string globale index. Les strings globales vous permettent de partager aisément des variables strings entre les scripts. Il y a 50 strings globales disponibles, les valeurs de index allant de 0 à 49.

Exemple :

Game.GlobalStrings[15] = "Joe";
Display("La string globale 15 vaut maintenant : %s", Game.GlobalStrings[15]);

donnera la valeur “Joe” à la string globale 15.

Voir Aussi : GetGlobalInt, SetGlobalInt


GUICount

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.GUICount

Retourne le nombre de GUIs dans le jeu.

Ceci est utile pour les modules de script si vous devez itérer tous les GUIs pour certaines raisons. Les GUIs sont numérotés de 0 à GUICount - 1.

Exemple:

Display("Le jeu a %d GUIs.", Game.GUICount);

IgnoreUserInputAfterTextTimeoutMs

int Game.IgnoreUserInputAfterTextTimeoutMs

Retourne/Définit le délai durant lequel les actions du joueurs seront ignorées après l'effacement d'un texte. La valeur est exprimée en millisecondes (1000 = 1 seconde).

Durant ce délai, aucun clic et aucune pression de touche de la part du joueur n'aura d'effet dans le jeu. Cela est particulièrement utile dans la mesure où le joueur peut vouloir cliquer pour effacer le texte affiché à l'écran : si le texte s'est effacé entre-temps mais que le joueur clique tout de même, le clic ne devrait pas être interprété comme une action dans le jeu (comme un déplacement par exemple).

Exemple :

Game.IgnoreUserInputAfterTextTimeoutMs = 250;

Ignorera les clics du joueur un quart de secondes après qu'une ligne de texte aura été effacée.

Compatibilité : Supporté par AGS 3.2.1 et versions ultérieures.


InSkippableCutscene

(Anciennement game.in_cutscene, désormais obsolète)

static bool Game.InSkippableCutscene

Retourne si le jeu est actuellement entre une StartCutscene et une EndCutscene, et ainsi si le joueur est autorisé à passer ou non cette partie du jeu.

Lorsque le joueur choisit de passer une cutscene, tout le code de script est exécuté comme d'habitude, mais toute commande bloquante est exécutée sans les délais habituels des cycles du jeu. Ainsi vous ne devriez normalement jamais avoir à utiliser cette propriété puisque les cutscenes sont toutes censées êtres gérées automatiquement, mais cela peut s'avérer utile dans des modules de script.

NOTE : Ceci est une fonction statique et doit donc être précédée de Game., voir l'exemple suivant.

Exemple :

if (Game.InSkippableCutscene)
{
  Display("Le joueur ne verra peut-être jamais ce message !");
}

affichera un message si nous sommes dans une cutscene.

Compatibilité : Supportée par AGS 3.0.1 et les versions plus récentes.

Voir aussi : StartCutscene, EndCutscene, Game.SkippingCutscene


InventoryItemCount

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.InventoryItemCount

Retourne le nombre d'objets d'inventaires dans le jeu. Ceci correspond au nombre total d'objets que vous avez créé dans l'onglet Inventory Items de l'éditeur, pas au nombre dont le joueur dispose actuellement.

Exemple :

Display("Le jeu a %d objets d'inventaire.", Game.InventoryItemCount);

MinimumTextDisplayTimeMs

static int Game.MinimumTextDisplayTimeMs;

Retourne/Définit la durée minimum d'affichage du texte à l'écran. AGS ajuste automatiquement la durée d'affichage du texte selon la longueur du texte (et vous pouvez personnaliser le calcul en modifiant TextReadingSpeed), mais vous pourriez vouloir un temps minimum d'affichage pour de courtes phrases comme “Salut !”.

Cette propriété est définie en millisecondes (1000 = 1 seconde) et vaut 1000 par défaut.

NOTE : Cette propriété est ignorée si la synchronisation labiale est activée, ou si les Réglages Généraux (General Settings) définissent de ne pas effacer le texte automatiquement.

Exemple :

Game.MinimumTextDisplayTimeMs = 2000;

assurera que même des lignes aussi courtes que “Salut !” restent affichées au moins 2 secondes.

Compatibilité : Supportée par AGS 3.1.2 et versions ultérieures.

Voir aussi : Character.SpeechAnimationDelay, Game.TextReadingSpeed


MouseCursorCount

readonly static int Game.MouseCursorCount
Retourne le nombre de curseurs dans le jeu.

Ceci est utile dans les modules si vous avez besoin d'itérer tous les curseurs pour une raison quelconque.

Exemple:
Display("Le jeu a %d curseurs.", Game.MouseCursorCount);

Name

static String Game.Name
Retourne/définit le nom du jeu. Ceal est initiallement défini dans l'onglet General Settings de l'éditeur, mais vous pouvez le changer durant l'exécution pour changer le titre de la fenêtre de votre jeu.

Exemple :
Display("Le nom du jeu est : %s", Game.Name);

affichera le nom du jeu.

Voir aussi : Game.FileName


NormalFont

(Anciennement global function SetNormalFont, désormais obsolète)

static FontType Game.NormalFont

Retourne/Définit la police utilisée pour tout texte du jeu, sauf les discours. Le numéro de police doit être un numéro présent dans l'onglet Fonts de l'éditeur.

Plus spécifiquement, AGS utilise la police normale pour les choses suivantes :

  • Display (fonction)
  • DisplayTopBar (fonction)
  • le texte des options de dialogue
  • les dialogues par défaut de sauvegarde et de chargement



La police normale vaut 0 par défaut.

Exemple:

Game.NormalFont = eFontSpecial;

changera la police normal pour la police “Special”.

Voir aussi : Game.SpeechFont


SkippingCutscene

(Anciennement game.skipping_cutscene, désormais obsolète)

static bool Game.SkippingCutscene

Vous permet de savoir si le joueur a choisi de passer la cutscene (cinématique) en cours. Cette fonction retourne true si le jeu est entre une commande StartCutscene et une commande EndCutscene et si le joueur a choisi de passer.

Bien que le passage des cinématiques soit géré automatiquement par AGS, vous pouvez utiliser cette propriété pour optimiser le processus en ignorant de longs blocs de code qui ne seront pas exécutés si une cinématique est passée.

NOTE : Ceci est une fonction statique, vous devez donc la faire précéder de Game., voir l'exemple suivant.

Exemple :

if (!Game.SkippingCutscene)
{
  aMusiqueEffrayante.Play();
  Wait(100);
  Game.StopAudio();
}

ne jouera la musique que si le joueur ne passe pas la scène.

Compatibilité : Supporté par AGS 3.0.1 et les versions plus récentes.

Voir aussi : StartCutscene, EndCutscene, Game.InSkippableCutscene


SpeechFont

(Anciennement global function SetSpeechFont, désormais obsolète)

static FontType Game.SpeechFont;

Retourne/définit la police utiliser pour le discours des personnages. Le numéro de police que vous entrez doit correspondre à un nombre présent dans l'onglet Fonts de l'éditeur.

Par défaut la Police de Discours vaut 1.

Exemple :

Game.SpeechFont = eFontStandard;

changera la police de discours pour “Standard”.

Voir aussi : Game.NormalFont


SpriteHeight

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.SpriteHeight[int slot]

Retourne la hauteur de la sprite spécifiée.

La taille sera retournée dans les coordonnées de résolution habituelle 320×200. Si un numéro de sprite invalide est entré, retournera 0.

Exemple :

Display("La sprite de l'objet 0 a une taille de %d x %d.", Game.SpriteWidth[object[0].Graphic],
                                               Game.SpriteHeight[object[0].Graphic]);

Voir aussi : Game.SpriteWidth


SpriteWidth

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.SpriteWidth[int slot]

Retourne la largeur de la sprite spécifiée.

La taille sera retournée dans les coordonnées de résolution habituelle 320×200. Si un numéro de sprite invalide est entré, retournera 0.

Exemple :

Display("La sprite de l'objet 0 a une taille de %d x %d.", Game.SpriteWidth[object[0].Graphic],
                                               Game.SpriteHeight[object[0].Graphic]);

Voir aussi : Game.SpriteHeight


TextReadingSpeed

(Anciennement game.text_speed, désormais obsolète)

static int Game.TextReadingSpeed;

Retourne/Définit la vitesse de lecture présumée du joueur, c'est-à-dire la durée d'affichage du texte à l'écran avant de l'effacer automatiquement.

Plus spécifiquement, TextReadingSpeed correspond au nombre de caractères de texte que le joueur peut lire en une seconde. Le paramètre vaut 15 par défaut. Ainsi, plus la valeur est élevée, plus le texte sera effacé rapidement.

Il peut être utile de faire dépendre ce paramètre d'une barre de défilement (GUI Slider) ou autre contrôle d'interface, de façon à ce que le joueur puisse ajuster la vitesse de lecture.

NOTE : Cette propriété est ignorée si la synchronisation labiale est activée, ou si les Réglages Généraux (General Settings) sont définis pour empêcher le retrait automatique du texte.

Exemple:

Game.TextReadingSpeed = 7;

divise la vitesse de lecture par défaut par deux, laissant le texte affiché à l'écran deux fois plus longtemps.

Compatibilité : Supporté par AGS 3.1.2 et versions ultérieures.

Voir aussi : Character.SpeechAnimationDelay, Game.MinimumTextDisplayTimeMs, SetSkipSpeech


TranslationFilename

(Anciennement GetTranslationName, désormais obsolète)

readonly static String Game.TranslationFilename;

Retourne le nom du fichier de traduction actuel (sans l'extension ”.tra”). Ceci peut être utile si vous voulez utiliser un graphisme différent à un endroit selon la traduction qui a cours.

Si aucune traduction n'est utilisée, une ligne vide est retournée.

Exemple :

if (Game.TranslationFilename == "Allemand") {
Display("Vous utilisez une traduction allemande.");
}

Voir Aussi : IsTranslationAvailable




UseNativeCoordinates

readonly static bool Game.UseNativeCoordinates
Retourne si le jeu utilise les coordonnées natives ou non. S'il les utilise, alors toutes les variables X, Y, Top, Bottom, Width et Height dans le jeu auront des valeurs correspondant à la résolution du jeu.

Si cette propriété vaut false , alors le jeu s'exécute en mode rétro-comptabilité où toutes les coordonnées sont en basse résolution.

Si la résolution du jeu est de 320×200 ou 320×240, ce paramètre n'a pas d'effet.

Cette propriété est en lecture seule ; vous ne pouvez pas la changer en cours d'exécution.

Exemple :
if (Game.UseNativeCoordinates)
{
  Display("Le joueur se trouve à %d, %d -- VRAIMENT !", player.x, player.y);
}
else
{
  Display("Le joueur se trouve à %d, %d dans le système old-school", player.x, player.y);
}

Compatibilité : Supporté par AGS 3.1.0 et les versions plus récentes.


ViewCount

(Anciennement compris dans GetGameParameter, désormais obsolète)

readonly static int Game.ViewCount

Retourne le nombre de vues dans le jeu.

Ceci est pratique pour les modules de script si vous devez itérer sur toutes les vues pour une raison quelconque. Les vues sont numérotées de 1 à ViewCount.

Exemple:

Display("Il y a %d vues dans le jeu.", Game.ViewCount);
 
game.1475237262.txt.gz · Dernière modification: 30/09/2016 14:07 par 78.250.179.81
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki