Jump to content

Recommended Posts

First off thanks for the cool script!  Second, i was wondering if there is an easy way to change the ai to cup ai in the game? i see various folders for addon loadouts including cup but have no idea so far how to use them. Are these loadouts just for playable units, or are they usable for the ai units as well? If so which documentation should i read i n order to change this?  Thanks in advance.

 

  • Thanks 1

Share this post


Link to post
Share on other sites

Hello there WarhammerZeus !

 

Welcome also to Bis Forums !

 

First of all , it's very easy to change the enemy units from the

GF_Missions\Custom_Units_Array.sqf

 

The mission script , is including 3 different spawn script , Dac , Eos and my custom , so i have link everything together inside the Custom_Units_Array.sqf .

 

There is also included the GF_Set_Custom_Loadout script , that you can set your own loadouts without changing any class and this is very configurable and it can be used also depending the side of the unit.

 

This version of GF_Set_Custom_Loadout ,  is including one modified script  for the mission custom spawn script.

 

Check about it and i will be here for anything !

Share this post


Link to post
Share on other sites

I have an issue with 3.0 on the city defense missions not cleaning up properly and skipping to the next one before they're finished leaving the capture zone and AI still placed, but when you clear the area despite the objective not being there anymore, still allows you to clear it and secure the area, but then it launches a second mission off it seems. If I can find the name of the mission doing it I'll post it.

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, Slay No More said:

I have an issue with 3.0

 

Thank you very much Slay , i will check this as well !

Share this post


Link to post
Share on other sites
2 hours ago, GEORGE FLOROS GR said:

 

Thank you very much Slay , i will check this as well !


If I can locate what mission exactly is causing the issue for me I'll comment back with the information, I think its a large clear city mission however.

  • Like 1

Share this post


Link to post
Share on other sites
On 28.11.2018 at 9:02 PM, Casio91Fin said:

(2.) some eos script complains at the beginning of the game.

(Opinion) I think that the EOS script is not working properly. Because it needs to start an enemy in a certain area right away, and does not expect that the task will come sometime after some time. 

- it works by somehow, but every time the task comes there will also be error messages. Is there anything to do with this?

- I do not want to remove this script, because it creates excitement to the game.

  • Like 1

Share this post


Link to post
Share on other sites
50 minutes ago, Casio91Fin said:

there will also be error messages.

 

I know and i need to check more about it ,

because i don't really know what is causing the errors , it works though as intended , but it need further check.

- It might be caused from the randomising numbers of spawn.

 

Thanks for the feedback Casio91Fin !  :f:

  • Like 3

Share this post


Link to post
Share on other sites

Hi George!

 

Happy New Year bro!

 

Word of advice for anyone working with GF Missions:

 

Any SQF file with #include on them like for example: 

 

#include "Missions_Pos_isEmpty.sqf";
#include "Missions_Pos_isFlat.sqf";
#include "Missions_Pos_isFlatEmpty.sqf";
#include "Missions_Pos_isFlatNearRoad.sqf";

 

Are super sensitive to any spelling mistakes and/or even spaces. If you add new files to the list make sure you get the name of the file exactly right or the file will not be read by the game and you will get variable not found errors everywhere. I had to learn this the hard way!

 

Your missions script is a work of art George, it needs just slightly touches to be perfect. I will release a mission soon that uses a simplified version of this and it might blow you away ;)

  • Thanks 1

Share this post


Link to post
Share on other sites
5 hours ago, LSValmont said:

Any SQF file with #include

 

Basically , everytime that you are using a script , you should check for the directory of the executed files , because if there is a script executed with an addaction for ex. then if you change the directory of the folders , it will not match.

 

When you are using #include , you need to add the path from where this is defined.

I don't know if i say this correctly , but i'm sure that you get the point.

 

But why to mess up with the files directory ?

all you need in order to use this , is just :

[]spawn GF_Missions_Pos_isFlatEmpty;

 

# It's sure that there are a lot of codes inside this script that could be better !

 

 

I will be waiting for your mission and for everyhing that you want to ask i'm here to help !

