Jump to content
bangabob

Enemy occupation system (eos)

Recommended Posts

If you are running a dedicated Server i'd check out ASR_AI or that AI skill mod from Terox. Other than than that you can always run these commands setSkill_array over every spawned unit.

Share this post


Link to post
Share on other sites
If you are running a dedicated Server i'd check out ASR_AI or that AI skill mod from Terox. Other than than that you can always run these commands setSkill_array over every spawned unit.

I'm having the same problem as the other guy, the AI are very accurate. Would ASR_AI actually override the script? I used to run ZEUS AI in ArmA II and it wouldn't override the script. How do I use the setSkill_array on every spawned unit?

Share this post


Link to post
Share on other sites

in the spawn_XXX.sqf files.

example:

_n=0;						
while {_n < _grpSize} do {

	_unitType=_pool select (floor(random(count _pool)));
	_unit = _grp createUnit [_unitType, _pos, [], 0, "FORM"];  
	_n=_n+1;
sleep 0.1;
};


// Maximum values for skills
_skillSet = [
0.25,		// aimingAccuracy
0.45,		// aimingShake
0.6,		// aimingSpeed
05,		// endurance
0.4, 		// spotDistance
0.4,		// spotTime
1,		// courage
1,		// reloadSpeed
1,		// commanding
1		// general
];




