Le briefing est un élément indispensable de votre mission. En effet, il permet de donner les objectifs à accomplir.
Vous pouvez aussi donner diverses informations sur la mission.
Il est possible sur ArmA3 de créer son briefing directement sur l'éditeur sans passer par les fichiers.
Mais je trouve que cette solution n'est pas franchement facile à mettre en place ou à gérer.Pour commencer, vous devez créer les 2 fichiers suivants dans le dossier de votre mission.
Sous Vista/Seven :
C:\Users\monNom\Documents\ArmA 3 Other Profiles\monPseudo\missions\maMission.x\
Sous XP :
C:\Documents and Settings\monNom\Mes documents\ArmA3 Other Profiles\monPseudo\missions\maMission.x\
Si vous utilisez le profil d'origine,
il faut remplacer "ArmA3 Other Profiles" par "ArmA3" :
C:\Users\monNom\Documents\ArmA 3\monPseudo\
init.sqf
Ce fichier va nous permettre d'appeler le script "
briefing.sqf" qui sera exécuté au lancement de la mission.
Pour se faire, insérer la commande suivante dans le fichier "
init.sqf" :
execVM "briefing.sqf";
briefing.sqf
Ce fichier va nous permettre de créer le briefing qui comportera les notes et les objectifs de la mission.
Les notes
Dans un premier temps, nous allons créer nos notes.
La logique d'ArmA3 veut que l'on écrive les notes dans l'ordre décroissant.
Pour cela, nous utilisons la commande
createDiaryRecord :
player createDiaryRecord ["Diary", ["NOTE_TITRE", "NOTE_CONTENU"]];
Exemple :player createDiaryRecord ["Diary", ["Crédits", "Mission réalisée par : The-KiLLeR<br/><br/>
Clan ADO<br/>
www.clan-ado.fr"]];
player createDiaryRecord ["Diary", ["Renseignements", "D'après nos images satellites, nous avons aperçu plusieurs véhicules blindés ainsi que des défenses anti-aériennes.<br/>
Nous avons également aperçu au large des bateaux armés."]];
player createDiaryRecord ["Diary", ["Contexte", "Messieurs, l'heure est grave,<br/>
Les forces ennemies se sont emparées de l'aéroport de Stratis.<br/>
Nous devons par tous les moyens le reprendre !"]];
Les objectifs
Dans un second temps, il faut créer les différents objectifs de la mission.
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 :obj1 = player createSimpleTask["Reprendre l'aéroport"];
obj1 setSimpleTaskDescription["Nettoyer la zone de l'aéroport et reprenez le !", "Reprendre l'aéroport", "Reprendre l'aéroport"];
obj1 setSimpleTaskDestination (getMarkerPos "m_aeroport");
obj2 = player createSimpleTask["Détruire les défenses AA"];
obj2 setSimpleTaskDescription["Détruisez les défenses anti-aériennes.", "Détruire les défenses AA", "Détruire les défenses AA"];
obj2 setSimpleTaskDestination (getMarkerPos "m_aa");
Objectif courant
Il est possible de définir l'objectif en cours avec la commande
setCurrentTask :
player setCurrentTask OBJ_NOM;
Exemple :player setCurrentTask obj1;
Vous pouvez repérer l'objectif en cours dans le briefing grâce à l'icône suivante :
Informations
- La balise <br/> permet de faire un saut de ligne.
- Pour faire un lien sur un marqueur, il faut utiliser la commande suivante :
<marker name='NOM_MARQUEUR'>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='MON_IMAGE' height='64' width='64' />
Status des objectifs
Maintenant il faut pouvoir gérer le status des différents objectifs.
Le status d'un objectif est défini avec la commande
setTaskState.
Cette commande est à insérer soit dans un déclencheur, soit dans un script au moment du changement du status.
OBJ_NOM setTaskState "OBJ_STATUS";
Exemple : L'objectif 1 est accompli
obj1 setTaskState "SUCCEEDED";
Liste des différents status possibles :
| CREATED | Nouvel objectif |
| CANCELED | Objectif annulé |
| SUCCEEDED | Objectif accompli |
| FAILED | Objectif échoué |
Les notifications
Les notifications permettent d'afficher un message lors d'un changement de status d'un objectif.
Je ne vais pas rentrer dans les détails, un article est consacré à cela :
Lire l'article.
Exemple général
Voici un exemple de briefing pour une mission :
init.sqf
execVM "briefing.sqf";
briefing.sqf
// ----- Notes -----
player createDiaryRecord ["Diary", ["Crédits", "Mission réalisée par : The-KiLLeR<br/><br/>
Clan ADO<br/>
www.clan-ado.fr"]];
player createDiaryRecord ["Diary", ["Renseignements", "D'après nos images satellites, nous avons aperçu plusieurs véhicules blindés ainsi que des défenses anti-aériennes.<br/>
Nous avons également aperçu au large des bateaux armés."]];
player createDiaryRecord ["Diary", ["Contexte", "Messieurs, l'heure est grave,<br/>
Les forces ennemies se sont emparées de l'aéroport de Stratis.<br/>
Nous devons par tous les moyens le reprendre !"]];
// ----- Objectifs -----
obj1 = player createSimpleTask["Reprendre l'aéroport"];
obj1 setSimpleTaskDescription["Nettoyer la zone de l'aéroport et reprenez le !", "Reprendre l'aéroport", "Reprendre l'aéroport"];
obj1 setSimpleTaskDestination (getMarkerPos "m_aeroport");
obj2 = player createSimpleTask["Détruire les défenses AA"];
obj2 setSimpleTaskDescription["Détruisez les défenses anti-aériennes.", "Détruire les défenses AA", "Détruire les défenses AA"];
obj2 setSimpleTaskDestination (getMarkerPos "m_aa");
// ----- Objectif en cours -----
player setCurrentTask obj1;
Briefing multi-camps
Pour réaliser un briefing multi-camps, il faut utiliser un "
switch" 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 la méthode du
Stringtable.
Exemple :stringtable.xml
<?xml version="1.0" encoding="utf-8"?>
<Key ID="STR_OBJ1_NOM">
<English>Defend the base</English>
<French>Défendre la base</French>
</Key>
<Key ID="STR_OBJ1_DESCRIPTION">
<English>Defend the base against the Russian attack</English>
<French>Défendre la base contre l'attaque Russe</French>
</Key>
briefing.sqf
obj1 = player createSimpleTask[Localize "STR_OBJ1_NOM"];
obj1 setSimpleTaskDescription[Localize "STR_OBJ1_DESCRIPTION", Localize "STR_OBJ1_NOM", Localize "STR_OBJ1_NOM"];
obj1 setSimpleTaskDestination (getMarkerPos "m_obj1");
Pour plus d'informations concernant les briefings,
consultez le tutoriel proposé par JonyBIgooD.