This is after all why the forum existance is !

 

  • Thanks 1

Share this post


Link to post
Share on other sites
19 minutes ago, GEORGE FLOROS GR said:

I don't know if i say this correctly , but i'm sure that you get the point.

But why to mess up with the files directory ?

Yes bro I get it, what I was trying to tell other scripters is that any errors with the #include will not give an error inside the game, it will just not read the whole SQF file as if it did not exist.

 

I renamed GF_Missions_Pos_Tanoa_Airport_Only.sqf to Missions_Pos_Airport and that alone made the whole #includes not work and not even show an error. After lots of trials I found the error.

 

The thing is that I cannot work with long file names so I had to reduce them. And that also has the benefit of reducing the file size of the mission.

 

 

  • Like 1

Share this post


Link to post
Share on other sites
27 minutes ago, GEORGE FLOROS GR said:

# It's sure that there are a lot of codes inside this script that could be better !

 

Well not that much really, after testing your script in Altis as opposed to Stratis it now works very very well!

 

What I cannot get to work are the GF_Missions_Safe_Zone_1 etc. I Set the size to 6200 and cover half the map and I still get missions almost anywhere on Altis... weird... 

  • Like 1

Share this post


Link to post
Share on other sites
4 hours ago, LSValmont said:

I Set the size to 6200

 

Inside the mission init ?

Did you copy the markers from the example mission ?

Have you rename anything?

Share this post


Link to post
Share on other sites
4 hours ago, LSValmont said:

GF_Missions_Safe_Zone_1 etc.

 

Safe zone is the blacklist zone !

Might be this the catch ?!

Share this post


Link to post
Share on other sites
3 hours ago, GEORGE FLOROS GR said:

 

Safe zone is the blacklist zone !

Might be this the catch ?!

I copied everything from your mission and renamed nothing... but I was planning on reducing some long names. 

  • Like 1

Share this post


Link to post
Share on other sites
1 minute ago, LSValmont said:

from your mission

 

The markers from the editor ?

  • Like 1

Share this post


Link to post
Share on other sites
48 minutes ago, GEORGE FLOROS GR said:

 

The markers from the editor ?

yes sir, the little black roundish cross markers that say in their descriptions "Copy and paste me you fool" =)

  • Haha 1

Share this post


Link to post
Share on other sites

Have you test the script as it is in the example mission and change the distance settings from the mission init?

  • Like 1

Share this post


Link to post
Share on other sites
Just now, GEORGE FLOROS GR said:

Have you test the script as it is in the example mission and change the distance settings from the mission init?

 

Yes but not with the 6300 range, will do that now!

  • Like 1

Share this post


Link to post
Share on other sites

This script will be updated , with some small fixes soon !

 

So if you have any suggestions ,

add them below to see if it's possible to do this and also if you have done any missions , i can include them , in order to grow this script more.

 

Thanks !

  • Like 2

Share this post


Link to post
Share on other sites
On 10/1/2019 at 6:50 AM, GEORGE FLOROS GR said:

So if you have any suggestions ,

add them below to see if it's possible to do this and also if you have done any missions , i can include them , in order to grow this script more.

 

You really shouldn't have said that! Hahahaha just kidding!

 

These are some of the things I've changed in your scripts for my missions (These are all examples so don't take them too seriously):

 

1) Shorter names for files and variables: for example "1_Big_Clear_Air_Zone_Helicopters.sqf" becomes "1_ClearAirHelis.sqf" (You don't need big in the name because the file is already in the BIG folder and CLEAR already refers to a ZONE so Zone is gone too).

 

2) Add some new params/variables in Missions_Init.sqf

 

2a): Add GF_Missions_Min_Distance_Players = 1000;

 

This refers to how far away from players missions can spawn. 

 

Currently your positions sqfs use "GF_Missions_Safe_Zone_1" for that but if you set "GF_Missions_Safe_Zone_1" too high in your Missions_Init.sqf then missions will also happen too far away from players. Having two different variables fixes this potential bad behavior.

 

