Jump to content

Recommended Posts

gf-missions-script-version-10-preview_4.

GF Missions Script

by

 

GEORGE FLOROS [GR]

 

 

Description:

GF Mission Script , configurable script.
You are free to do anything but i would like to give me Credits for this!
Simple and easy to use and adapt .
Have Fun !

 


Installation / Usage:

For usage instructions and information of how to use the GF Mission Script please refer to the included documentation and/or example mission.

Place in your mission the files . There is everything included , in the init.sqf and description.ext , to copy paste in your mission .

https://community.bistudio.com/wiki/SQF_syntax
Don't try to open this with the simple notepad.

For everything that is with comment // in front or between /*
means that it is disabled , so there is no need to delete the extra lines.

You can open this ex:
with notepad++
https://notepad-plus-plus.org/

and also use the extra pluggins
(this way will be better , it will give also some certain colours to be able to detect ex. problems )
http://www.armaholic.com/page.php?id=8680

or use any other program for editing .

For the Compilation List of my GF Scripts , you can search in:

https://forums.bohemia.net/forums/topic/215850-compilation-list-of-my-gf-scripts/

 


Notes:

This is a standalone Mission Pack , that will give more depth in a mission.
It is working in every map. It will generate missions on random.
This script is also including DAC Script version.
** CAUTION **
The player variable names , must start with : s_1 , s_2 and so on up to s_70.
Otherwise , they must be defined in the DAC/DAC_Config_Creator.sqf

Feel free everyone , to post your missions (scripted , MP compatible)
in order to make this Misson Pack bigger !

 


Credits and Thanks to :

Thanks to All script contributors
Thanks to everyone who tries to do the best for this game!
Thanks to BIS for such a great platform .
Thanks to BIS Community and BIS Community Forums .
Thanks to Armaholic Community and Forums .

 


Special Thanks to :

Big thanks to Silola , for his unique DAC mod/script.
DAC V3.1 (Dynamic-AI-Creator)
https://forums.bohemia.net/forums/topic/167033-dac-v31-dynamic-ai-creator-released/

 

 

Changelog:

v1.0


Forum topic:
- Armaholic forums http://www.armaholic.com/forums.php?m=posts&q=40207

 

 

Armaholic

GF Missions Script

 

 

Extra usefull information from the topic , will be added at the post below:

 

  • Like 5
  • Thanks 7

Share this post


Link to post
Share on other sites

Feel free everyone to post your missions here (scripted , MP compatible)

in order to make this Misson Pack bigger !

 

Thanks !

 

 

Extra usefull information from the topic , will be added here:

 

 

  • 1. The spawned units amount
Spoiler
On 30/8/2018 at 9:52 PM, GEORGE FLOROS GR said:

For some missions the amount and the quallity of the enemies will be way different from small missions with some enemies to a Clear Sector  mission with about 100 enemies.

The spawned units can be configured - edited , from each mission separate and as for the DAC  missions , you can edit the desired spawn units by editing the:

GF_Missions\Custom_Units_Array.sqf

 

#You don't need to change the DAC_Config_Units.sqf inside DAC

 

 

//________________    DAC Tutorial Readme    ________________
//   http://www.realisticarma.com/images/Bilder/Missionsbau/Skripte/DAC V3.1 Readme.pdf

 

 

To change the number of the units inside the mission scripts for DAC  you need to edit the lines for this.

ex : 20_DAC_Search_Device.sqf

 

Array  : F , G , H , I

 

For nothing use



 [],

 

  Reveal hidden contents



/*
	________________	DAC	________________
	http://www.armaholic.com/page.php?id=25550
	https://forums.bohemia.net/forums/topic/167033-dac-v31-dynamic-ai-creator-released/
*/

_Trigger_DAC = createTrigger ["Trigger_DAC_20", _Group_Pos];

sleep 2;

