Nous avons vu dans les chapitres précédents les différentes interactions possibles avec les éléments du jeu : parler avec un personnage, utiliser un objet, quitter un écran par la droite ou la gauche, etc etc.
Voici maintenant une liste d'événements que vous pouvez programmer dans le script lorsque le joueur accomplit l'une de ces actions. Vous pouvez ajouter chaque action avant ou après une autre, en faisant attention à l'ordre dans lequel vous les placez : le logiciel les exécutera toutes les unes après les autres.
Cette liste ne compte que les actions les plus souvent utilisées, les autres seront décrites dans la section pour les utilisateurs confirmés.
1. Evénements liés au personnage principal ou aux personnages non joueurs.*
character.ChangeView(x); : Modifier de façon définitive l'animation de base du personnage "character" (à remplacer par le script name du personnage) quand il marche, par la view numéro x. Le personnage ne retrouvera son animation de base que si cette commande est entrée à nouveau. Par exemple, si le personnage change de vêtement en cours de jeu. Dans ce cas, il faut bien évidemment faire toutes les animations, dans toutes les directions, avec sa nouvelle apparence !
*
character.FaceLocation(x, y); : Force le personnage à se tourner vers une direction précise (un point aux coordonnées x et y à définir), par exemple pour qu'il puisse parler en face d'un autre personnage, et non lui montrer son dos !
*
character.FollowCharacter(character2, x, y); : A partir de ce moment, le personnage "character" suivra un autre personnage "character2", dans toutes ses directions, et changera d'écran en même temps que lui. Attention, le personnage met toujours un petit moment à apparaître lors d'un changement d'écran, veillez donc à ne pas programmer d'événements le concernant trop tôt. Par exemple, s'il est sensé dire quelque chose alors qu'il n'est pas encore arrivé dans le décor, vous le verrez parler en voix off !
- x est la distance minimum en pixels où se tiendra character2 par rapport à character : plus le nombre est élevé, plus il se tiendra loin. A 0, il le collera au plus près.
- y est l'intensité : plus le nombre est élevé, plus il mettra un moment à réagir avant de le suivre. A 0, il le suit comme son ombre.
Si vous mettez 0 à x et à y, le personnage tournera sans arrêt autour de l'autre de manière frénétique, comme par exemple un chien agité qui tourne autour de son maître.
- Si vous souhaitez que le personnage arrête de suivre un autre, mettez simplement : character.FollowCharacter(null);
*
character.Walk(x, y, eBlock, eWalkableAreas); : Déplace le personnage jusqu'aux coordonnées X/Y du décor. Si le point est situé en-dehors d'une aire de marche, il s'arrêtera à la limite maximum.
- La fonction eBlock indique que le jeu doit être en pause tant que le personnage marche. Mettez eNoBlock si vous voulez que le jeu ne soit pas bloqué durant le déplacement.
- eWalkableAreas signifie que le personnage se déplacera uniquement en suivant les aires de marche. Mettez eAnywhere si vous voulez qu'il se déplace sans tenir compte des aires de marche.
*
character.ChangeRoom(z, x, y); : Déplace le personnage dans la room z, aux coordonnées x et y. Par exemple, si Roger parle à Sam, et qu'ensuite Sam s'en va et quitte l'écran, on peut demander au logiciel de «téléporter» Sam dans un autre écran, où Roger pourra le retrouver par la suite s'il se rend dans cet écran. Si vous utilisez cette commande pour le personnage principal, le jeu suivra le personnage et le joueur se retrouvera donc dans la nouvelle room.
*
character.Animate(x, y, eRepeat, eBlock, eForwards); : Anime le personnage avec la loop x de la view actuelle (utiliser Change View avant si vous souhaitez utiliser une autre view), à la vitesse y.
- eRepeat signifie que l'animation est jouée en boucle. Mettez eOnce si vous voulez qu'elle ne se joue qu'une fois.
- eBlock signifie que le jeu est en pause tant que l'animation est jouée. Mettez eNoBlock pour qu'elle s'anime sans bloquer le jeu.
- eForwards signifie que l'animation est jouée à l'endroit, dans l'ordre des sprites. Mettez eBackwards pour la jouer à l'envers.
*
character.StopMoving(); : Stoppe le personnage si celui-ci était en train de marcher.
*
character.AddInventory(item); : donne au personnage l'objet d'inventaire "item".
*
character.LoseInventory(item); : le personnage perd l'objet d'inventaire "item". S'il ne l'avait pas, il ne se passe rien.
2. Les conditionsVérifient si une condition est rempli avant d'activer les événements programmer entre les accolades.
*
if(character.Moving == true) { } : si est un personnage est en train de marcher.
*
if(character.ActiveInventory == item) { } : si le personnage utilise l'objet d'inventaire "item".
*
if(mouse.Mode == eModeInteract){ } : si la souris est en mode Utiliser. Remplacer par eModeTalkto pour parler, eModeLookat pour regarder, etc.
*
if(character.InventoryQuantity[x]==y){ } : si le personnage possède dans son inventaire un nombre y d'item numéro x. Par exemple, si l'objet Clef est l'item numéro 1, et que vous voulez déterminer si le personnage possède la clef pour programmer un certain événement, vous mettez :
- Code:
-
if(character.InventoryQuantity[1]==1){
//événement
}
*
if(character.PreviousRoom == x){ } : si le personnage était dans la room x avant d'être dans la room actuelle.
3. Evénements relatifs au jeu en général.*
GiveScore(x); : ajoute x points au score du joueur. Vous pouvez mettre une valeur négative si vous voulez retirer des points au joueur.
*
dDialogX.SetOptionState(y, eOptionOn); : à utiliser avant de lancer un dialogue. Permet de rendre le choix y du dialogue dDialogX disponible. Pour le rendre indisponible, mettez eOptionOff. Pour le rendre indisponible définitivement, même si la commande eOptionOn est activée par la suite, mettez eOptionOffForever.
*
dDialogX.Start(); : lance le dialogue numéro X.
*
Display("Message"); : affiche un message textuel.
*
gGui1.Visible=true; : affiche le GUI numéro 1. Pour le rendre invisible, mettez False.
*
Wait(x); : demande au jeu se mettre en pause durant x temps. Par exemple, si vous voulez que le personnage reste sans bouger et sans dire un mot pendant un moment entre deux actions, entrez le nombre correspondant au temps d'attente souhaité, sachant que 40 correspond à 1 seconde.
*
PlayMusic(x); : Joue la musique numéro x. Par exemple, 5 si vous voulez jouer le fichier music5.mid du dossier Music du jeu, mettez PlayMusic(5);
*
StopMusic(); : cesse de jouer la musique.*
PlaySound(x); : Joue le son numéro x. Par exemple, si vous voulez jouer le son sound6.wav du dossier Sound, mettez PlaySound(6);
*
hHotspotX.Enabled = true; : active le hotspot numéro X. Pour le désactiver, mettez False. Le joueur ne pourra plus interagir avec ce hotspot par la suite.
4. événements relatifs aux objets des rooms*
object.Move(x, y, z, eBlock, eWalkableAreas); : déplace l'objet "object" aux coordonnées x/y, à la vitesse z. Mettez eBlock pour que le jeu soit en pause tant qu'il est en mouvement, ou eNoBlock pour qu'il bouge en arrière-plan sans bloquer le jeu. Mettez eWalkableAreas pour qu'il suive les aires de marche, ou eAnywhere pour qu'il ignore les aires de marche.
*
object.Visible=false; : désactive un objet de la scène. Il devient invisible et le personnage ne peut plus interagir avec lui. Mettez True pour le rendre à nouveau visible.
*
object.SetView(x); : attribue la view x à l'objet (voir le chapitre Animations pour plus de détails).
*
objet.Animate(x, y, eRepeat, eBlock, eForwards); : anime l'objet avec la loop x, à la vitesse y. Mettez eRepeat pour que l'animation soit jouée en boucle, sinon mettez eOnce pour la jouer une seule fois. Mettez eBlock pour que le jeu soit en pause durant l'animation, sinon eNoBlock. Mettez eForwards pour la jouer à l'endroit, eBackwards pour la jouer à l'envers.