Now in for example "GF_Missions_Pos_isEmpty.sqf":

SO:	//________________	Add Safe Distance from all Players	________________
	(({((_Pos distance _x) <= GF_Missions_Safe_Zone_distance)} count Missions_allPlayers) isEqualTo 0)

BECOMES:
	//________________	Add Safe Distance from all Players	________________
	(({((_Pos distance _x) <= GF_Missions_Min_Distance_Players)} count Missions_allPlayers) isEqualTo 0)

2b) Add this variable to complement "GF_Missions_Attack_Distance = 1500". 

GF_Missions_Ambush_Distance = 800;

 

You see, you use "GF_Missions_Attack_Distance" a lot! And for Attacking vehicles 1500 mtrs is just fine but if you use such far distance for Attacking Infantry (on foot) for example depending on the terrain they might take too long to get to where you want them to attack. Sometimes the player will think there are no more enemies and the mission/task just bugged out but what is really happening is that the "GF_Missions_Spawn_Infantry_Attack" is using: _Pos_Spawn =  [[[_Pos, GF_Missions_Attack_Distance]],["water"]] call BIS_fnc_randomPos; so the enemy infantry spawns 1500 mtrs away and have to climb a hill in between so they take forever to get where the mission is happening. Using GF_Missions_Ambush_Distance = 800; will fix mostly of those instances.

 

3) Use Altis, and not Statis, as your default test scenario: Stratis makes most positions look bad... I spent hours trying to get better positioning on Stratis but then tried your missions script in Altis and all problems solved... so Scripting cannot really fix lazy mapping I guess.

 

4) Add a holdAction to "disable/disarm" the explosive device etc. that is for more mission variety. Several of your missions or even new ones could use or be about disarming dangerous devices!

 

That's all really. The script is amazing and makes adding and/or making new missions extremely easy. I could never get into mission making until I found this!

 

I will soon send you a lite version of your Script that I made for my missions. It ditches EOS and DAC in favor of more simple scripts but that get the job done as well for most missions. 

  • Thanks 1

Share this post


Link to post
Share on other sites
1 hour ago, LSValmont said:

You really shouldn't have said that! Hahahaha just kidding!

Hahahaha !

 

1 hour ago, LSValmont said:

Attacking vehicles 1500 mtrs

I adjusted this in 1500m , in order to have some time to find or manage your defend position , because the infantry might be slow , but there will be infantry transported also in the area with helicopters , paratroopers and vehicles , so the infantry on foot will be the last attack group.

 

For the safe distances , it's very good as you have adjust this and i will follow your example to add this in the update !

 

I 'm using generally Stratis because as i have said , it's a difficult map to work around.

 

I will add some holdactions and i should have already !

 

1 hour ago, LSValmont said:

I will soon send you a lite version of your Script that I made for my missions. It ditches EOS and DAC in favor of more simple scripts but that get the job done as well for most missions. 

 

This sounds very nice and why not !

 

Generally ,

i used first of all the Dac script and it's my favourite so far , but i did't plan to add all this script for spawning unis etc.

 

I could actually use only my custom spawn script ,

but Eos and Dac are really great and another thing is that , there are a lot of guys who are familiar with these scripts and this is why i used them as well, to be easier for everyone to select the spawn method , Dac , Eos and my Custom script.

 

I will be waiting for your version and to be honest i was thinking this as well ,

maybe to include a mod version also with userconfig options.

 

Thank you very much LSValmont for your pointers and everything was right !

- as always !   :thumb:

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites
4 minutes ago, GEORGE FLOROS GR said:

Thank you very much LSValmont for your pointers and everything was right !

- as always !   :thumb:

Hey! After all you have contributed to the Arma 3 community it is the least I could do! Only a bunch of other guys and you keep this section alive and well even after all these years!

 

I will send you my lite version and perhaps you can help me fix my "Safe Areas" not working. 

  • Thanks 1

Share this post


Link to post
Share on other sites

So I was having some issues with the trigger_present waitUntil condition in some missions, actually just the trader camp mission so I replaced this:

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Check Task	________________
	