_DAC_Values = [
//________________	Description	________________

. . . . 



//	F Array to generate Infantry [5,2,50,10] generates Infantry 5 times, size of groups 2, 50 WP altogether, 10 wp per group
[(random(0)+5),3,50,5],

//	G Array to generate Wheeled vehicles [3,2,30,5] generates vehicles 3 times, size of groups 2, 30 WP altogether, 10 wp per group
[(random(0)+2),2,30,5],

//	H Array to generate Tracked vehicles [5,1,40,8] generates tanks 5 times, size of groups 1, 40 WP altogether, 8 WP per group
[(random(0)+1),1,20,5],

//	I Array to generate Helicopters [3,2,5] generates Helicopters 3 times Size of groups 2 (if cargo is used), 5 WP per group
//	or Array to generate DAC camps [1,2,50,0,100,10] generates 1 Camp Size of group 2, radius 50 meters, Vehicles and Infantry, 100%, 10 resapwns
[(random(0)+1),4,5],

 

 

 

For the non DAC Script missions to change the amount of the enemy change this:



//________________ Spawn the Units	________________	

for "_x" from 0 to (random(8)+10) do {

 

 

 

  • Thanks also to @lordfrith   , for his Great example :

 

  • 2. How to start the Missions when the player requests it i.e. by addaction from an officer/satellite phone at a base.
On 8/9/2018 at 8:20 PM, lordfrith said:

EDIT:

here's an example mission, it is just a direct edit of GF original example

 

Spoiler
On 8/9/2018 at 8:20 PM, lordfrith said:

 

cool script! nice variety of missions, challanging too.

 

i wanted the missions to start when the player requests it i.e. by addaction from an officer/satellite phone at a base. If you're interested heres the results of my afternoons messing about :D

 

if GF_Missions_Rolling  is set to 'true' then script will function as before with missions automatically starting.

 

create an object or unit and add this:

Quote

this addAction ["<t color='#0099FF'>Request Mission</t>","GF_Missions\Missions_call.sqf",[],10,true,true,"","true", 3];

 

create the script 'GF_Missions\Missions_call.sqf' and paste this in:

 

  Reveal hidden contents

[GF_Missions_allPlayers,["GF_Missions"],["Have a good Game ! ","GF_Missions",""], objNull,1,1,true,"whiteboard"] call BIS_fnc_taskCreate;
["GF_Missions","ASSIGNED",true] spawn BIS_fnc_taskSetState;

if (count GF_Missions_Array > 0)
    then {
    
_Random_Missions = floor (random count GF_Missions_Array);
_Random_Script = GF_Missions_Array select _Random_Missions;

null = [] execVM _Random_Script;
    
if (!GF_Repeat_Missions)  then {                
GF_Missions_Array = GF_Missions_Array - [_Random_Script];
    
if (GF_Missions_Systemchat_info) then {
systemchat "Next mission is generating";
};

diag_log "//________________ Next GF_Missions is generating    _____________";
        
    };
    }else{    

["GF_Missions","SUCCEEDED",true] spawn BIS_fnc_taskSetState;

if (GF_Missions_Systemchat_info) then {
systemchat "Well done! All the GF_Missions are Complete";
};    

diag_log "//________________ All the GF_Missions are Complete _____________";

sleep 3;

    if (GF_Missions_saveGame) then {
    saveGame;
    };    
};

 

then edit the existing file 'GF_Missions\Missions_init.sqf' thusly (edits in red)

 

  Reveal hidden contents


//________________  Author : GEORGE FLOROS [GR] ___________ 29.08.18 _____________

/*
________________ GF Missions Script ________________

https://forums.bohemia.net/forums/topic/219080-gf-missions-script/

Please keep the Credits or add them to your Diary

https://community.bistudio.com/wiki/SQF_syntax
Don't try to open this with the simple notepad.
For everything that is with comment  //  in front  or between /*
means that it is disabled , so there is no need to delete the extra lines.

You can open this ex:
with notepad++
https://notepad-plus-plus.org/

and also use the extra pluggins
(this way will be better , it will give also some certain colours to be able to detect ex. problems )
http://www.armaholic.com/page.php?id=8680

or use any other program for editing .

For the Compilation List of my GF Scripts , you can search in:
https://forums.bohemia.net/forums/topic/215850-compilation-list-of-my-gf-scripts/
*/


//   https://community.bistudio.com/wiki/Arma_3_Tasks_Overhaul


diag_log "//________________ GF Missions init _____________";

DAC_Basic_Value = 0;
execVM "DAC\DAC_Config_Creator.sqf";
[] execVM "GF_Missions\Custom_Units_Array.sqf";

//________________ Settings _____________
//________________ Set true to delete or false  _____________

GF_Repeat_Missions                        = false;                //    EDIT i made this a global variable. Change this for Non stop.Set this to false , if you are using the DAC missions
GF_Missions_Systemchat_info                = true;                    //    Show Systemchat information
GF_Missions_saveGame                    = true;                    //    Save Game
GF_Missions_Wait_Time                    = 10;                    //     The time to move to the next mission    
GF_Missions_Show_Server_info            = true;                    //    Show Server Systemchat information
GF_Missions_DAC_Area_Spawn_Meters         = (random(350)+350);    //    The size of the area
GF_Missions_Delete_Objects                = true;                    //    Delete the objects with the mission end
GF_Missions_Delete_Objects_Distance        = 2000;                    //     The Distance to Delete the mission's Objects
GF_Missions_Rolling                        = false;                //  ADDED choose wether to have rolling or triggered missions

//________________ The position of the mission    ________________

//    GF_Missions_pos = getPos player;                    //    For test purpose
    GF_Missions_pos = [] call BIS_fnc_randomPos;         //    For random location
//    GF_Missions_pos = getmarkerPos "MarkerName_1";        //    Create a Marker if you want a certain location -

//    or select a random marker ,
//    copy this inside the mission that you want to suffle markers
    _Marker_array =selectRandom[    
            "MarkerName_1",        
            "MarkerName_2",
            "MarkerName_3"            
            ];            
//    GF_Missions_pos = getmarkerPos _Marker_array;        //        Or select a random marker


//________________ Show Server Systemchat information    ________________

if (GF_Missions_Show_Server_info) then {
[] spawn {
    while {true} do {
    _time = diag_tickTime + 10;    //    every  % second
    _i = 0;
    waitUntil {
    sleep 1;
    _i = _i + 1;        
    diag_tickTime >= _time
    };    
    
diag_log format ["FPS : %1    ||    Objects : %2    ||    allUnits : %3",round diag_fps,count allMissionObjects "All",count allUnits,{count _x;}];
systemchat format ["FPS : %1    ||    Objects : %2    ||    allUnits : %3",round diag_fps,count allMissionObjects "All",count allUnits,{count _x;}];    

    };
};
};


GF_Missions_allPlayers = allUnits select {isPlayer _x && {!(_x isKindOf "HeadlessClient_F")}};
GF_Missions_centerPosition = getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition");


GF_Missions_Civilian_Uniform = selectRandom [
"U_OG_Guerilla1_1","U_BG_Guerilla2_2","U_BG_Guerilla2_1","U_BG_Guerilla2_3","U_BG_Guerilla3_1",
"U_BG_leader","U_I_G_resistanceLeader_F","U_Competitor","U_C_HunterBody_grn","U_OrestesBody",
"U_C_Journalist","U_Marshal","U_Rangemaster","U_I_G_Story_Protagonist_F"
];


GF_Missions_Headgear = selectRandom [
            "H_Cap_blk",
            "H_Cap_blk_Raven",
            "H_Cap_blu",
            "H_Cap_brn_SPECOPS",
            "H_Cap_grn",
            "H_Cap_headphones",
            "H_Cap_khaki_specops_UK",
            "H_Cap_oli",
            "H_Cap_press",
            "H_Cap_red",
            "H_Cap_tan",
            "H_Cap_tan_specops_US",
            "H_Watchcap_blk",
            "H_Watchcap_camo",
            "H_Watchcap_khk",
            "H_Watchcap_sgg",
            "H_MilCap_blue",
            "H_MilCap_dgtl",
            "H_MilCap_mcamo",
            "H_MilCap_ocamo",
            "H_MilCap_oucamo",
            "H_MilCap_rucamo",
            "H_Bandanna_camo",
            "H_Bandanna_cbr",
            "H_Bandanna_gry",
            "H_Bandanna_khk",
            "H_Bandanna_khk_hs",
            "H_Bandanna_mcamo",
            "H_Bandanna_sgg",
            "H_Bandanna_surfer",
            "H_Booniehat_dgtl",
            "H_Booniehat_dirty",
            "H_Booniehat_grn",
            "H_Booniehat_indp",
            "H_Booniehat_khk",
            "H_Booniehat_khk_hs",
            "H_Booniehat_mcamo",
            "H_Booniehat_tan",
            "H_Hat_blue",
            "H_Hat_brown",
            "H_Hat_camo",
            "H_Hat_checker",
            "H_Hat_grey",
            "H_Hat_tan",
            "H_StrawHat",
            "H_StrawHat_dark",
            "H_Beret_02",
            "H_Beret_blk",
            "H_Beret_blk_POLICE",
            "H_Beret_brn_SF",
            "H_Beret_Colonel",
            "H_Beret_grn",
            "H_Beret_grn_SF",
            "H_Beret_ocamo",
            "H_Beret_red",
            "H_Shemag_khk",
            "H_Shemag_olive",
            "H_Shemag_olive_hs",
            "H_Shemag_tan",
            "H_ShemagOpen_khk",
            "H_ShemagOpen_tan",
            "H_TurbanO_blk",
            "H_MilCap_tna_F",
            "H_MilCap_ghex_F",
            "H_Booniehat_tna_F",
            "H_Beret_gen_F",
            "H_MilCap_gen_F",
            "H_Cap_oli_Syndikat_F",
            "H_Cap_tan_Syndikat_F",
            "H_Cap_blk_Syndikat_F",
            "H_Cap_grn_Syndikat_F"
];


GF_Missions_Goggles = selectRandom [
            "G_Spectacles",
            "G_Spectacles_Tinted",
            "G_Combat",
            "G_Lowprofile",
            "G_Shades_Black",
            "G_Shades_Green",
            "G_Shades_Red",
            "G_Squares",
            "G_Squares_Tinted",
            "G_Sport_BlackWhite",
            "G_Sport_Blackyellow",
            "G_Sport_Greenblack",
            "G_Sport_Checkered",
            "G_Sport_Red",
            "G_Tactical_Black",
            "G_Aviator",
            "G_Lady_Mirror",
            "G_Lady_Dark",
            "G_Lady_Red",
            "G_Lady_Blue",
            "G_Goggles_VR",
            "G_Balaclava_blk",
            "G_Balaclava_oli",
            "G_Balaclava_combat",
            "G_Balaclava_lowprofile",
            "G_Bandanna_blk",
            "G_Bandanna_oli",
            "G_Bandanna_khk",
            "G_Bandanna_tan",
            "G_Bandanna_beast",
            "G_Bandanna_shades",
            "G_Bandanna_sport",
            "G_Bandanna_aviator",
            "G_Shades_Blue",
            "G_Sport_Blackred",
            "G_Tactical_Clear",
            "G_Balaclava_TI_blk_F",
            "G_Balaclava_TI_tna_F",
            "G_Balaclava_TI_G_blk_F",
            "G_Balaclava_TI_G_tna_F",
            "G_Combat_Goggles_tna_F"
];


//________________    Type of _weapons    ________________
GF_Missions_weapons = selectRandom [
            //LightMachineGuns
            "arifle_MX_SW_Black_F",
            "arifle_MX_SW_F",
            "LMG_Mk200_F",
            "LMG_Zafir_F",
            "LMG_03_F",                
            "MMG_01_hex_F",
            "MMG_01_tan_F",
            "MMG_02_black_F",
            "MMG_02_camo_F",
            "MMG_02_sand_F",
            //Apex
            "LMG_03_F",

            //AssaultRifles
            "arifle_Katiba_C_F",
            "arifle_Katiba_F",
            "arifle_Katiba_GL_F",
            "arifle_Mk20_F",
            "arifle_Mk20_GL_F",
            "arifle_Mk20_GL_plain_F",
            "arifle_Mk20_plain_F",
            "arifle_Mk20C_F",
            "arifle_Mk20C_plain_F",
            "arifle_MX_Black_F",
            "arifle_MX_F",
            "arifle_MX_GL_Black_F",
            "arifle_MX_GL_F",
            "arifle_MXC_Black_F",
            "arifle_MXC_F",
            "arifle_SDAR_F",
            "arifle_TRG20_F",
            "arifle_TRG21_F",
            "arifle_TRG21_GL_F",            
            //Apex AssaultRifles
            "arifle_AK12_F",
            "arifle_AK12_GL_F",
            "arifle_AKM_F",
            "arifle_AKM_FL_F",
            "arifle_AKS_F",
            //AK x2
            "arifle_AK12_F",
            "arifle_AK12_GL_F",
            "arifle_AKM_F",
            "arifle_AKM_FL_F",
            "arifle_AKS_F",
            //
            "arifle_ARX_blk_F",
            "arifle_ARX_ghex_F",
            "arifle_ARX_hex_F",
            "arifle_CTAR_blk_F",
            "arifle_CTAR_hex_F",
            "arifle_CTAR_ghex_F",
            "arifle_CTAR_GL_blk_F",
            "arifle_CTARS_blk_F",
            "arifle_CTARS_hex_F",
            "arifle_CTARS_ghex_F",
            "arifle_SPAR_01_blk_F",
            "arifle_SPAR_01_khk_F",
            "arifle_SPAR_01_snd_F",
            "arifle_SPAR_01_GL_blk_F",
            "arifle_SPAR_01_GL_khk_F",
            "arifle_SPAR_01_GL_snd_F",
            "arifle_SPAR_02_blk_F",
            "arifle_SPAR_02_khk_F",
            "arifle_SPAR_02_snd_F",            
            "arifle_SPAR_03_blk_F",
            "arifle_SPAR_03_khk_F",
            "arifle_SPAR_03_snd_F",
            "arifle_MX_khk_F",
            "arifle_MX_GL_khk_F",
            "arifle_MXC_khk_F",
            "arifle_MXM_khk_F",

            //SniperRifles
            "arifle_MXM_Black_F",
            "arifle_MXM_F",
            "srifle_DMR_01_F",
            "srifle_DMR_02_camo_F",
            "srifle_DMR_02_F",
            "srifle_DMR_02_sniper_F",
            "srifle_DMR_03_F",
            "srifle_DMR_03_khaki_F",
            "srifle_DMR_03_multicam_F",
            "srifle_DMR_03_tan_F",
            "srifle_DMR_03_woodland_F",
            "srifle_DMR_04_F",
            "srifle_DMR_04_Tan_F",
            "srifle_DMR_05_blk_F",
            "srifle_DMR_05_hex_F",
            "srifle_DMR_05_tan_f",
            "srifle_DMR_06_camo_F",
            "srifle_DMR_06_olive_F",
            "srifle_EBR_F",
            "srifle_GM6_camo_F",
            "srifle_GM6_F",
            "srifle_LRR_camo_F",
            "srifle_LRR_F",            
            //Apex SniperRifles
            "srifle_LRR_tna_F",
            "srifle_GM6_ghex_F",
            "srifle_DMR_07_blk_F",
            "srifle_DMR_07_hex_F",
            "srifle_DMR_07_ghex_F"        
            ];

//________________    weapon's mags    ________________
GF_Missions_magazines_weapon = getArray (configFile / "CfgWeapons" / GF_Missions_weapons / "magazines");
GF_Missions_magazine_Class_weapon = GF_Missions_magazines_weapon call bis_fnc_selectRandom;

    

GF_Missions_Vests_array = selectRandom [
            "V_Press_F",
            "V_Rangemaster_belt",
            "V_TacVest_blk",
            "V_TacVest_blk_POLICE",
            "V_TacVest_brn",
            "V_TacVest_camo",
            "V_TacVest_khk",
            "V_TacVest_oli",
            "V_TacVestCamo_khk",
            "V_TacVestIR_blk",
            "V_I_G_resistanceLeader_F",
            "V_BandollierB_blk",
            "V_BandollierB_cbr",
            "V_BandollierB_khk",
            "V_BandollierB_oli",
            "V_BandollierB_rgr",
            "V_Chestrig_blk",
            "V_Chestrig_khk",
            "V_Chestrig_oli",
            "V_Chestrig_rgr",
            "V_HarnessO_brn",
            "V_HarnessO_gry",
            "V_HarnessOGL_brn",
            "V_HarnessOGL_gry",
            "V_HarnessOSpec_brn",
            "V_HarnessOSpec_gry",
            "V_PlateCarrier1_blk",
            "V_PlateCarrier1_rgr",
            "V_PlateCarrier2_rgr",
            "V_PlateCarrier3_rgr",
            "V_PlateCarrierGL_blk",
            "V_PlateCarrierGL_mtp",
            "V_PlateCarrierGL_rgr",
            "V_PlateCarrierH_CTRG",
            "V_PlateCarrierIA1_dgtl",
            "V_PlateCarrierIA2_dgtl",
            "V_PlateCarrierIAGL_dgtl",
            "V_PlateCarrierIAGL_oli",
            "V_PlateCarrierL_CTRG",
            "V_PlateCarrierSpec_blk",
            "V_PlateCarrierSpec_mtp",
            "V_PlateCarrierSpec_rgr",

            "V_TacChestrig_grn_F",
            "V_TacChestrig_oli_F",
            "V_TacChestrig_cbr_F",
            "V_PlateCarrier1_tna_F",
            "V_PlateCarrier2_tna_F",
            "V_PlateCarrierSpec_tna_F",
            "V_PlateCarrierGL_tna_F",
            "V_HarnessO_ghex_F",
            "V_HarnessOGL_ghex_F",
            "V_BandollierB_ghex_F",
            "V_TacVest_gen_F",
            "V_PlateCarrier1_rgr_noflag_F",
            "V_PlateCarrier2_rgr_noflag_F",

            "V_LegStrapBag_black_F",
            "V_Plain_medical_F",
            "V_Plain_crystal_F",
            "V_Pocketed_black_F",
            "V_Pocketed_coyote_F",
            "V_Pocketed_olive_F",
            "V_EOD_blue_F",
            "V_EOD_IDAP_blue_F",
            "V_EOD_coyote_F",
            "V_EOD_olive_F"            
            ];


GF_Missions_Backpacks_array = selectRandom [
            "B_AssaultPack_blk",
            "B_AssaultPack_cbr",
            "B_AssaultPack_dgtl",
            "B_AssaultPack_khk",
            "B_AssaultPack_mcamo",
            "B_AssaultPack_rgr",
            "B_AssaultPack_sgg",
            "B_Bergen_blk",
            "B_Bergen_mcamo",
            "B_Bergen_rgr",
            "B_Bergen_sgg",
            "B_Carryall_cbr",
            "B_Carryall_khk",
            "B_Carryall_mcamo",
            "B_Carryall_ocamo",
            "B_Carryall_oli",
            "B_Carryall_oucamo",
            "B_FieldPack_blk",
            "B_FieldPack_cbr",
            "B_FieldPack_ocamo",
            "B_FieldPack_oucamo",
            "B_HuntingBackpack",
            "B_Kitbag_cbr",
            "B_Kitbag_mcamo",
            "B_Kitbag_sgg",
            "B_OutdoorPack_blk",
            "B_OutdoorPack_blu",
            "B_OutdoorPack_tan",
            "B_TacticalPack_blk",
            "B_TacticalPack_mcamo",
            "B_TacticalPack_ocamo",
            "B_TacticalPack_oli",
            "B_TacticalPack_rgr",

            "B_Bergen_mcamo_F",
            "B_Bergen_dgtl_F",
            "B_Bergen_hex_F",
            "B_Bergen_tna_F",
            "B_AssaultPack_tna_F",
            "B_Carryall_ghex_F",
            "B_FieldPack_ghex_F",
            "B_ViperHarness_blk_F",
            "B_ViperHarness_ghex_F",
            "B_ViperHarness_hex_F",
            "B_ViperHarness_khk_F",
            "B_ViperHarness_oli_F",
            "B_ViperLightHarness_blk_F",
            "B_ViperLightHarness_ghex_F",
            "B_ViperLightHarness_hex_F",
            "B_ViperLightHarness_khk_F",
            "B_ViperLightHarness_oli_F",
            
            "O_HMG_01_high_weapon_F",
            "O_HMG_01_weapon_F",
            "O_GMG_01_high_weapon_F",
            "O_GMG_01_weapon_F",
            "O_Mortar_01_support_F",
            "O_Mortar_01_weapon_F",
            "O_HMG_01_support_high_F",
            "O_HMG_01_support_F",
            "O_AA_01_weapon_F",
            "O_AT_01_weapon_F",
            "O_Static_Designator_02_weapon_F",
            "B_Static_Designator_01_weapon_F",
            
            "B_LegStrapBag_black_F",
            "B_LegStrapBag_coyote_F",
            "B_LegStrapBag_olive_F",
            "B_Messenger_Black_F",
            "B_Messenger_Coyote_F",
            "B_Messenger_IDAP_F",
            "I_UAV_06_backpack_F",
            "O_UAV_06_backpack_F",
            "B_UAV_06_backpack_F"
            ];  


waitUntil {time >2};
// ADDED if() then{}; to mission start script to check if GF_Missions_Rolling = true;
if (GF_Missions_Rolling) then {

        [GF_Missions_allPlayers,["GF_Missions"],["Have a good Game ! ","GF_Missions",""], objNull,1,1,true,"whiteboard"] call BIS_fnc_taskCreate;
        ["GF_Missions","ASSIGNED",true] spawn BIS_fnc_taskSetState;

        if (count GF_Missions_Array > 0)
            then {
    
                _Random_Missions = floor (random count GF_Missions_Array);
                _Random_Script = GF_Missions_Array select _Random_Missions;

                null = [] execVM _Random_Script;
    
                if (!GF_Repeat_Missions)  then {                
                        GF_Missions_Array = GF_Missions_Array - [_Random_Script];
    
                        if (GF_Missions_Systemchat_info) then {
                                systemchat "Next mission is generating";
                        };

                        diag_log "//________________ Next GF_Missions is generating    _____________";
        
                };
        }else{    

                ["GF_Missions","SUCCEEDED",true] spawn BIS_fnc_taskSetState;

                if (GF_Missions_Systemchat_info) then {
                        systemchat "Well done! All the GF_Missions are Complete";
                };    

        diag_log "//________________ All the GF_Missions are Complete _____________";

        sleep 3;

        if (GF_Missions_saveGame) then {
                saveGame;
                };    
        };
} else {
};

 

...and it seeeems to work...

 

EDIT:

here's an example mission, it is just a direct edit of GF original example

 

 

 

  • 3. To change the enemy classnames - faction:
Spoiler
5 minutes ago, GEORGE FLOROS GR said:
9 hours ago, damsous said:

to change the enemy faction i need to change this only in the Custom_Unit_array.sqf or i need to edit also DAC_Config_unit.sqf too ?

 

5 hours ago, Casio91Fin said:

I have always changed in both files

 

Thank you very much Damsous !

 

The Custom_Unit_array.sqf is added by me , in order to be easier to work with the DAC script ( missions ) but also to be easier to apply your selections for the desired units , for the non DAC missions - spawned enemy , at the same .sqf.

 

So , it's not needed to apply any changes to the DAC_Config_unit.sqf

 

If the desired unit - faction , is not on East side , then it need to be changed inside all missions the lines :

 



_DAC_Values = [
//________________    DAC Totorial Readme    ________________
//    http://www.realisticarma.com/images/Bilder/Missionsbau/Skripte/DAC%20V3.1%20Readme.pdf

//_Create_DAC_Zone = ["A",[B,C,D,E],[F],[G],[H],[I],[J,K,L,M,N]] spawn DAC_Zone;


. . .


//    J Zone belongs to Site > 0 = East, 1 = West, 2 = RACS, 3 = civilian (for more see readme page 7)
[0,   

 

A problem here is that i noticed a small instruction error , I have also this line as here:



" I " Zone belongs to Site...

above is now corrected and i will also correct all the dac missions .

 

Here is the error , where there are two "I":

 

DAC V3.1 Short instruction

ecEA4hcWQyONIij5SnOoBw.png

 

So , inspite of getting confused , i will correct this in the next update and also posting this in the dac topic.

 

I'm adding this also to the front page information.

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites

I can't wait to try this. DAC is an excellent choice.

 

DEP is also an excellent way to spawn dynamic AI enemy for missions.

 

Reed

  • Like 1
  • Thanks 2

Share this post


Link to post
Share on other sites
13 hours ago, Jnr4817 said:

DEP is also an excellent way to spawn dynamic AI enemy for missions

Didn't know it...but it looks promising..thank you mate!

  • Like 1

Share this post


Link to post
Share on other sites

awesome man, cant wait to check out the code:)))

i have a similar but maybe simpler project ongoing and might just end up sending you my tasks scripts;)