{

_unit = _x;
{
 _skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
 _unit setSkill [_x,_skillvalue];
} forEach ['aimingAccuracy','aimingShake','aimingSpeed','endurance','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];

} forEach (units _grp);

that should do it. I didnt test it tho, just came up with it in the forum text edit thing, so excuse possible syntax errors or the code not working.

cheers

Share this post


Link to post
Share on other sites
in the spawn_XXX.sqf files.

example:

_n=0;						
while {_n < _grpSize} do {

	_unitType=_pool select (floor(random(count _pool)));
	_unit = _grp createUnit [_unitType, _pos, [], 0, "FORM"];  
	_n=_n+1;
sleep 0.1;
};


// Maximum values for skills
_skillSet = [
0.25,		// aimingAccuracy
0.45,		// aimingShake
0.6,		// aimingSpeed
05,		// endurance
0.4, 		// spotDistance
0.4,		// spotTime
1,		// courage
1,		// reloadSpeed
1,		// commanding
1		// general
];




{

_unit = _x;
{
 _skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
 _unit setSkill [_x,_skillvalue];
} forEach ['aimingAccuracy','aimingShake','aimingSpeed','endurance','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];

} forEach (units _grp);

that should do it. I didnt test it tho, just came up with it in the forum text edit thing, so excuse possible syntax errors or the code not working.

cheers

Still a little new to this, but I think I got it, I just put that in "Spawn_Infantry.sqf, under the important stuff, and give it a run?

Share this post


Link to post
Share on other sites

you put this part


// Maximum values for skills
_skillSet = [
0.25,        // aimingAccuracy
0.45,        // aimingShake
0.6,        // aimingSpeed
05,        // endurance
0.4,         // spotDistance
0.4,        // spotTime
1,        // courage
1,        // reloadSpeed
1,        // commanding
1        // general
];




{

_unit = _x;
{
 _skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
 _unit setSkill [_x,_skillvalue];
} forEach ['aimingAccuracy','aimingShake','aimingSpeed','endurance','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];

} forEach (units _grp); 

under the part which is above it in the code i included that to make it a little bit more obvious, should be in like lin 32 or so.

Basically after the group and its units have been created.

Share this post


Link to post
Share on other sites
you put this part


// Maximum values for skills
_skillSet = [
0.25,        // aimingAccuracy
0.45,        // aimingShake
0.6,        // aimingSpeed
05,        // endurance
0.4,         // spotDistance
0.4,        // spotTime
1,        // courage
1,        // reloadSpeed
1,        // commanding
1        // general
];




{

_unit = _x;
{
 _skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
 _unit setSkill [_x,_skillvalue];
} forEach ['aimingAccuracy','aimingShake','aimingSpeed','endurance','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];

} forEach (units _grp); 

under the part which is above it in the code i included that to make it a little bit more obvious, should be in like lin 32 or so.

Basically after the group and its units have been created.

I guess I should've checked for duplicate code, going to try just the skill stuff, thanks for the help.

EDIT:

10:53:28 Error in expression <["_newX", "_newY", "_testPos"];
_newX = _posX + (_maxDist - (random (_maxDist * >
10:53:28   Error position: <_posX + (_maxDist - (random (_maxDist * >
10:53:28   Error Undefined variable in expression: _posx

That is repeated constantly in the RPT after I put that in, and the enemies no longer spawn.

EDIT2: Got it, I had to remove _grp

Edited by JDMT

Share this post


Link to post
Share on other sites

Hi !

Thank you sooo much for this scripts ! EOS is gold for me :D

I just want to know if there is a way to make respawn the markers after some hours ?

Exemple : You cleared the area, but after 3 or 4 hours the area come back to red !

that's my goal, but i'm really bad at scripting, if someone can help me a bit !

Thanks again for EOS ! And sorry for my bad english :o

Share this post


Link to post
Share on other sites

does anyone has an EOS 1.92 with massi units on it?

I dont know how to add them. thanks.

Share this post


Link to post
Share on other sites
does anyone has an EOS 1.92 with massi units on it?

I dont know how to add them. thanks.

@Grillob3 - have a look at page 32

Share this post


Link to post
Share on other sites

Here's the Massi African EOS spawn (OpenMe.sqf) that I use;

if (!isServer) exitwith {};

private ["_sqdPool","_unit","_i","_faction","_InfPool","_tempArray","_type","_diverPool","_ArmPool","_MotPool","_ACHPool","_CHPool","_uavPool","_shipPool","_stPool"];

_faction=(_this select 0);

_type=(_this select 1);

_tempArray=[];

_i=0;

switch (_faction) do

{

case 0:{

// EAST CSAT FACTION

_InfPool= ["O_SoldierU_SL_F","O_soldierU_repair_F","O_soldierU_medic_F","O_sniper_F","O_Soldier_A_F","O_Soldier_AA_F","O_Soldier_AAA_F","O_Soldier_AAR_F","O_Soldier_AAT_F","O_Soldier_AR_F","O_Soldier_AT_F","O_soldier_exp_F","O_Soldier_F","O_engineer_F","O_engineer_U_F","O_medic_F","O_recon_exp_F","O_recon_F","O_recon_JTAC_F","O_recon_LAT_F","O_recon_M_F","O_recon_medic_F","O_recon_TL_F"];

_ArmPool= ["O_APC_Tracked_02_AA_F","O_APC_Tracked_02_cannon_F","O_APC_Wheeled_02_rcws_F","O_MBT_02_arty_F","O_MBT_02_cannon_F"];

_MotPool= ["O_MRAP_02_F","O_MRAP_02_gmg_F","O_MRAP_02_hmg_F"];

_ACHPool= ["O_Heli_Attack_02_black_F","O_Heli_Attack_02_F"];

_CHPool= ["O_Heli_Light_02_F","O_Heli_Light_02_unarmed_F"];

_uavPool= ["O_UAV_01_F","O_UAV_02_CAS_F","O_UGV_01_rcws_F"];

_stPool= ["O_Mortar_01_F","O_static_AT_F","O_static_AA_F"];

_shipPool= ["O_Boat_Armed_01_hmg_F"];

_diverPool= ["O_diver_exp_F","O_diver_F","O_diver_TL_F"];

};

// WEST NATO FACTION

case 1:{

_InfPool= ["B_sniper_F","B_Soldier_A_F","B_Soldier_AA_F","B_Soldier_AAA_F","B_Soldier_AAR_F","B_Soldier_AAT_F","B_Soldier_AR_F","B_Soldier_AT_F","B_soldier_exp_F","B_Soldier_F","B_engineer_F","B_medic_F","B_recon_exp_F","B_recon_F","B_recon_JTAC_F","B_recon_LAT_F","B_recon_M_F","B_recon_medic_F","B_recon_TL_F"];

_ArmPool= ["B_MBT_01_arty_F","B_MBT_01_cannon_F","B_MBT_01_mlrs_F","B_APC_Tracked_01_AA_F","B_APC_Tracked_01_CRV_F","B_APC_Tracked_01_rcws_F","B_APC_Wheeled_01_cannon_F","B_MBT_02_cannon_F"];

_MotPool= ["B_Truck_01_covered_F","B_Truck_01_transport_F","B_MRAP_01_F","B_MRAP_01_gmg_F","B_MRAP_01_hmg_F","B_Truck_01_medical_F"];

_ACHPool= ["B_Heli_Attack_01_F","B_Heli_Light_01_armed_F"];

_CHPool= ["B_Heli_Light_01_F","B_Heli_Transport_01_camo_F","B_Heli_Transport_01_F"];

_uavPool= ["B_UAV_01_F","B_UAV_01_CAS_F","B_UGV_01_rcws_F"];

_stPool= ["B_Mortar_01_F","B_static_AT_F","B_static_AA_F"];

_shipPool= ["B_Boat_Armed_01_hmg_F","B_Boat_Transport_01_F"];

_diverPool= ["B_diver_exp_F","O_diver_F","B_diver_TL_F"];

};

// INDEPENDENT AAF FACTION

case 2:{

_InfPool= ["I_engineer_F","I_Soldier_A_F","I_Soldier_AA_F","I_Soldier_AAA_F","I_Soldier_AAR_F","I_Soldier_AAT_F","I_Soldier_AR_F","I_Soldier_AT_F","I_Soldier_exp_F","I_soldier_F","I_Soldier_GL_F","I_Soldier_repair_F"];

_ArmPool= ["I_APC_Wheeled_03_cannon_F"];

_MotPool= ["I_MRAP_03_F","I_MRAP_03_gmg_F","I_MRAP_03_hmg_F","I_Truck_02_medical_F"];

_ACHPool= [];

_CHPool= ["I_Heli_Transport_02_F","B_Heli_Light_02_unarmed_F"];

_uavPool= ["I_UAV_01_F","I_UAV_02_CAS_F","I_UGV_01_rcws_F"];

_stPool= ["I_Mortar_01_F"];

_shipPool= ["I_Boat_Transport_01_F","I_G_Boat_Transport_01_F","I_Boat_Armed_01_minigun_F"];

_diverPool= ["I_diver_exp_F","I_diver_F","I_diver_TL_F"];

};

// CIVILIAN

case 3:{

_InfPool= ["C_man_1","C_man_1_1_F","C_man_1_2_F","C_man_1_3_F","C_man_hunter_1_F","C_man_p_beggar_F","C_man_p_beggar_F_afro","C_man_p_fugitive_F","C_man_p_shorts_1_F","C_man_pilot_F","C_man_polo_1_F","C_man_polo_2_F","C_man_polo_3_F","C_man_polo_4_F","C_man_polo_5_F","C_man_polo_6_F","C_man_shorts_1_F","C_man_shorts_2_F","C_man_shorts_3_F","C_man_shorts_4_F","C_man_w_worker_F"];

_ArmPool= ["C_Hatchback_01_F","C_Hatchback_01_sport_F","C_Quadbike_01_F","C_SUV_01_F","C_Van_01_transport_F","C_Van_01_box_F"];

_MotPool= ["C_Hatchback_01_F","C_Hatchback_01_sport_F","C_Quadbike_01_F","C_SUV_01_F","C_Van_01_transport_F","C_Van_01_box_F"];

_ACHPool= [];

_CHPool= [];

_uavPool= [];

_stPool= [];

_shipPool= ["C_Boat_Civil_01_F","C_Boat_Civil_01_rescue_F","C_Boat_Civil_04_F","C_Rubberboat"];

_diverPool= [];

};

// WEST FIA FACTION

case 4:{

_InfPool= ["B_G_engineer_F","B_G_medic_F","B_G_officer_F","B_G_Soldier_A_F","B_G_Soldier_AR_F","B_G_Soldier_exp_F","B_G_Soldier_F","B_G_Soldier_GL_F","B_G_Soldier_LAT_F","B_G_Soldier_lite_F","B_G_Soldier_M_F","B_G_Soldier_SL_F","B_G_Soldier_TL_F"];

_ArmPool= [];

_MotPool= ["B_G_Offroad_01_F","B_G_Offroad_01_armed_F","B_G_Van_01_transport_F","B_G_Van_01_fuel_F"];

_ACHPool= [];

_CHPool= [];

_uavPool= [];

_stPool= ["B_G_Mortar_01_F"];

_shipPool= ["B_G_Boat_Transport_01_F"];

_diverPool= [];

};

// Africian Rebel Army (EAST)

case 5:{

_InfPool= ["O_mas_afr_Soldier_F","O_mas_afr_Soldier_GL_F","O_mas_afr_soldier_AR_F","O_mas_afr_soldier_MG_F","O_mas_afr_Soldier_lite_F", "O_mas_afr_Soldier_off_F","O_mas_afr_Soldier_SL_F","O_mas_afr_Soldier_TL_Fn","O_mas_afr_soldier_M_F","O_mas_afr_soldier_LAT_F","O_mas_afr_soldier_AT_F","O_mas_afr_soldier_LAA_F","O_mas_afr_medic_F","O_mas_afr_soldier_repair_F","O_mas_afr_soldier_exp_F"];

_ArmPool= ["O_APC_Tracked_02_AA_F","O_APC_Tracked_02_cannon_F"];

_MotPool= ["O_mas_afr_Quadbike_01_F", "O_mas_afr_Offroad_01_F", "O_mas_afr_Offroad_01_armed_F", "O_mas_afr_Offroad_01s_F", "O_mas_afr_Offroad_01s_armed_F", "O_mas_afr_Offroad_01c_F", "O_mas_afr_Offroad_01c_armed_F"];

_ACHPool= [];

_CHPool= ["O_Heli_Light_02_F"];

_uavPool= [];

_stPool= ["O_mas_afr_Mortar_01_F"];

_shipPool= ["O_mas_afr_Boat_Transport_01_F"];

_diverPool= ["O_diver_exp_F","O_diver_F","O_diver_TL_F"];

};

// Armed African Civilians (Rebel supporters) (EAST)

case 6:{

_InfPool= ["O_mas_afr_Rebel1_F","O_mas_afr_Rebel2_F","O_mas_afr_Rebel3_F","O_mas_afr_Rebel4_F","O_mas_afr_Rebel5_F","O_mas_afr_Rebel6_F","O_mas_afr_Rebel6a_F","O_mas_afr_Rebel7_F","O_mas_afr_Rebel8_F","O_mas_afr_Rebel8a_F"];

_ArmPool= [];

_MotPool= ["O_mas_afr_Quadbike_01_F", "O_mas_afr_Offroad_01_F", "O_mas_afr_Offroad_01_armed_F"];

_ACHPool= [];

_CHPool= [];

_uavPool= [];

_stPool= ["O_mas_afr_Mortar_01_F"];

_shipPool= ["O_mas_afr_Boat_Transport_01_F"];

_diverPool= [];

};

// GOVERNMENT ARMY UNITS (REBELS) (GUER)

case 7:{

_InfPool= ["I_mas_afr_Soldier_F", "I_mas_afr_Soldier_GL_F", "I_mas_afr_soldier_AR_F", "I_mas_afr_soldier_MG_F","I_mas_afr_Soldier_lite_F", "I_mas_afr_Soldier_off_F", "I_mas_afr_Soldier_off_Fn", "I_mas_afr_Soldier_SL_F", "I_mas_afr_Soldier_TL_F", "I_mas_afr_soldier_M_F", "I_mas_afr_soldier_LAT_F", "I_mas_afr_soldier_LAA_F", "I_mas_afr_medic_F", "I_mas_afr_soldier_repair_F", "I_mas_afr_soldier_exp_F"];

_ArmPool= [];

_MotPool= ["I_mas_afr_Offroad_01_F", "I_mas_afr_Offroad_01_armed_F", "I_mas_afr_Offroad_01s_F", "I_mas_afr_Offroad_01s_armed_F"];

_ACHPool= [];

_CHPool= [];

_uavPool= [];

_stPool= ["I_mas_afr_Mortar_01_F", "I_mas_afr_static_AT_F", "I_mas_afr_static_AA_F", "I_mas_afr_GMG_01_F", "I_mas_afr_GMG_01_high_F", "I_mas_afr_HMG_01_F", "I_mas_afr_HMG_01_high_F"];

_shipPool= ["I_mas_afr_Boat_Transport_01_F"];

_diverPool= ["I_diver_exp_F","I_diver_F","I_diver_TL_F"];

};

};

switch (_type) do

{

case 0:{_sqdPool=[];for "_i" from 0 to 5 do{_unit=_InfPool select (floor(random(count _InfPool)));_sqdPool = _sqdPool + [_unit];};_tempArray=_sqdPool;};

case 1:{_tempArray=_diverPool};

case 2:{_sqdPool=[];for "_i" from 0 to 5 do{_unit=_InfPool select (floor(random(count _InfPool)));_sqdPool = _sqdPool + [_unit];};_tempUnit=_shipPool select (floor(random(count _shipPool)));_temparray= _temparray + [_tempUnit];_temparray= [_temparray] + [_sqdPool];};

case 3:{_sqdPool=[];for "_i" from 0 to 5 do{_unit=_InfPool select (floor(random(count _InfPool)));_sqdPool = _sqdPool + [_unit];};_tempUnit=_MotPool select (floor(random(count _MotPool)));_temparray= _temparray + [_tempUnit];_temparray= [_temparray] + [_sqdPool];};

case 4:{_tempArray=_ArmPool select (floor(random(count _ArmPool)));};

case 5:{_tempArray=_ACHPool select (floor(random(count _ACHPool)));};

case 6:{_sqdPool=[];for "_i" from 0 to 5 do{_unit=_InfPool select (floor(random(count _InfPool)));_sqdPool = _sqdPool + [_unit];};_tempUnit=_CHPool select (floor(random(count _CHPool)));_temparray= _temparray + [_tempUnit];_temparray= [_temparray] + [_sqdPool];};

case 7:{_tempArray=_stPool select (floor(random(count _stPool)));};

case 8:{_tempArray=_uavPool select (floor(random(count _uavPool)));};

};

Now you may notice that I don't have every single Massi unit in this - I play around with them a bit and also have some units that I spawn with MCC or place on the maps. I also use the BIS divers as well since the Africans don't have them. For some odd reason I can't get the Independent units to spawn - I've used GUER and INDEPENDENT in the spawn trigger but it still doesn't work - so if anyone can figure that out I'd appreciate it.

Share this post


Link to post
Share on other sites

How are you calling your script Serf? Full example would be better. I see a lot of strangeness in the type switch statement but not sure what it's used for unless I see more.

Share this post


Link to post
Share on other sites

Sorry if this was already asked, but im having 2 problems.

When i do a normal EOS, spawned units inside of a town end up dying or just not spawning, leaving me with 2 or 3 guys when i requested 20+.

Also with bastion: It wont get out of debug mod, nor is there any directions on how to disable debug mode.

Any help would be appreciated!

Share this post


Link to post
Share on other sites
Here's the Massi African EOS spawn (OpenMe.sqf) that I use

If you use the dev build, replace the content of the EOS_UnitPools.sqf with 7th_Serf's post above. Make sure to not override the last 2 lines

//hint format ["%1",_tempArray];
_tempArray

(unless it's an empty variable, which I haven't checked. Of course you have to insert the according case for each faction in the call. Excerpt them from 7th_Serf's post above.

Thanks again (publicly) for your help 7th_Serf.;)

___________________________________________________________________________________________________________

To other matters:

1) Is there a comfortable way to really accurately place the grid markers [50, 50]? I get a little fustrated by blinking gaps between markers on the map + it's really tedious work to place them neatly.

2) I am trying to delay the execution of the EOS script until a trigger has fired. So far I have tried to replace 1 marker called "sec_EOSinf" with another marker called "EOSinf". To my dissapointment I have already problems doing so. this is what I put to the on act field of the trigger (just for testing purpose I picked a Marker that doesn't meet the requirements of EOS):

EOS1 = createMarker ["EOSinf",[getMarkerPos "sec_EOSinf" select 0, getMarkerPos "sec_EOSinf" select 1]];
EOS1 setMarkerShape "ICON";   EOS1 setMarkerText "replaced";
EOS1 setMarkerType getMarkerType "sec_EOSinf";
EOS1 setmarkercolor "ColorRED";
EOS1 setMarkerDir 360;
EOS1 setMarkerSize [[getMarkerSize "sec_EOSinf" select 0], [getMarkerSize "sec_EOSinf" select 1]];
deleteMarker "sec_EOSinf";

I am not sure what causes it, but the "EOSinf" is instantly inserted at the mission start and the secondary one is as well instantly deleted. I would really appreciate if someone would be so kind as to take a look on that.

Thanks in advance!

EDIT:

Stupid stupid me! Trigger condition missed "this" on the condition

EDIT2:

so now that I have the marker replacing working using

EOS1 = createMarker ["EOSinf",[getMarkerPos "sec_EOSinf" select 0, getMarkerPos "sec_EOSinf" select 1]];
EOS1 setMarkerShape "RECTANGLE";
EOS1 setMarkerType getMarkerType "sec_EOSinf";
EOS1 setMarkerSize getMarkerSize "sec_EOSinf";
deleteMarker "sec_EOSinf";

I get what I already expected: EOS not recognizing the newly spawned marker.

So here is my request: Please add a loop in EOS to check for markers. It should have a reasonable 'sleep' of course.

I read somewhere in this thread that the original author of EOS doesn't support it anymore? Maybe someone else is capable of trying to help me with this

EDIT3:

So now I've been looking on the front page of this thread and found

[["E1","B1"]] call EOS_Deactivate;

So I thought what can be deactivated can be reactivated as well, but unfortunately this seems not to be the case. The deactivation call simply changes the marker color, so the marker gets permanently unrecognized by EOS.

Seems I am stuck at this point :(

EDIT4:

The logical next step now would be to reverse the effects from the function EOS_deactivate.sqf

if (!isServer) exitwith {};

private ["_mkr"];
	_mkr=(_this select 0);

	//hint format ["%1",_mkr];

{
	_x setmarkercolor "colorblack";
	_x setmarkerAlpha 0;
}foreach _mkr;

Since I am an absolute novice on scripting I can do nothing but try and err. So I changed EOS_deactivate.sqf and saved it as EOS_reactivate.sqf with the following content

if (!isServer) exitwith {};

private [_mkr];
	_mkr=(_this select 0);

	hint format [%1,_mkr];

{
	_x setmarkercolor "Default";
	_x setmarkerAlpha 1;
}foreach _mkr;

this doesn't work... It would be enormously helpful to know what the lines 2-4 do. I commented out /*_x setmarkerAlpha 0;*/ in EOS_deactivate.sqf but the only outcome was that the markers went ColorBLACK instead of vanishing completely

Edited by ProDomo

Share this post


Link to post
Share on other sites
I just tried it with a switch to normal patrol. Curiously, all the squads immediately moved away from the barracks and clustered in the same point each time I tested it before beginning their patrol routes.

Its not an error so much as when I use House Patrols, no one spawns.

Also, I found the right syntax to spawn Independent, thanks.

Please share the proper syntax. Im sure others are looking for the proper way of getting this working. I am one of those people looking for the answer. Thanks!

Share this post


Link to post
Share on other sites

Ok ignore my last post. I have found the location to insert a loop. I just could well use some help with setting it up. I want to create a loop checking for an activated trigger. if the trigger is activated the 3 calls below should be executed ONCE, if not the loop should continue the check. I tried some things out. first I did it like this

...
waitUntil {sleep 5; triggerAcivated trig_EOSon}

exitWith {

null = [["EOSinf","EOSinf_1"],[0,0],[2,1],[0,0],[0,0],[0,0,0],[4,0,250,EAST]] call EOS_Spawn;
null = [["EOSmot_1","EOSmot_2"],[1,1],[1,1],[2,2],[1,0],[0,1,1],[1,0,250,WEST]] call EOS_Spawn;
null = [["BAS_zone_1"],[1,1],[1,1],[1,1],[1,1],[0,0,25,EAST]] call Bastion_Spawn;

};
};

resulting in endless spawning of units (repeated calling of EOS_Spawn). Then I thought of using IF and ELSE, but then I'd need the script to jump back and run anew. Don't know how to do this..

Any help will be greatly appreciated.

EDIT:

I DID IT :yay:

scopeName "deadGN";
waituntil {!alive GN};
	if (triggerActivated trig_arrived) exitWith {

null = [["EOSinf","EOSinf_1"],[0,0],[2,1],[0,0],[0,0],[0,0,0],[6,0,250,EAST]] call EOS_Spawn;
null = [["EOSmot_1","EOSmot_2"],[1,1],[1,1],[2,2],[1,0],[0,1,1],[1,0,250,WEST]] call EOS_Spawn;
null = [["BAS_zone_1"],[1,1],[1,1],[1,1],[1,1],[0,0,25,EAST]] call Bastion_Spawn;

};
	sleep 5;

	else breakTo "deadGN"

"GN" is an hostile Officer BTW

Edited by ProDomo

Share this post


Link to post
Share on other sites

Hi!

Is it possible to resize a zone IF enemy get inside the marker area? When using sized zones? And how do i do this?

And is it possible to reactivate zones after deactivating them using the same method?

And is it possible to activate a another zone when a zone is captured? (Simulating counterattack)

Share this post


Link to post
Share on other sites

Hi ProDomo !

Really good job ! I was working on this for 2 weeks but no way to find a solution !! And u seems to did it ! It's difficult to me to understand everything (i'm not english) but i will have a look on your post this week, if i understand i have to put this in the "OpenMe.sqf".

Thanks again for sharing this solution. If i can help for something i will try.

[EDIT]

Can you please explain where to put the lines ? And how to use it ? Cause i put it in OpenMe.sqf; in editor i spawned an IA called "GN" and a trigger with condition "!alive GN" blufor present. But nothing appened..

Edited by Katane

Share this post


Link to post
Share on other sites
.. if i understand i have to put this in the "OpenMe.sqf".

Yes that's the right file. This is the complete content of it

EOS_Patrol = compile preprocessfilelinenumbers "eos\Functions\shk_patrol.sqf";EOS_Spawn = compile preprocessfilelinenumbers "eos\EOS\EOS_Launch.sqf";EOS_LightVeh = compile preprocessfilelinenumbers "eos\spawnUnits\Spawn_Vehicle.sqf";EOS_spawnPatrol = compile preprocessfilelinenumbers "eos\spawnUnits\Spawn_Infantry.sqf";EOS_spawnStatic = compile preprocessfilelinenumbers "eos\spawnUnits\Spawn_Static.sqf";callHouseScript = compile preprocessFileLineNumbers "eos\Functions\SHK_buildingpos.sqf";EOS_FILLCARGO = compile preprocessFileLineNumbers "eos\Functions\EOS_Fill_Cargo.sqf";Bastion_Spawn=compile preprocessfilelinenumbers "eos\bastion\b_launch.sqf";EOS_Armour = compile preprocessfilelinenumbers "eos\spawnUnits\Spawn_Armour.sqf";EOS_unit= compile preprocessfilelinenumbers "eos\EOS_UnitPools.sqf";EOS_debug= compile preprocessfilelinenumbers "eos\functions\EOS_debugMarker.sqf";EOS_Deactivate= compile preprocessfilelinenumbers "eos\Functions\EOS_deactivate.sqf";onplayerConnected {[] execVM "eos\Functions\EOS_Markers.sqf";};
IF (isnil "server")then{hint "YOU MUST PLACE A GAME LOGIC NAMED SERVER!";};
// EOS 1.9 by BangaBob 
//
// GROUP SIZES
// 0 = 0
// 1 = 2,4
// 2 = 4,8
// 3 = 8,12
// 4 = 12,16
// 5 = 16,20
//
// EXAMPLE CALL - EOS
// null = [["m1"],[1,2],[2,1],[1,4],[2,0],[0,1,1],[0,0,300]] call EOS_Spawn;
// null=[["M1","M2","M3"],[HOUSE GROUPS,SIZE OF GROUPS],[PATROL GROUPS,SIZE OF GROUPS],[LIGHT VEHICLES,SIZE OF CARGO],[ARMOURED VEHICLES,SIZE OF GROUPS],[sTATIC VEHICLES,HELICOPTERS,SIZE OF HELICOPTER CARGO],[sIDE,MARKERTYPE,DISTANCE]] call EOS_Spawn;
//
// EXAMPLE CALL - BASTION
// null=[["m1"],[1,1],[1,1],[1,1],[1,1],[2,0,25]] call Bastion_Spawn;
// null=[["M1","M2","M3"],[PATROL GROUPS,SIZE OF GROUPS],[LIGHT VEHICLES,SIZE OF CARGO],[ARMOURED VEHICLES,SIZE OF GROUPS],[HELICOPTERS,SIZE OF HELICOPTER CARGO],[sIDE,MARKERTYPE,DISTANCE]] call Bastion_Spawn;
////////////////////////////////////////////////////////////////////////////////////////////
[color="#0000CD"]scopeName "deadGN";
waituntil [color="#00FF00"]{!alive GN}[/color];
	if [color="#DDA0DD"](triggerActivated trig_arrived)[/color] exitWith {[/color]

[color="#FF0000"] null = [["EOSinf","EOSinf_1"],[0,0],[2,1],[0,0],[0,0],[0,0,0],[6,0,250,EAST]] call EOS_Spawn;
null = [["EOSmot_1","EOSmot_2"],[1,1],[1,1],[2,2],[1,0],[0,1,1],[1,0,250,WEST]] call EOS_Spawn;
null = [["BAS_zone_1"],[1,1],[1,1],[1,1],[1,1],[0,0,25,EAST]] call Bastion_Spawn;[/color]

[color="#0000CD"]};
	sleep 5;

	else breakTo "deadGN"[/color]

Note that I have yet to find a way to have the markers be invisible BEFORE EOS is set active. Any Ideas on that are very welcome!

The parts of it I marked red are the usual config lines to set up EOS to your liking; marked blue is my little editing.

Of course you can insert any other condition you prefer instead of {!alive _target}. The same goes for (triggerActivated trig_arrived). This was just from my testing mission. I believe though, if you take an activated trigger for the first condition, you might end up with an endless spawning of units, because once a trigger is activated it will be activated forever unless it is on purpose deactivated by any means. this is the sole reason why I put in 2 conditions at all.

...i spawned an IA called "GN" and a trigger with condition "!alive GN" blufor present. But nothing appened..

Most likely you did not have the trigger "trig_arrived" in your mission. In my setup both GN needs to be dead AND the trigger "trig_arrived" needs to be activated.

EDIT:

I just re-read your post and there is no need of the trigger you have set. If GN is dead, the scipt will notice that already

Edited by ProDomo

Share this post


Link to post
Share on other sites

Did anybody ever figure out a fix for units spawning in the center of a marker and blowing up?

Share this post


Link to post
Share on other sites

Ok i will try it today, and search for make marker invisible before EOS active it. Maybe with create marker ? But in your first post you said that wasn't work. And did you find a way to "reset" the captured area after a delay (like 3 hours) ? Thanks again maybe i'm asking to much !

I have not to much time to work on it, but i will do my best for helping you if i can.

If you want, i found a way to "not save" the vehicle/armoured/static when they are destroyed. EOS save all unit you destroy, and when you go away of a non captured area and come back, if you killed 3 man before, the total ennemie count will be "x -3". But i have a methode to not save the vehicle/etc.. like this you can put big random patrol on the map ("x"), and if people destroy 4 of them, go away and come back, the count will stay "x", and not "x -4".

Lol i don't know if my english is easy to read, but i will post the solution later in the day !

[EDIT]

So i tested again and spawn work perfect ! Really nice command.

Now we have to find how to make marker invisible.

So here is what i was speaking before for "not saving vehicles":

OPEN EOS_core.sqf

At line 174 you should have something like "CACHE LIGHT VEHICLES"

Then go to line 179 and you will see this :

if (!alive _vehicle || {!alive _x} foreach _crew) then { _cGrps= _cGrps - 1;};

Simply delete it, and it will not save the light vehicle destruction. What does that mean ? That mean if you come in red area with 5 man and 2 Light vehicle, you kill 3 men and destroy 1 vehicle then you go away before capturing the zone. When you'll come back, EOS will have saved the 2 last man but it will respawn the 2 vehicles.

BUT if you capture the area, vehicle will not respawn.

So you can aplly this to

Light Vehicle (line 179)

Armoured vehicles (line 191)

Statics (line 220)

I didn't try on chopper. And can't find a way to aplly this to infantry unit.

Si here is a tips to make a dinamyc and realistic Random Patrol with EOS script :

Place a big marker covering 5 KM (or more), and spawn something like 3 light vehicles, 2 armoured and 5 statics

Like this the area is really difficult to clear, so patrol will respawn every time you go away and come back.

---

ProDomo -> Do you know a way to reset cleared area after some hours (turing back to red, and have to capture again) ? I think you explained it in your post before, i will give a look.

Edited by Katane

Share this post


Link to post
Share on other sites

Yes i do.

EOS works, but only in a open field.

Its seems if they spawn in a city they just all died.

Any help?

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

×