How to make a basic Briefing in ArmA 2In ArmA 2 BIS has decided redo the briefing system. The well known 'briefing.html' is still being used, but only for the debriefing.
The actual briefing is added by script commands, which I advise you to put in a 'briefing.sqf', and give you the ability to add 'Notes' and 'Tasks' to the briefing menu.
Ok, let's start with the simple stuff. Make a file called 'briefing.sqf' and make sure this gets executed through the 'init.sqf'. Add the following to your init.sqf:
execVM "briefing.sqf";
Now we can add the briefing commands to the briefing.sqf file, and keep the other files of your mission clean.
Adding Notes:player
createDiaryRecord ["Diary", ["Title 1", "Message 1"]];
This adds a note called 'Title 1', and when you click on that a bigger message screen comes up with 'Message 1'. This is great, but we really need some formatting and ability to add links and pictures.
Linebreak/newline: <br/>
Link to marker: <marker name='obj1'>Link to Marker</marker>
Show an image: <img image='somePic.jpg'/>
Show an image and manipulate the image width and height: <img image='somePic.jpg' width='200' height='200'/>
Some examples:
player
createDiaryRecord ["Diary", ["Title 2", "Isn't whitespace awesome? <br/><br/><br/>Yes it totally is!"]];
player
createDiaryRecord ["Diary", ["Title 1", "We have an objective <marker name='mkrObj1'>here</marker> and one <marker name='mkrObj2'>there</marker>"]];
Ok, you should now understand how to make a note, and what the possibilities are in the briefing message window, so let's add some tasks.
Adding TasksYou can make tasks whenever you want (at mission start, or at any time you like duing a mission), and you can customize them a lot, but let's start with a simple one:
tskExample1 = player
createSimpleTask ["Task Title 1"];
This add only adds a task called 'Task Title 1', but the message box is empty. We fix this with the following command:
tskExample1
setSimpleTaskDescription ["Task Message 1", "Task Title 1", "Task HUD Title 1"];
This sets a description to the task. The first array element is the message (like the message from the notes), the second element is the title (yes, we already defined that, but we have to redefine it here), and the third element is what gets shown on the HUD.
Note: The formatting tags that I've shown you earlier work with tasks as well.
So now that we have a task with a title and message, we can also add an objective marker to the task so we know where the objectives actually are:
tskExample1
setSimpleTaskDestination (getMarkerPos "mkrObj1");
Make sure you have an empty marker called 'mkrObj1', and you'll see a semi-transparant circular marker which will light up when you set the task as active.
Other commandsWell,now you know how to make notes and tasks, but we also need to control those tasks during the mission.
We force a task upon a player by executing this on his machine:
player
setCurrentTask tskExample1;
This will highlight the objective marker, and show him the through the HUD where the objective is.
Now all that there's left, is setting the task status:
tskExample1
setTaskState "SUCCEEDED";
tskExample1
setTaskState "FAILED";
tskExample1
setTaskState "CANCELED";
tskExample1
setTaskState "CREATED";
"SUCCEEDED" = Makes the checkbox green
"FAILED" = Puts a red cross in the checkbox
"CANCELED" = Puts a grey diagonal line through the checkbox
"CREATED" = Clears the checkbox (makes it look like you've just created it)
You can also show the state of the task with the taskHint command, but since that command is kinda hard to use, we're gonna use a function that I've made to make a lot easier to show the task state.
How to make task hintsIf you wanna make taskHints that look like this:
then go and grab my taskHint function at
http://www.ofpec.com/forum/index.php?topic=33768.0And that's pretty much it for a basic briefing. I'll try to add more advanced stuff to it when I have some more time.
Some templates you can use: