WIKI ADO

Accueil > ArmA2 > Edition de missions > Briefing

Briefing

- Publié le 16 Avril 2013 à 12h38 - Modifié le 08 Mai 2013 à 09h31
Le briefing est un élément important de votre mission. En effet, il permet de connaître le but de la mission ainsi que les différents objectifs à accomplir.

Vous devez créer les 3 fichiers suivants dans le dossier de votre mission : Mes documents/[ArmA2\ArmA2 Other Profiles]/VotrePseudo/missions/maMission.*

init.sqf : il doit contenir l'appel du fichier "briefing.sqf"
briefing.sqf : création du briefing (Objectifs, notes, ...)
briefing.html : création du débriefing (Fin1, Fin2, ...)

init.sqf


Vous devez insérer la commande suivante dans le fichier init.sqf et qui permet d'appeler le fichier briefing.sqf :

execVM "briefing.sqf";

briefing.sqf


Les notes


Dans un premier temps, nous allons créer nos notes.
La logique d'ArmA2 veut que l'on écrive les notes dans le désordre.
Pour cela, nous utilisons la commande createDiaryRecord :

player createDiaryRecord ["Diary", ["NOTE_TITRE", "NOTE_CONTENU"]];
Exemple : Deux notes pour une mission

player createDiaryRecord ["Diary", ["Renseignements", "Nous savons qu'il y à trois batteries anti-aériennes tout autour de l'<marker name='m_obj2'>aéroport</marker>.<br/>Faite très attention."]];
player createDiaryRecord ["Diary", ["Renforts", "Il y à 2 groupes mécanisés en retrait en attente de vos ordres.<br/><br/>Vous disposez également un appuis aérien si vous en avez besoin."]];

Erreur Image

Les objectifs


Dans un second temps, il faut créer les différents objectifs de la mission.
La logique d'ArmA2 veut que l'on écrive également les objectifs dans le désordre.

La création d'un objectif se fait à l'aide de 3 commandes :
  • createSimpleTask : permet la création d'un objectif
  • setSimpleTaskDescription : permet d'écrire la description de l'objectif, ainsi que le nom qui sera affiché lors de l'accomplissement de l'objectif
  • setSimpleTaskDestination : permet d'associer l'objectif avec un marqueur sur la carte (Facultatif)

OBJ_NOM = player createSimpleTask["OBJ_TITRE"];
OBJ_NOM setSimpleTaskDescription["OBJ_DESCRIPTION", "OBJ_TITRE", "OBJ_TITRE"];
OBJ_NOM setSimpleTaskDestination (getMarkerPos "OBJ_MARQUEUR");

Exemple : Deux objectifs pour une mission

obj2 = player createSimpleTask["Prendre l'aéroport"];
obj2 setSimpleTaskDescription["Prendre l'aéroport <br/><br/> L'<marker name='m_obj2'>aéroport</marker> est sous le contrôle Russe. Vous devez le nettoyer afin qu'un C130 puisse de poser d'urgence.", "Prendre l'aéroport", "Prendre l'aéroport"];
obj2 setSimpleTaskDestination (getMarkerPos "m_obj2");
 
obj1 = player createSimpleTask["Détruire les communications"];
obj1 setSimpleTaskDescription["Détruire les communications <br/><br/>Vous devez impérativement détruire la <marker name='m_obj1'>tour de communication</marker>. Ceci évitera l'arriver de renforts ennemis.", "Détruire les communications", "Détruire les communications"];
obj1 setSimpleTaskDestination (getMarkerPos "m_obj1");

Erreur Image

Maintenant il faut pouvoir gérer le statut des différents objectifs.
Les statut des objectifs sont définis avec la commande setTaskState. Cette commande est à insérer soit dans un déclencheur, soit dans un script.
Elle peux avoir en argument :
    Erreur Image CREATED : Nouvel objectif
    Erreur Image SUCCEEDED : Objectif accompli
    Erreur Image CANCELED : Objectif annulé
    Erreur Image FAILED : Objectif échoué

OBJ_NOM setTaskState "OBJ_STATUS";
Exemple : L'objectif 1 est accompli

obj1 setTaskState "SUCCEEDED";
Il est aussi possible de définir l'objectif en cours avec la commande setCurrentTask :

player setCurrentTask OBJ_NOM;
Exemple : L'objectif 1 est en cours

player setCurrentTask obj1;
Vous pouvez repérer l'objectif en cours dans le briefing grâce à l'icône suivante : Erreur Image

Affichage des objectifs


Vous pouvez afficher durant votre mission le statut d'un objectif en appelant le fichier taskHint.sqf.
Vous avez le choix entre 4 statut (Les mêmes que précédemment) : (Cette commande est à insérer soit dans un déclencheur, soit dans un script)
    Erreur Image CREATED : Nouvel objectif
    Erreur Image SUCCEEDED : Objectif accompli
    Erreur Image CANCELED : Objectif annulé
    Erreur Image FAILED : Objectif échoué

