Afficher un message texte |
Version du 4 février 2014 à 15:57ContexteSoit 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:
Le texte a afficher est delimite par deux apostrophes simples: ' '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 !
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:
Il suffit pour cela de recopier les 3 lignes de notre script a executer dans la case Action du waypoint desire.
Il suffit de definir une zone qui englobe la base aerienne de Sochi, appelez-la 'capture Sochi' par exemple, puis definissez le trigger suivant: Type: ONCE Condition: PART OF GROUP IN ZONE (selectionnez la zone 'Sochi Capture' et le groupe du convoi) Action: DO SCRIPT (copiez/coller nos 3 lignes de script dans la zone de texte dessous)
Il suffit de definir une zone qui englobe la base aerienne de Sochi, appelez-la 'capture Sochi' par exemple, puis definissez 3 trigger suivant: Type: ONCE Condition: PART OF GROUP IN ZONE (selectionnez la zone 'Sochi Capture' et le groupe du convoi) Action: MESSAGE TO ALL ou bien MESSAGE TO COALITION ou bien MESSAGE TO COUNTRY 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 ;o) |