Contents Up Previous Next

Référence des événements dans le script

Dans votre fichier principal contenant le script global se trouvent certaines fonctions qui sont automatiquement ajoutées lorsque vous créez un jeu. Celles-ci correspondent à des "événements", et sont appelées lorsqu'un événement particulier intervient. Il existe également d'autres événements que vous pouvez ajouter si vous le désirez.

Les fonctions disponibles de ce type sont :

dialog_request (int paramerte)
Appelée lorsqu'une ligne "run-script" dans un script de dialogue est atteinte. PARAMETRE est la valeur suivant le texte "run-script" sur la ligne du script de dialogue.
game_start ()
Appelée au début du jeu, avant que la première pièce ne soit chargée. Vous pouvez utiliser cette fonction pour définir les positions initiales des personnages, et/ou activer/désactiver des interfaces.
interface_click (int interface, int bouton)
Appelée lorsque le joueur clique sur un bouton dans une interface, auquel est associée l'action "Run script". INTERFACE est le numéro du GUI sur lequel a cliqué le joueur. BOUTON est le numéro du bouton dans le GUI.
on_event (EventType event, int data)
Appelée lorsque certains événements surviennent dans le jeu. La valeur de DATA dépend de l'événement à l'origine de l'appel. Ceci vous permet d'effectuer des vérifications ou de mettre à jour certaines choses chaque fois que le joueur agit d'une certaine manière, indépendamment de la pièce dans laquelle il se trouve. Les valeurs possibles de EVENT sont :

eEventEnterRoomBeforeFadein
      appelée juste avant que l'événement Player Enters Room (Joueur Entre dans la Pièce) ne soit lancé.
      DATA = numéro de la nouvelle pièce
eEventLeaveRoom
      appelée juste après que l'événement Player Leaves Room (Joueur Quitte la Pièce) a été lancé.
      DATA = numéro de la pièce quittée
eEventGotScore  
      appelée lorsque le score du joueur change
      DATA = nombre de points obtenus
eEventGUIMouseDown
      appelée lorsqu'un bouton de la souris est pressé dans un GUI
      DATA = numéro du GUI
eEventGUIMouseUp
      appelée lorsqu'un bouton de la souris est relâché dans un GUI
      DATA = numéro du GUI
eEventAddInventory
      appelée lorsque le joueur obtient un nouvel objet d'inventaire
      DATA = numéro de l'objet d'inventaire ajouté
eEventLoseInventory
      appelée lorsque le joueur perd un objet d'inventaire
      DATA = numéro de l'objet d'inventaire perdu
eEventRestoreGame
      appelée lorsqu'une partie a été chargée depuis une sauvegarde
      DATA = numéro de l'emplacement de sauvegarde
on_key_press (int numerotouche)
Appelée lorsqu'une touche est pressée sur le clavier. NUMEROTOUCHE contient al valeur ASCII de la touche. Une liste de ces valeurs se trouve dans cette section.
on_mouse_click (MouseButton bouton)
Appelée lorsque le joueur clique sur un bouton de la souris. BOUTON peut être eMouseLeft (Gauche), eMouseRight (Droit) ou eMouseMiddle (Milieu), selon le bouton pressé. La position de la souris peut être récupérée grâce aux variables "mouse.x" et "mouse.y".
Si l'option 'Handle inventory clicks in script' ('Gérer les clics sur les objets d'inventaires dans le script') est activée, cette fonction sera aussi appelée avec eMouseLeftInv (clic gauche sur un objet d'inventaire) et eMouseRightInv (de même, pour un clic droit cette fois).
Si l'option 'Enable mouse wheel support' ('Activer le support de la molette'), cette fonction sera également appelée avec eMouseWheelNorth et eMouseWheelSouth, qui indiquent que l'utilisateur déplace la molette de la souris vers le haut/nord ou vert le sud/bas, respectivement.
repeatedly_execute()
Appelée à chaque cycle de jeu (normalement, 40 fois par seconde).
repeatedly_execute_always()
Appelée à chaque cycle de jeu, même lorsqu'une routine bloquante (comme du discours ou une cinématique) est en exécution. Vous ne pouvez pas appeler une fonction bloquante à l'intérieur de cette fonction. Vous pouvez placer une fonction repeatedly_execute_always et dans votre script global, et dans tout script de pièce où vous en avez besoin.
unhandled_event (int what, int type)
Appelée lorsqu'une interaction survient, mais qu'aucune réaction n'est associée dans la fenêtre d'interactions. Ceci peut être utile pour afficher un message type "Je ne peux pas faire ça". Les valeurs de WHAT et de TYPE vous renseignent sur ce que le joueur a fait.
Les valeurs possibles sont listées ici :

WHAT TYPE Description
 1    1   Regarder le hotspot
 1    2   Interaction avec le hotspot
 1    3   Utiliser un objet d'inventaire sur le hotspot
 1    4   Parler au hotspot
 1    7   Ramasser le hotspot
 1    8   Mode de Curseur 8 sur le hotspot
 1    9   Mode de Curseur 9 sur le hotspot
 2    0   Regarder l'objet
 2    1   Interaction avec l'objet
 2    2   Parler à l'objet
 2    3   Utiliser un objet d'inventaire sur l'objet
 2    5   Ramasser l'objet
 2    6   Mode de Curseur 8 sur le hotspot
 2    7   Mode de Curseur 9 sur le hotspot
 3    0   Regarder le personnage
 3    1   Interaction avec le personnage
 3    2   Parler au personnage
 3    3   Utiliser un objet d'inventairesur le personnage
 3    5   Ramasser le personnage
 3    6   Mode de Curseur 8 sur le personnage
 3    7   Mode de Curseur 9 sur le personnage
 4    1   Regarder le vide (aucun élément interactif)
 4    2   Interaction avec le vide
 4    3   Utiliser un objet d'inventaire dans le vide
 4    4   Parler dans le vide
 5    0   Regarder un l'objet d'inventaire
 5    1   Interaction avec l'objet d'inventaire (impossible pour le moment)
 5    2   Parler à l'objet d'inventaire
 5    3   Utiliser un objet d'inventaire sur un autre
 5    4   Autre clic sur l'objet d'inventaire
Notez que l'événement "Personnage se trouve sur le hotspot" n'appelle pas cette fonction, et que celle-ci ne sera pas appelée non plus si une interaction "Any click" ("Tout clic" est définie. Cette fonction n'est appelée lorsque le joueur ne clique sur rien (hotspot 0).

Les événements on_key_press et on_mouse_click peuvent également être gérés dans des scripts de pièce individuels. Si vous ajoutez leurs définitions de fonction à votre script de pièce de la même façon qu'elles le sont dans le script global, le script de la pièce peut intercepter l'événement avant le script global, et ainsi décider si ce dernier doit ou non considérer l'événement. Voyez la fonction ClaimEvent pour plus de détails.