Nenfëa Auxiliaire ArchipelModeur
Nombre de messages : 34 Age : 40 Date d'inscription : 04/04/2007
| Sujet: [Moyen] Création d'une boîte de dialogue à plusieurs choix Dim 15 Avr 2007, 13:30 | |
| Type de script : --- Objet --- (difficulté moyenne) Utilité : ce script illustre l'utilisation de boîtes de dialogues à choix multiples. Il est réadaptable pour des scripts de quête. Mode d'emploi :- Spoiler:
Dans le cas présent, le script est attaché à un objet (ici une pierre tombale) qui, lorsqu'on l'active, déclenche une boîte de dialogue où le joueur peut choisir entre plusieurs choix. Explications :- Spoiler:
La boîte de dialogue est lancée par la fonction MessageBox lorsqu'on active la pierre tombale. Ensuite, le script récupère le choix du joueur grace à la fonction GetButtonPressed, qui renvoit : -1 si le joueur n'a pas encore appuyé sur un bouton ; 0 si le joueur a appuyé sur le premier bouton ; 1 si le joueur a appuyé sur le deuxième bouton ; ... n-1 si le joueur a appuyé sur le n-ième bouton. - Code:
-
; Script d'objet illustrant l'utilisation de la fonction MessageBox pour des choix multiples. ; En l'occurence, le message s'affiche quand le joueur active une pierre tombale dans mon mod.
Scn nen_exemple_button
short nen ; Variable indiquant l'état de la pierre tombale short button ; Variable mémorisant les choix du joueur
Begin OnActivate ; Quand on active l'objet... MessageBox "Que voulez vous faire ?" "Frapper trois fois sur la pierre tombale." "Passer votre chemin." ; ... on affiche les choix possibles... Set nen to 1 ; ... et on modifie l'état pour indiquer qu'on attend une réponse. End
Begin GameMode if ( nen == 0 ) ; Si on n'attend pas de réponse... Return ; ... on ne fait rien. endif
Set button to GetButtonPressed ; On obtient le bouton sur lequel le joueur a appuyé. if ( button == -1 ) ; Si la valeur obtenue est -1, c'est que le joueur n'a appuyé sur rien. Return ; Dans ce cas, on ne fait rien. endif
Set nen to 0 ; Si le joueur a fait son choix, on réinitialise l'état de la pierre tombale
; On affiche un message selon le choix du joueur. if ( button == 0 ) Message "La pierre tombale sonne creux !" 3 elseif ( button == 1 ) Message "Vous vous détournez de la pierre tombale." 3 endif End | |
|