does this contain a reward system of some sort?

  • Thanks 1

Share this post


Link to post
Share on other sites

Excellent mission set. I can't wait till more are added. You are putting together some very user friendly scripts for mission makers.

 

A few thoughts,

 

It would be nice to have some lobby parameters to adjust.

For example, several of the mission_init and dac_config settings could be changed in the lobby changing the scope of the total game itself.

 

Another cool feature would be the ability to have 1-4 missions pop up at a given time or let the user choose in lobby.

This way a larger group could split task up between squads.

 

These are my humble thoughts.

 

Again great work.

 

 

 

  • Thanks 1

Share this post


Link to post
Share on other sites
9 hours ago, Vandeanson said:

i have a similar but maybe simpler project ongoing and might just end up sending you my tasks scripts;)

does this contain a reward system of some sort?

 

Hello there Vandeanson !

 

Thank you very much !

 

Sure we can work this togethere and include your missions in the mission pack , in order to build a Large Pack !

 

I was thinking, that you can pack all this to a folder called like:

"VD_missions"

 

and include this in my mission pack , as something like "missions  by Vandeanson " <credits>

and we can include more stuff in every next update.

 

I haven't think of a reward system , but generaly it needs to be in a way so , it will work for every map without having to add something in the editor.

 

My thought would be to add something like a traders camp ( especially with Ravage mod ) that will be the place that you will get this reward  ,

or one simple and better thought , in the end of the mission you can add a task "Move to" the certain location where the reward is.

 

What is your thought , about what the reward should be?

 

 

Share this post


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

It would be nice to have some lobby parameters to adjust.

 

Hello there Jnr4817 !

 

Thank you also very much !

 

It is very good idea to have lobby parameters , for everything !

 

I use them almost , with every script when i'm editing a mission , but i never include anything like that in an example mission of a script , to avoid any missunderstanding on how to use this script , in a mision ,where the mission parameters are not existing in the description.ext and they are like :

#include "Mission_Parameters.hpp"

 

When i start editing other missions , i couldn't understand on how all this thing works.

This is why i think , that is better to create this as simple as possible ! 

 

4 hours ago, Jnr4817 said:

Another cool feature would be the ability to have 1-4 missions pop up at a given time

 

This can be done also, but it needs to be an adjusting on the spawned unit's , so that there will be no issue with FPS for the unit's amount.

The DAC Script has an implemented Cashe system for this and if you check with zeus in a distance (configurable ) you can see the teamleader only.

You can notice this , if you have enable the "GF_Missions_Systemchat_info" inside the Missions_init.sqf , that gives you the number of the current units.

 

I will check for the option of generating more missions at the same time and i will tell you.

-Possible maybe just by running twice the

[]execVM "GF_Missions\Missions_init.sqf";

it might be running this way a second mission at the same time. (not tested).

 

Share this post


Link to post
Share on other sites
10 hours ago, RZNUNKWN said:

I got stuck on 'kill the spy' mission, it wouldn't end, maybe I did something wrong because I was in a helicopter and shooting everyone down. Too many units spawning for each assignment. :icon_biggrin: For the 'search device' task, there were like 2 tanks and 3-4 squads and one helicopter.

 

This is posted in Ravage topic:

Spoiler
10 hours ago, RZNUNKWN said:

 

Hey @GEORGE FLOROS GR , this is a nice mission generator.

I got stuck on 'kill the spy' mission, it wouldn't end, maybe I did something wrong because I was in a helicopter and shooting everyone down. Too many units spawning for each assignment. :icon_biggrin: For the 'search device' task, there were like 2 tanks and 3-4 squads and one helicopter. However, it's a really good mission script.

Now, what I thought in Ravage, you could try:

  • spawn a possible intel location that will share some information:
  • friendly AI sharing information about:

 
- to find camps with possible loot, multiple sites, empty or with bandits (maybe traders?)
- find specific loot (military, civilian, industrial) in a specific building (military, civilian, industrial) of course, multiple sites that may or may not contain the loot itself
- possible locations of some vehicles (perhaps something more powerful than a .50cal like GAZ armed with a grenade launcher and machine gun, or even some APC, IFV)
- possible safe zones (zombie blacklisted areas, radiation-free zones, recruiting AI, some ammo, healing etc)
- maybe a possible 'horde invasion' or a bandit attack on a survivors camp where you can help them defend

Just some of my current first thoughts about the Mission Script in the Ravage world.

Anyway, really great Mission Script! Lots of fun!
 

 

 

Hello there RZNUNKWN !

 

Thank you very much !

 

For the spy mission , 1_Eliminate_Spy.sqf

 

you need to find the Spy dead or alive to end the mission.

So , even if you kill everyone from a distance the task will not end.

I did this on purpose in order to have the mission rolling , because it's not really ended with the kill of the spy..!

 

For some missions the amount and the quallity of the enemies will be way different from small missions with some enemies to a Clear Sector  mission with about 100 enemies.

The spawned units can be configured - edited , from each mission separate and as for the DAC  missions , you can edit the desired spawn units by editing the:

GF_Missions\Custom_Units_Array.sqf

 

#You don't need to change the DAC_Config_Units.sqf inside DAC

 

 

//________________    DAC Tutorial Readme    ________________
//   http://www.realisticarma.com/images/Bilder/Missionsbau/Skripte/DAC V3.1 Readme.pdf

 

 

To change the number of the units inside the mission scripts for DAC  you need to edit the lines for this.

ex : 20_DAC_Search_Device.sqf

 

Array  : F , G , H , I

 

For nothing use

 [],

 

Spoiler

/*
	________________	DAC	________________
	http://www.armaholic.com/page.php?id=25550
	https://forums.bohemia.net/forums/topic/167033-dac-v31-dynamic-ai-creator-released/
*/

_Trigger_DAC = createTrigger ["Trigger_DAC_20", _Group_Pos];

sleep 2;

_DAC_Values = [
//________________	Description	________________

. . . . 



//	F Array to generate Infantry [5,2,50,10] generates Infantry 5 times, size of groups 2, 50 WP altogether, 10 wp per group
[(random(0)+5),3,50,5],

//	G Array to generate Wheeled vehicles [3,2,30,5] generates vehicles 3 times, size of groups 2, 30 WP altogether, 10 wp per group
[(random(0)+2),2,30,5],

//	H Array to generate Tracked vehicles [5,1,40,8] generates tanks 5 times, size of groups 1, 40 WP altogether, 8 WP per group
[(random(0)+1),1,20,5],

//	I Array to generate Helicopters [3,2,5] generates Helicopters 3 times Size of groups 2 (if cargo is used), 5 WP per group
//	or Array to generate DAC camps [1,2,50,0,100,10] generates 1 Camp Size of group 2, radius 50 meters, Vehicles and Infantry, 100%, 10 resapwns
[(random(0)+1),4,5],

 

 

 

For the non DAC Script missions to change the amount of the enemy change this:

//________________ Spawn the Units	________________	

for "_x" from 0 to (random(8)+10) do {

 

 

For the Ravage exclusive missions ,

there will be also an extra , seperate folder to get a more suited missions gameplay. !

 

I think that in the next update there will be more stuff !

 

Thanks for all these useful ideas , a lot of these will be included in the update !

 

Soon !

 

 

For anyone who would like to add his mission ( scripted MP compatible )  ,

feel free to send this here in order to include this in the next updates !

 

Thanks !

  • Like 1

Share this post


Link to post
Share on other sites

Can't wait for the Ravage missions! It's going to be awesome! :slayer:

  • Like 1

Share this post


Link to post
Share on other sites
14 hours ago, Vandeanson said:

and might just end up sending you my tasks scripts;)

 

1 hour ago, RZNUNKWN said:

Ravage missions!

 

I also wish for the best !

  • Like 1

Share this post


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

 

Hello there Vandeanson !

 

Thank you very much !

 

Sure we can work this togethere and include your missions in the mission pack , in order to build a Large Pack !

 

I was thinking, that you can pack all this to a folder called like:

"VD_missions"

 

and include this in my mission pack , as something like "missions  by Vandeanson " <credits>

and we can include more stuff in every next update.

 

I haven't think of a reward system , but generaly it needs to be in a way so , it will work for every map without having to add something in the editor.

 

My thought would be to add something like a traders camp ( especially with Ravage mod ) that will be the place that you will get this reward  ,

or one simple and better thought , in the end of the mission you can add a task "Move to" the certain location where the reward is.

 

What is your thought , about what the reward should be?

 

 

i have got a simple reward system that can be extended easily:

first create a .sqf that selects reward.sqfs: i named it "rewardSelection.sqf" with below code:

 

this .sqf needs to be executed every time a task is completed.

Spoiler

_rndReward = selectRandom
[
"reward1.sqf",
"reward2.sqf",
"reward3.sqf",
"reward4.sqf",
"reward5.sqf"
];

[] execVM _rndReward;

 

 

then create a .sqf for every type of reward, currently i got the following "reward1.sqf" - "reward5.sqf" with below code:

e.g. a random amount of rvg money

Spoiler


		_item = selectRandom ItemArrayCurrency;

		lootbox1 additemCargoGlobal [_item, 1 + random 15];
sleep 1;
hint "Reward placed";

 

or a random weapon attachement

Spoiler


		_item = selectRandom ItemArrayWeapAtt;

		lootbox1 additemCargoGlobal [_item, 1 +random 1];
sleep 1;
hint "Reward placed";

 

or a weapon and matching mags

Spoiler


		_item = selectRandom WeaponArrayAll;
		_magazines = getArray (configFile >> "CfgWeapons" >> _item >> "magazines");
		_item2 = selectRandom _magazines;
				lootbox1 addMagazineCargoGlobal [_item2, 1 +random 3];
	lootbox1 addWeaponCargoGlobal [_item, 1 +random 1];
sleep 1;
hint "Reward placed";

 

OR a random ravage item

Spoiler

		_item = selectRandom ItemArrayAll;

		lootbox1 additemCargoGlobal [_item, 1 +random 1];
sleep 1;
hint "Reward placed";

 

 

 

Or just magazines for a random weapon:

Spoiler

_weapon = selectRandom WeaponArrayAll;
_magazines = getArray (configFile >> "CfgWeapons" >> _weapon >> "magazines");
_item = selectRandom _magazines;
		lootbox1 addMagazineCargoGlobal [_item, 1 +random 3];
sleep 1;
hint "Reward placed";

 

 

Lootbox1 refers to a persistent lootbox i spawn that the player has in his base (it can be dragged arround=):

Spoiler

_lootbox = "Box_FIA_Support_F" createVehicle getPos player;
_lootbox setVehicleVarName "lootbox1"; lootbox1 = _lootbox;
clearMagazineCargoGlobal _lootbox;
clearWeaponCargoGlobal _lootbox;
clearItemCargoGlobal _lootbox;
clearBackpackCargoGlobal _lootbox;
_lootbox allowDamage false;
//lootbox1 addaction ["Drag","call Movebox"];
[lootbox1, "Drag","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","_this distance _target < 3","_caller distance _target < 3",{},{},{call Movebox;},{},[],5,0,false,false] call bis_fnc_holdActionAdd;


Movebox = {
lootbox1 attachto [Player];
removeallactions lootbox1;
player playAction "GrabDrag";
player forceWalk true;
//lootbox1 addaction ["Drop","call Dropbox"];
[lootbox1, "Drop","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","_this distance _target < 3","_caller distance _target < 3",{},{},{call Dropbox;},{},[],5,0,false,false] call bis_fnc_holdActionAdd;

};

Dropbox = {
detach lootbox1;
player forceWalk false;
player switchmove "";
removeallactions lootbox1;
[lootbox1, "Drag","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","\a3\ui_f\data\IGUI\Cfg\holdactions\holdAction_search_ca.paa","_this distance _target < 3","_caller distance _target < 3",{},{},{call Movebox;},{},[],5,0,false,false] call bis_fnc_holdActionAdd;
};

 

put this into a .sqf and call it however you like (eg add as addaction to player so  he can spawn it wherever he likes initially)

 

having a lootbox where all the rewards go to, would give an incentive to chose a good place for a camp (e.g. playe fire, respawn tent) to cycle back to and hord some loot ;)