_Trigger_Present = createTrigger ["EmptyDetector", _Pos_1];
_Trigger_Present setTriggerArea [GF_Missions_Attack_Distance, GF_Missions_Attack_Distance, 0, false];
_Trigger_Present setTriggerActivation ["EAST", "PRESENT", false];
_Trigger_Present setTriggerStatements ["this","",""];

waitUntil {count list _Trigger_Present > 4};		
waitUntil {count list _Trigger_Present < 3};	
waitUntil { { _x distance _Trigger_Present < GF_Missions_Attack_Distance } count GF_Missions_allPlayers > 0 ;};
deleteVehicle _Trigger_Present;
 

With this: 

//________________    Check Task    ________________

waitUntil {sleep 1; (player distance2d _Mission_Pos < 1000)};
hint "you are close to the bandit camp!";

waitUntil {
sleep 1;
_aliveEnemies = allUnits select {(side _x isEqualTo east) && (!isPlayer _x) && (alive _x) && (_x distance2d Missions_pos < 1000) && (_x distance player < 1000)};
_remainigEnemies = (count _aliveEnemies);
(_remainigEnemies < 3 && player distance2d _Mission_Pos < 1000)
};

And it worked like a charm!

I don't know which implementation is more "resource friendly" but it is an alternative I wanted to share with you. (Note how all my waitUntils have a sleep so they only update every 1 second versus a trigger which updates every 0.5 seconds).

  • Thanks 1

Share this post


Link to post
Share on other sites
7 hours ago, LSValmont said:

waitUntil {sleep 1;

 

To be honest some days ago from a post of yours i rememberd that i didn't add any sleep on the waituntill!

So i have fixed this.

 

Yes , it's way better and about the performance i will try to check about it , just to know , it's wrong to use player because it will not work on Dedicated.

  • Thanks 1

Share this post


Link to post
Share on other sites
24 minutes ago, GEORGE FLOROS GR said:

Just to know , it's wrong to use player because it will not work on Dedicated.

 

Thanks! I play mostly on Hosted so I never had any issues with player but you are right! I will fix that assap!


Check out this funny mission:

Spoiler

 


If (Missions_Started) exitWith {systemchat "Another Side Mission Still in Progress";};

Missions_Started = true;

ExplosiveDeviceDisarmed = false;
TechExtracted = false;

sleep Missions_Wait_Time;

//________________	Select the spawn Position	________________

Missions_pos = [] call Missions_Pos_NameLocal;

waitUntil {Missions_pos_initialized};
waitUntil {time >5};

_Pos_1 = Missions_pos;

//________________	Spawn Objects	________________
/*
_Building = createVehicle ["Land_Dome_Big_F", _Pos_1, [], 0, "CAN_COLLIDE"];
_Building setDir (random 360);
*/
//________________ Create _Target_1 ________________

//_Target_Pos =  [[[getPos _Building, 5 + random 5]],["water"]] call BIS_fnc_randomPos;
//_Target_1 = createVehicle ["Land_Device_assembled_F", _Target_Pos, [], 0, "CAN_COLLIDE"];
_Target_1 = "Land_Device_assembled_F" createVehicle _Pos_1;
_Target_1 setDir (random 360);

private _myOwner = owner _Target_1;

[
    _Target_1, 
    "Disarm Explosive Device (30 seconds)", 
    "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",  
    "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",   
    "(_this distance _target < 8)",                                                      
    "_caller distance _target < 8",
    {
	params ["", "_caller", "", ""];
	[_caller] spawn {
		params ["_caller"];
		if (callerAnim) exitWith {};
		callerAnim=true;
		0 = [_caller,"Attempting to Disarm Device!"] remoteExec ["sideChat" ,[0,-2] select isDedicated,false];
		sleep 0.1;
		_caller playAction "PlayerCrouch";
		sleep 1;
		_caller playAction "Medic";
		sleep 3;
		_caller playAction "Medic";
		sleep 4;
		_caller playAction "Medic";		
		sleep 6;
		callerAnim=false;
		};
	},
    {
	//params ["_target", "_caller", "_actionId", "_arguments"];
	hintsilent format ["Disarm Progress :%1 / 24",_this select 4]; 
	}, 
    { 
	params ["_target", "_caller", "_actionId", "_arguments"];
	private _myOwner = _arguments select 0;
	ExplosiveDeviceDisarmed = true;
    _target setDamage 0.6;
	_caller switchMove "";
	0 = [_target, {
		params[ ["_object",objNull,[objNull]] ];
		_object setVariable ["DeviceDisarmed",true,true];
	}] remoteExecCall ["bis_fnc_call", _myOwner];
    _target setVariable ["DeviceDisarmed",true,true];
    }, 
    {}, 
    [_myOwner], 
    30,
    998, 
    true,
    false                                                                        
] remoteExec ["BIS_fnc_holdActionAdd",[0,-2] select isDedicated,_Target_1];

//________________	Spawn Enemies	________________ 

for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Defend;
sleep 3;
};

_possibility = floor (random 10) < 5;

if (_possibility) then {
for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Patrol_Urban;
sleep 3;
};
};

_possibility = floor (random 10) < 3;

if (_possibility) then {
for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Land_Vehicles_Defend;
sleep 3;
};
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Set Task 1	________________

_Mission_Pos =  [[[_Pos_1, 1 + random 1]],["water"]] call BIS_fnc_randomPos;

[west,["DisarmDevice_1","Side Missions"],["We have located an advanced high tech device that the Cult of Z has been using to spread the Z virus among the local population. We believe the device might be nuclear and radioactive so procede with extreme *CAUTION*!","Unknown Device",""], getPos _Target_1,true,1,true,"interact",true] call BIS_fnc_taskCreate;
["DisarmDevice_1","ASSIGNED",true] spawn BIS_fnc_taskSetState;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////	
//________________	Missions_Time_out_mission_fail	________________

if (Missions_Time_out_mission_fail) then {

Missions_Time_Out_Fail = false;
Missions_Time_Out = false;
[] spawn {
sleep Missions_Set_the_sec_for_fail;
Missions_Time_Out_Fail = true;
sleep 80;
Missions_Time_Out = true;
};

[] spawn {
while {!Missions_Time_Out} do {

sleep 50;

if (Missions_Time_Out_Fail) then { 

Missions_Time_Out = true;
Missions_Started = false;

//________________	Set mission_fail	________________

["DisarmDevice_1","FAILED",true] spawn BIS_fnc_taskSetState;
["DisarmDevice_2","FAILED",true] spawn BIS_fnc_taskSetState;

sleep 5;
	
// null = []execVM "missions\Missions_init.sqf";
};
};
};

};
///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Check Task	________________
waitUntil {sleep 1; (player distance2d _Mission_Pos < 500)};
hint "You found the device but its been activated!!! *You have 5 minutes to disable it before it blows up!*";

