Jump to content
fer

F3 Mission Development Framework (F2 for ArmA 3)

Recommended Posts

Thanks for your answer.

I'm using the VAS Script with the F3 Framework.

First error is not ours. are you running dev?

Share this post


Link to post
Share on other sites
First error is not ours. are you running dev?

I think that's the cause right?

Share this post


Link to post
Share on other sites
I'm using the VAS Script with the F3 Framework.

I'm not familiar with the VAS script - have you tried removing it and seeing if that makes the spammed error disappear?

Share this post


Link to post
Share on other sites

logo_f3_135x.png

F3 Mission Development Framework for ArmA 3

F3 v3-0-5 Released (now with ACRE)

From the ReadMe.md file:

3-0-5 | 17 AUG 2013

Migrated ACRE Support component (inc. pre-set frequencies, see F3 wiki for details).

Expanded F3 Folk ARPS Platoons component:

|- BLUFOR platoon can now be helibourne or mechanised.

|- OPFOR platoon can now be helibourne or mechanised.

|- INDEPENDENT platoon can now be helibourne.

Fixed additional unsassigned variable errors.

Removed Kegetys Spectator Script component.

Removed unused files and references.

Special thanks to comrade scripting heroes Head and Cam, and to all at Folk ARPS.

About F3

The F3 Mission Development Framework (F3) is the successor to the popular F2 and BAS f mission development frameworks for ArmA 2 and ArmA. The new framework contains many of the features you know from F2, updated to work with ArmA 3; new components which take advantage of the new game's special features are planned.

For downloads and to find out more please see our online manual:

Share this post


Link to post
Share on other sites

logo_f3_135x.png

F3 Mission Development Framework for ArmA 3

F3 v3-0-6 Released (now with ACRE)

From the ReadMe.md file:

3-0-6 | 20 AUG 2013

Updated Multiplayer Ending Controller component to use new BIS endings.

Updated F3 Folk ARPS Assign Gear Script component (various fixes/changes).

Fixed additional unsassigned variable errors.

Removed unused files and references.

Special thanks to comrade scripting hero Head and testing hero Draakon, and to all at Folk ARPS.

About F3

The F3 Mission Development Framework (F3) is the successor to the popular F2 and BAS f mission development frameworks for ArmA 2 and ArmA. The new framework contains many of the features you know from F2, updated to work with ArmA 3; new components which take advantage of the new game's special features are planned.

For downloads and to find out more please see our online manual:

Share this post


Link to post
Share on other sites

Is the AI Skill feature still included, and if so is it working properly in Arma3?

Share this post


Link to post
Share on other sites
Is the AI Skill feature still included, and if so is it working properly in Arma3?

Yes, this is still a feature and was working at last test (although the beta is a moving target).

Share this post


Link to post
Share on other sites

Much appreciated, Fer...will be using that in a few missions as soon as I get the chance.

Share this post


Link to post
Share on other sites

logo_f3_135x.png

F3 Illustrated Step-by-Step Tutorial: Make an Adversarial Mission with F3

From the introduction:

In this illustrated, step-by-step tutorial, you'll create a simple adversarial mission (team vs. team) using the F3 mission development framework for ArmA 3.

You'll use many components from F3, but by no means all of them. The tutorial will explain how to configure those components that require input from the mission maker. The tutorial will also explain the components that are automatically enabled simply by using F3 to make the mission.

When you finish this tutorial you'll have a mission that's ready to play on either your locally-hosted server, or uploaded to your community's dedicated server. To help you check that you've correctly followed each step, a downloadable copy of the tutorial mission folder is linked at the end.

About F3

The F3 Mission Development Framework (F3) is the successor to the popular F2 and BAS f mission development frameworks for ArmA 2 and ArmA. The new framework contains many of the features you know from F2, updated to work with ArmA 3; new components which take advantage of the new game's special features are planned.

For downloads and to find out more please see our online manual:

Share this post


Link to post
Share on other sites

Hey Fer, i've been looking into the scripts to learn how to script better and i would like to give you an opinion about the group markers.

I've changed the script so that instead of they follow the current squad leader, it would only follow the first squad leader and it never gets deleted from the map, i prefer this way because it encourage communication and you would never know if a squad would be wiped out just by checking the map, i could clearly show what i've changed to you. But it is just my preference, what you think about it? Did you like the idea or would prefer to keep as it is?

And thanks a lot for the framework i learned A LOT from just reading the scripting and it looks like the best framework out there!

Share this post


Link to post
Share on other sites
I've changed the script so that instead of they follow the current squad leader, it would only follow the first squad leader and it never gets deleted from the map .... Did you like the idea or would prefer to keep as it is?

That's a nice idea. Did you know that the ORBAT component works in a similar way? It only writes out an ORBAT that is accurate at the start of the mission. Please could you post your modified code for us to have a look at?

