How to make a basic Briefing in ArmA 2
In 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:
Now we can add the briefing commands to the briefing.sqf file, and keep the other files of your mission clean.Code:execVM "briefing.sqf";
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.
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'/>
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.
You 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.
Well,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 hints
If 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.0
And 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.
I've made briefing.sqf and briefing.html templates. Grab them at ofpec: