ContexteSoit un convoi de blindes, qui doit capturer une base ennemie: plusieurs messages doivent etre affiches a l'ensemble des joueurs lorsque le convoi est sur la base ScriptPour afficher du texte dans le jeu, on utilisera la fonction suivante: trigger.action.outText('texte a afficher', X) avec X le nombre de secondes de l'affichage. Ou bien la fonction: trigger.action.outTextForCoalition(coalition, 'texte a afficher', X) qui permet d'afficher le texte aux joueurs d'une seule coalition.
Coalition ROUGE: 'A toutes les patrouilles, le 5eme regiment vient de s'emparer de la base de Sochi !' Puis un message a tout le monde pendant 5s: Tout le monde: 'Merci a tous !' On devra alors executer les 3 lignes de script suivant: On a ici deux problemes: 1. Les guillemets 'A toutes les patrouilles, le 5eme regiment vient de s'emparer de la base de Sochi !' devra etre modifie en placant un \ devant chaque guillemet simple qui n'est pas le guillemet final: 'A toutes les patrouilles, le 5eme regiment vient de s\'emparer de la base de Sochi !' Note: dans le jeu, le caractere \ n'apparaitra pas, et le mot s\'emparer sera bien affiche s'emparer ! 2. Seul le dernier message sera affiche En effet, si on execute a la suite les 3 lignes de scripts, la derniere ligne va venir ecraser les messages precedents, car si du texte est affiche pendant 10 secondes, l'execution du script elle n'attend pas 10 secondes et execute les lignes de script immediatement. Resultat tout le monde verra le dernier message 'Merci a tous !' Alors comment faire pour laisser les 10 secondes d'affichage des messages precedents ? Et bien en differant l'affichage du troisieme message dans 10 secondes. Pour cela, on va utiliser une fonction de Mist: mist.scheduleFunction(function f ,table vars ,number t ,number rep ,number st) et notre script final devient: trigger.action.outTextForCoalition(coalition.side.RED, 'A toutes les patrouilles, le 5eme regiment vient de s\'emparer de la base de Sochi !', 10) Editeur de MissionOn a le choix de 3 methodes differentes dans notre cas: 1. Utiliser les waypoints du convoi, quand le convoi arrive au waypoint de notre choix, le script sera execute. Il suffit pour cela de recopier les 3 lignes de notre script a executer dans la case Action du waypoint desire. (screen a venir) 2. Utiliser une zone avec notre script Il suffit de definir une zone qui englobe la base aerienne de Sochi, appelez-la 'capture Sochi' par exemple, puis definissez le trigger suivant pour que le script soit execute des qu'une partie du convoi penetre dans la zone: Type: ONCE 3. Utilisez une zone avec un trigger pret-a-l'emploi (mais moins puissant) Il suffit de definir une zone qui englobe la base aerienne de Sochi, appelez-la 'capture Sochi' par exemple,puis definissez 3 triggers suivant pour que le script soit execute des qu'une partie du convoi penetre dans la zone: Type: ONCE Vous renseignez ensuite votre ligne de texte, le temps d'affichage, mais que se passe-t-il si definissez 3 triggers, 1 pour la coalition ROUGE, un pour la coalition BLEUE, et un autre pour tous ? Si cela ne se deroule pas comme prevu, vous savez pourquoi: notre deuxieme probleme, le dernier trigger ecrase les 2 precedents... donc cette solution est utile pour realiser un affichage unique !
|
Dernière modification de cette page le 4 février 2014 à 16:14. Cette page a été consultée 136 630 fois. Contenu disponible sous Creative Commons attribution non commercial partage à l'identique. Avertissements |