... i learned A LOT from just reading the scripting ...

That is the best possible outcome for us (the F3 team). Many of the scripts could be written in more sophisticated ways, but the objective has always been to help newcomers understand what's going on .. and then change it!

Let us know how you're getting on. In over 6 years of organising the F* project, it's amazing how little feedback I've seen from people outside my home communities (like Folk ARPS), so it's great to hear from people like you. Thanks!

Share this post


Link to post
Share on other sites

I'll try to send you the code, i've made them when it was version 3.0.3 IIRC as i've not played and tried to script for a while, and i didn't knew if the "exit for empty groups" was responsible for deleting the marker so i've just commented it, it was working correctly last time i've tested but it had those undefined variable errors.

// F3 - Folk Group Markers
// Credits: Please see the F3 online manual (http://www.ferstaberinde.com/f3/en/)
// ====================================================================================

// JIP CHECK
// Prevents the script executing until the player has synchronised correctly:

#include "f_waitForJIP.sqf"

// ====================================================================================

// DECLARE PRIVATE VARIABLES

private ["_grp","_mkrType","_mkrText","_mkrColor","_mkrName","_mkr","_grpName"];

// ====================================================================================

// SET KEY VARIABLES
// Using variables passed to the script instance, we will create some local variables:

call compile format ["
_grp = %1;
",_this select 0];

_grpName = _this select 0;
_mkrType = _this select 1;
_mkrText = _this select 2;
_mkrColor = _this select 3;
_lead = _this select 4;
_mkrName = format ["mkr_%1",_grp];


// ====================================================================================

// WAIT FOR GROUP TO EXIST IN-MISSION
// We wait for the group to have members before creating the marker.

if (isNil "_grp") then 
{
call compile format ["
	waitUntil {sleep 3; count units %1 > 0}; 
	_grp = %1;

",_grpName,_grp];
_mkrName = format ["mkr_%1",_grp];
};

// ====================================================================================

// EXIT FOR EMPTY GROUPS (PART I)
// If the group is empty, this script exits.

//if ((count (units _grp)) == 0) then
//	{
//	if (true) exitWith {};
//	}
//	else
//	{
// ====================================================================================

// CREATE MARKER
// Depending on the value of _mkrType a different type of marker is created.

	switch (_mkrType) do
	{

// Platoon HQ
		case 0:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "b_hq";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Fireteam
		case 1:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_INF";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Machineguns (MMG, HMG)
		case 2:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_SUPPORT";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Launchers (MAT, HAT, SAM)
		case 3:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_MOTOR_INF";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Sniper Team
		case 4:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_RECON";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Mortar Team
		case 5:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_MORTAR";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Engineers
		case 6:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_MAINT";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};			
// IFVs and Tanks
		case 7:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_ARMOR";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};
// Transport and Attack Helos
		case 8:
		{
			_mkr = createMarkerLocal [_mkrName,[(getPos leader _grp select 0),(getPos leader _grp select 1)]];
			_mkr setMarkerShapeLocal "ICON";
			_mkrName setMarkerTypeLocal "B_AIR";
			_mkrName setMarkerColorLocal _mkrColor;
			_mkrName setMarkerSizeLocal [0.8, 0.8];
			_mkrName setMarkerTextLocal _mkrText;
		};				
	};

// ====================================================================================

// UPDATE MARKER POSITION
// As long as certain conditions are met (the group leader is alive) the marker 
// position is updated periodically. This only happens locally - so as not to burden 
// the server.
// head:task:rewrite
	for [{_i=0}, {_i<=10000}, {_i=_i+1}] do
	{
		if (alive _lead) then 
		{
		_mkrName setMarkerPosLocal [(getPos _lead select 0),(getPos _lead select 1)];
		};
		sleep 6;
	};

// ====================================================================================

// EXIT FOR EMPTY GROUPS (PART II)
// If the group is empty, this script exits.

//	};

// ====================================================================================

//if (true) exitWith {};


The change i've made was the lead that the script retrieves from the array, and the unit arrays from the f"olk_setLocalGroupMarkers" they were changed to this

["GrpBLU_CO", 0, "CO", "ColorYellow", leader GrpBLU_CO ] spawn fnc_folk_localGroupMarker;

I'll try to use them on your latest version to see if its working properly because i'm kind of sleepy here and its late, but tomorrow i'll test and give you a better answer! I'll explore even more, didn't checked out the ORBAT yet, but surely i will!

I've tested with the latest version of F3 and it seems to be working as i intended but i couldn't do the same with the medics marker, they keep going away when the medic is killed ):

Will try to work on it later, may i ask you what exactly the Exit for dead units part 1 and 2 does?

I believe it just stop the script, so the markers wouldn't be updated anymore but they wouldn't be deleted either, am i right?

Edited by Lucasmnunesk
Tested

Share this post


Link to post
Share on other sites

Hey guys,

I made a "Part 1" tutorial on how to get started with the F3 framework. I loosely followed Fer's tutorial from the wiki. I spent a lot of time going over stuff in the description.ext and init.sqf for new people, but past that it's just an introduction to getting started and making a real simple TvT mission.

Here is the link!

I'm planning on making additional ones for some of the more advanced features, but no ETA on when that will be. Mostly when I find time.

Share this post


Link to post
Share on other sites

This video is superb - thank you so much for taking the time to make it! Looking forward to the next in the series, and will try and give you a heads-up as to our next updates, so you have access to the latest code etc. :)

Share this post


Link to post
Share on other sites

First off, love F3 Framework. Make mission making simpler.

All except for this little tidbit. For some reason, a trigger sent to not present on OPFOR does not work correctly. The trigger goes off as soon as the mission starts.

(Yes, there is OPFOR in the area)

Name:

Text:

Type: None

Activation: OPFOR

Not present

Condition:

Mission is also on Altis.

Any thoughts or suggestions? (Yes i have set "Condition:" to this, and a few other different commands)

Share this post


Link to post
Share on other sites

Great to hear you like F3, Alcatraz968!

All except for this little tidbit. For some reason, a trigger sent to not present on OPFOR does not work correctly. The trigger goes off as soon as the mission starts.

(Yes, there is OPFOR in the area)

There aren't any pre-placed triggers in F3, so I'm guessing this is something you have added to your mission? Bear in mind that if you're playing on Altis right now, you're using the dev branch - so it could well be a genuine bug with the game. What happens if you try to use the same trigger in a mission on Stratis (in the stable branch)?

Share this post


Link to post
Share on other sites
Great to hear you like F3, Alcatraz968!

There aren't any pre-placed triggers in F3, so I'm guessing this is something you have added to your mission? Bear in mind that if you're playing on Altis right now, you're using the dev branch - so it could well be a genuine bug with the game. What happens if you try to use the same trigger in a mission on Stratis (in the stable branch)?

I have a huge mission created with triggers, and some friends have confirmed the triggers work normally (On there computers). I have actually not tried the stable branch (mission is on altis), nor Stratis. But, it seems today's update for the dev branch might have done something to F3 framework. I can't give complete confirmation, but I'm getting error messages showing up from f/common folder.

Share this post


Link to post
Share on other sites

Any chance you can post the error messages here plz?

Share this post


Link to post
Share on other sites

http://imgur.com/wRQF2jO,cia5wgH,4jsZQIG

These the screen shots i managed to get. There is more errors, but they are flashing by fast. Also when i use the crew check, i get error messages (But it functions). VAS (Latest Version) is broke, and it appears some of my other scripts are breaking or not functioning correctly. This only started happening this morning.

Share this post


Link to post
Share on other sites
http://imgur.com/wRQF2jO,cia5wgH,4jsZQIG

These the screen shots i managed to get. There is more errors, but they are flashing by fast. Also when i use the crew check, i get error messages (But it functions). VAS (Latest Version) is broke, and it appears some of my other scripts are breaking or not functioning correctly. This only started happening this morning.

Thanks - what version of F3 are you using? (just to be sure)

Share this post


Link to post
Share on other sites
Thanks - what version of F3 are you using? (just to be sure)

Latest version as of Sunday, 25.

---------- Post added at 20:11 ---------- Previous post was at 20:06 ----------

Status update. BTC is currently broken. Not sure if its conflict issues or not with F3 Framework.

Share this post


Link to post
Share on other sites

Great work Fer. I was looking forward to a stable F3 and now I seem to have one :)

Published my first two F3 missions using EOD on the Steam workshop. 'Adv140 Gravy Train' and 'Co19 Solar Disarray'.

No errors to report except for ACRE related stuff, and a couple of these (which I suspect are not F3 related!):

soldier[i_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?

soldier[i_Soldier_AR_F]:Some of magazines weren't stored in soldier Vest or Uniform?

soldier[i_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?

soldier[i_Soldier_AT_F]:Some of magazines weren't stored in soldier Vest or Uniform?

Share this post


Link to post
Share on other sites

Arctor

Those are related to the new uniform limits in the development build. You can't put as much gear on a soldier any more.

Share this post


Link to post
Share on other sites

The ACRE related errors are from the mod itself. You can get around it though if you aren't using the 148 UHF radios. Comment out the following line in fa_ACRE_setFrequencies.sqf:

// _ret = ["ACRE_PRC148_UHF", _longRangeChannels ] call acre_api_fnc_setDefaultChannels;

Share this post


Link to post
Share on other sites

Please sign in to comment

You will be able to leave a comment after signing in



Sign In Now

×