nul=[objNull, ObjNull, OBJ_NOM, "OBJ_STATUS"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf";
Exemple : L'objectif 1 est échoué

nul=[objNull, ObjNull, obj1, "FAILED"] execVM "CA\Modules\MP\data\scriptCommands\taskHint.sqf";
Il faut toucher qu'aux troisième et quatrième arguments. Les deux premiers restent sur ObjNull.

Informations

  • La balise
    permet de faire un saut de ligne.
  • Pour faire un lien sur un marqueur, il faut utiliser la commande suivante :

    <marker name='NomDuMarqueur'>Texte</marker>
  • Pour insérer une image qui se trouve dans le répertoire de votre mission, il faut utiliser la commande suivante : (l'indication des dimensions n'est pas obligatoire)

    <img image='monImage.jpg' height='64' width='64' />
  • Pour avoir des objectifs qui apparaissent au fur et à mesure dans la mission, il vous suffira de créer un autre fichier au format .sqf (Par exemple briefing2.sqf) avec les objectifs que vous voulez et de l'exécuter au moment voulu. (nul=[] execVM "briefing2.sqf")

briefing.html


Le débriefing est composé de 3 parties :

Entêtes de début


Entête de début à ne pas modifier.

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Mon debriefing</title>
</head>
<body bgcolor="#FFFFFF">

Contenu


Ensuite il faut ajouter les différentes fins entre les 2 entêtes :

<hr>
<br>
<h2><a name="Debriefing:End1">Fin n°1</a></h2>
<br>
<p>
Texte du débriefing de la fin numéro 1.
</p>
<br>

Répétez ce code pour ajouter d'autre fin en modifiant le numéro de Debriefing:EndX.

Entêtes de fin


Entête de fin à ne pas modifier.

</body>
</html>

Exemple


<html>
        <head>
                <meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
                <title>Mon debriefing</title>
        </head>
<body bgcolor="#FFFFFF">
        <hr>
        <br>
        <h2><a name="Debriefing:End1">Fin n°1</a></h2>
        <br>
        <p>
                Texte du débriefing de la fin numéro 1.
        </p>
        <br>
        <hr>
        <br>
        <h2><a name="Debriefing:End2">Fin n°2</a></h2>
        <br>
        <p>
                Texte du débriefing de la fin numéro 2.
        </p>
        <br>
</body>
</html>

Exemple général


Voici un exemple de briefing pour une mission.

init.sqf


execVM "briefing.sqf";

briefing.sqf


// ----- Notes -----
player createDiaryRecord ["Diary", [
"Renseignements",
"Nous savons qu'il y à trois batteries anti-aériennes tout autour de l'<marker name='m_obj2'>aéroport</marker>.
<br/>Faites très attention."

]];
player createDiaryRecord ["Diary", [
"Renforts",
"Il y à 2 groupes mécanisés en retrait en attente de vos ordres.<br/><br/>
Vous disposez également d'un appuis aérien si vous en avez besoin."

]];
 
// ----- Objectifs -----
obj2 = player createSimpleTask["Prendre l'aéroport"];
obj2 setSimpleTaskDescription["Prendre l'aéroport <br/><br/>
L'<marker name='m_obj2'>aéroport</marker> est sous le contrôle Russe. Vous devez le nettoyer afin qu'un C130 puisse se poser d'urgence."
,
"Prendre l'aéroport",
"Prendre l'aéroport"
];
obj2 setSimpleTaskDestination (getMarkerPos "m_obj2");
 
obj1 = player createSimpleTask["Détruire les communications"];
obj1 setSimpleTaskDescription["Détruire les communications <br/><br/>
Vous devez impérativement détruire la <marker name='m_obj1'>tour de communication</marker>. Ceci évitera l'arrivée de renforts ennemis."
,
"Détruire les communications",
"Détruire les communications"
];
obj1 setSimpleTaskDestination (getMarkerPos "m_obj1");
 
// ----- Objectif en cours -----
player setCurrentTask obj1;

briefing.html


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Mon debriefing</title>
</head>
<body bgcolor="#FFFFFF">
<! -----DEBUT DEBRIEFING----->
<hr>
<br>
<h2><a name="Debriefing:End1">Fin 1</a></h2>
<br>
<p>
Félicitation, la mission est accomplie.
</p>
<br>
 
<hr>
<br>
<h2><a name="Debriefing:End2">Fin 2</a></h2>
<br>
<p>
Vous êtes tous morts.
Echec total de la mission.
</p>
<br>
 
<! -----FIN DEBRIEFING----->
</body>
</html>

Briefing multi-camps


Pour réaliser un briefing multi-camps, il suffit d'utiliser un switch par exemple avec les différents camps : (Toujours dans le fichier Briefing.sqf)

switch (playerSide) do
{
        case west :
        {
                // Objectifs du camp Ouest
        };
        case east :
        {
                // Objectifs du camp Est
        };
        case resistance :
        {
                // Objectifs du camp Indépendant
        };
        case civilian :
        {
                // Objectifs du camp Civil
        };
};

Exemple : Un objectif différent pour le camp Ouest et Est :

switch (playerSide) do
{
        case west :
        {
                obj1 = player createSimpleTask["Détruire les blindés"];
                obj1 setSimpleTaskDescription["Détruire les blindés", "Détruire les blindés", "Détruire les blindés"];
                obj1 setSimpleTaskDestination (getMarkerPos "m_obj1");
        };
        case east :
        {
                obj1 = player createSimpleTask["Défendre les blindés"];
                obj1 setSimpleTaskDescription["Défendre les blindés", "Défendre les blindés", "Défendre les blindés"];
                obj1 setSimpleTaskDestination (getMarkerPos "m_obj1");
        };
        case resistance : {};
        case civilian : {};
};

Briefing multi-langues


Pour réaliser un briefing multi-langues, il faut utiliser le stringtable.csv.