[_Mission_Pos] spawn {
	_Mission_Pos = _this select 0;
	while {!ExplosiveDeviceDisarmed} do {
	sleep 60;
	hint "4 minutes until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 60;
	hint "3 minutes until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 60;
	hint "2 minutes until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 60;
	hint "1 minutes until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 30;
	hint "30 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 20;
	hint "10 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "9 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "8 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "7 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "6 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};	
	sleep 1;
	hint "5 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "4 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "3 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "2 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "1 seconds until detonation";
	if (ExplosiveDeviceDisarmed) exitWith {hint "Device has been disarmed!};
	sleep 1;
	hint "......................Boom?";
	sleep 1;	
	_bomb = createVehicle ["Bo_GBU12_LGB", _Mission_Pos, [], 0, "CAN_COLLIDE"];
	["DisarmDevice_1","FAILED",true] spawn BIS_fnc_taskSetState;
	["DisarmDevice_2","FAILED",true] spawn BIS_fnc_taskSetState;
	Missions_Time_Out = true;
	Missions_Started = false;
	};
};	

waitUntil {sleep 1; ExplosiveDeviceDisarmed};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Task SUCCEEDED	________________

["DisarmDevice_1", "SUCCEEDED",true] spawn BIS_fnc_taskSetState;			
sleep 5;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Set Task 2	________________

[west,["DisarmDevice_2","Side Missions"],["We succesfully disarmed the device but now the Cultists are aware of our presence and they dont want this tech to fall into our hands, Extract all the info you can get from the device and leave before the enemy reinforcements arrive or get to defensive positions and repel the attack.","Extract Tech",""], getPos _Target_1,true,1,true,"intel",true] call BIS_fnc_taskCreate;
["DisarmDevice_2","ASSIGNED",true] spawn BIS_fnc_taskSetState;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////	

// HoldAction 2 for the Device:

[
    _Target_1, 
    "Extract Tech Info (30 seconds)", 
    "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",  
    "\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_hack_ca.paa",   
    "(_this distance _target < 8)",                                                      
    "_caller distance _target < 8",
    {
	params ["", "_caller", "", ""];
	[_caller] spawn {
		params ["_caller"];
		if (callerAnim) exitWith {};
		callerAnim=true;
		0 = [_caller,"Attempting to Extract Tech!"] remoteExec ["sideChat" ,[0,-2] select isDedicated,false];
		sleep 0.1;
		_caller playAction "PlayerCrouch";
		sleep 1;
		_caller playAction "Medic";
		sleep 3;
		_caller playAction "Medic";
		sleep 4;
		_caller playAction "Medic";		
		sleep 6;
		callerAnim=false;
		};
	},
    {
	//params ["_target", "_caller", "_actionId", "_arguments"];
	hintsilent format ["Extraction Progress :%1 / 24",_this select 4]; 
	}, 
    { 
	params ["_target", "_caller", "_actionId", "_arguments"];
	private _myOwner = _arguments select 0;
	TechExtracted = true;
    _target setDamage 0.6;
	_caller switchMove "";
	0 = [_target, {
		params[ ["_object",objNull,[objNull]] ];
		_object setVariable ["TechExtracted",true,true];
	}] remoteExecCall ["bis_fnc_call", _myOwner];
    _target setVariable ["TechExtracted",true,true];
    }, 
    {}, 
    [_myOwner], 
    30,
    998, 
    true,
    false                                                                        
] remoteExec ["BIS_fnc_holdActionAdd",[0,-2] select isDedicated,_Target_1];

//________________	Spawn Enemies	________________ 

for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Land_Vehicles_Attack;
sleep 3;
};

for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Attack;
sleep 3;
};

_possibility = floor (random 10) < 5;

if (_possibility) then {
for "_i" from 0 to random 1 do {
[] spawn Enemy_Mercs_Attack;
sleep 3;
};
};

_possibility = floor (random 10) < 3;

if (_possibility) then {
for "_i" from 0 to random 1 do {
[] spawn Enemy_Cultists_Helicopters_Transport_Attack;
sleep 3;
};
};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Check Task	________________

waitUntil {sleep 1; TechExtracted};

///////////////////////////////////////////////////////////////////////////////////////////////////////////////
//________________	Task SUCCEEDED	________________

["DisarmDevice_2", "SUCCEEDED",true] spawn BIS_fnc_taskSetState;			
sleep 5;

///////////////////////////////////////////////////////////////////////////////////////////////////////////////

//________________	Mission End	________________

Missions_Time_Out = true;

Missions_Started = false;
	
//null = []execVM "Missions\Missions_init.sqf";
		
sleep 30;
//________________	Delete mission's objects	________________
if (Missions_Delete_Objects) then {
waitUntil { { _x distance _Building > Missions_Delete_Objects_Distance } count Missions_allPlayers > 0 };
systemchat "Delete mission's objects";
{ deleteVehicle _x } forEach [
/*_Building,*/
_Target_1
];
};

 

It uses two HOLDACTIONs on the same "Device", it gets very intense first trying to Disarm the bomb before the time runs out while dealing with enemies and later Extracting the Tech before enemy reinforcements arrive.

 

  • Thanks 1

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

×