I am working on a adabtation of a nice basebuilding script so you could build a nice hideout=)

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites
2 minutes ago, Vandeanson said:

having a lootbox where all the rewards go to,

 

Vandeanson , this really sounds Great !   :f:

Share this post


Link to post
Share on other sites

Some pics of the missions  with included custom skins and WIP Hostage mission.

 

d7nQ3PJOQeejjDWRGiqFHQ.png

_GJSa5eZQk6kibxAbLAiqA.pngW-gZz4K_TIe6hbknIEGOaA.png

tTf0canmTOGoPfMcQc2nHA.png

Share this post


Link to post
Share on other sites

Can we make the reward system optional? Maybe even off or false by default.

 

Thanks for considering.

  • Like 1

Share this post


Link to post
Share on other sites
21 hours ago, Jnr4817 said:

Can we make the reward system optional?

 

Yes , the key is to be everything easy to reedit - configure and select through !

Share this post


Link to post
Share on other sites

Thanks George Floros, this will be a great addition to my upcoming Napf Winter Ravage mission! I'm just wondering about a couple of things though, how can I disable the DAC missions and only use yours, and can I disable the little information box that pops up in the lower left-hand side with the FPS details and such?

 

Thanks for again for making this!

  • Thanks 1

Share this post


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

this will be a great addition to my upcoming Napf Winter Ravage mission!

 

Hello there ContheJon !

 

Thank you very much !

 

To select only the desired missions you can open the Missions_Array.sqf and comment // the missions that you dont want.

 

It's also prety easy to change the whole values and spawned units of dac by opening the certain dac  mission and do the same as i mentioned above :

 

Spoiler
On 30/8/2018 at 9:52 PM, GEORGE FLOROS GR said:

For some missions the amount and the quallity of the enemies will be way different from small missions with some enemies to a Clear Sector  mission with about 100 enemies.

The spawned units can be configured - edited , from each mission separate and as for the DAC  missions , you can edit the desired spawn units by editing the:

GF_Missions\Custom_Units_Array.sqf

 

#You don't need to change the DAC_Config_Units.sqf inside DAC

 

 

//________________    DAC Tutorial Readme    ________________
//   http://www.realisticarma.com/images/Bilder/Missionsbau/Skripte/DAC V3.1 Readme.pdf

 

 

To change the number of the units inside the mission scripts for DAC  you need to edit the lines for this.

ex : 20_DAC_Search_Device.sqf

 

Array  : F , G , H , I

 

For nothing use



 [],

 

  Reveal hidden contents



/*
	________________	DAC	________________
	http://www.armaholic.com/page.php?id=25550
	https://forums.bohemia.net/forums/topic/167033-dac-v31-dynamic-ai-creator-released/
*/

_Trigger_DAC = createTrigger ["Trigger_DAC_20", _Group_Pos];

sleep 2;

_DAC_Values = [
//________________	Description	________________

. . . . 



//	F Array to generate Infantry [5,2,50,10] generates Infantry 5 times, size of groups 2, 50 WP altogether, 10 wp per group
[(random(0)+5),3,50,5],

//	G Array to generate Wheeled vehicles [3,2,30,5] generates vehicles 3 times, size of groups 2, 30 WP altogether, 10 wp per group
[(random(0)+2),2,30,5],

//	H Array to generate Tracked vehicles [5,1,40,8] generates tanks 5 times, size of groups 1, 40 WP altogether, 8 WP per group
[(random(0)+1),1,20,5],

//	I Array to generate Helicopters [3,2,5] generates Helicopters 3 times Size of groups 2 (if cargo is used), 5 WP per group
//	or Array to generate DAC camps [1,2,50,0,100,10] generates 1 Camp Size of group 2, radius 50 meters, Vehicles and Infantry, 100%, 10 resapwns
[(random(0)+1),4,5],

 

 

 

For the non DAC Script missions to change the amount of the enemy change this:



//________________ Spawn the Units	________________	

for "_x" from 0 to (random(8)+10) do {

 

 

To turn of the systemchat informations , you need to check the options that i have create in the Missions_init.sqf

 

For anything that you might want feel free to ask !

I 'll be waiting for your mission !

 

Thanks again !

  • Thanks 1

Share this post


Link to post
Share on other sites
On 31/8/2018 at 2:14 AM, GEORGE FLOROS GR said:

with included custom skins and WIP Hostage mission.

 

Some improvement !

 

Aua63pMGSYyjntYe_i1w0g.png

  • Like 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

×