Jump to content
bangabob

Enemy occupation system (eos)

Recommended Posts

Been doing a lot of experiments with EoS and I'm loving it so far. Makes a lot of stuff much easier. Only thing I think could use a bit of work is AI vehicle pathing. AI driving is just awful and I see more wrecked vehicles or vehicles being driven on rims than I do good cars :)

Small price to pay for a great script though.

Share this post


Link to post
Share on other sites

I think you're going to be stuck with the pathing. That's not an EOS issue, but part of the BIS coded AI. I'm trying to do some AI work myself, but it's REALLY slow going.

Share this post


Link to post
Share on other sites

Hey, with the new jets, could one simply add the classnames to the proper faction _ACHPool in UnitPools.sqf, or will fixed wing not spawn correctly if used in those arrays?

Share this post


Link to post
Share on other sites

it should work fine with fixed wing, give it a go and see, personally I would only put them in the bastion type zones though

Share this post


Link to post
Share on other sites

Having problems with Bastion Zone - or maybe i don't understand the operation of it?!

Ok my 'player' enters the Bastion zone and the first of 2 waves start. If the 'player' exits the zone the AI despawn, and the Hint says 'Zone lost need to recapture' (or similar). However on re-entering the zone no AI appear because the parameter in the call is set to 'False'. So the zone goes red and no units present. My call line;

null = [["MKR_03"],[2,1],[0,0],[0,0],[0,0],[0,0,EAST,TRUE,TRUE],[5,2,120,FALSE,TRUE]] call Bastion_Spawn;

If i change it to;

null = [["MKR_03"],[2,1],[0,0],[0,0],[0,0],[0,0,EAST,TRUE,TRUE],[5,2,120,TRUE,TRUE]] call Bastion_Spawn;

The included instructions say that area should go to an EOS type zone once the 'player' leaves the zone. So my big question is when the 'player' re-enters the zone, what should happen as it is now an EOS zone? Currently in the simple scenario i have, nothing happens. I was hoping enemy units would spawn but they don't.

Edited by MiniGunDad

Share this post


Link to post
Share on other sites

Would anybody have a mission where EOS spawned AI are managed by an headless client?

We do enjoy EOS a lot but, well, MP performance being what they are we would like to put an HC on duty, we just have no experience though so a working example would be immensely useful.

Thanks for any help you could provide.

Share this post


Link to post
Share on other sites

I was doing a mission:style insurgency , There are about three hundred grid , Use EOS1.98 script , But running on the server , Players are not synchronized , Other mission are right , only this style insurgency mission.

And there are no gunner in vehicle

Share this post


Link to post
Share on other sites

Hey guys,

I Want to use the Russian faction by Sudden.

Do you know how I can Change it or use it????

Share this post


Link to post
Share on other sites

Hello guys.

Complete fresh player of ARMA 3 here, and finding arma better and better every day... Where was I when ARMA 2 was fresh ...

I was lurking in the forums a bit and here goes my first post.

A newbie question but here it goes: Can you help me set up EOS on Stratis map?

byebye and thx!

Share this post


Link to post
Share on other sites

Guys, the PDF contained in the download is well thought out and easy to follow. Your questions can be answered by reading it.

Share this post


Link to post
Share on other sites

There is only ***.altis template in the download if i am not mistaken? Or have I missed something....the newbie I am ....

byebye

Share this post


Link to post
Share on other sites

Mate just open Stratis in the editor, click the merge button and choose Altis and the EOS mission. It will copy it all to Stratis.

Share this post


Link to post
Share on other sites

@-aMI- MoFo : Thx man! Will try!

---------- Post added at 15:57 ---------- Previous post was at 14:25 ----------

@-AMI MoFo: merge not working but solved th problem.

Just copied init.sqf and EOS subfolder from EOS_1_98.Altis template into my own ***.Stratis mission. EOS working nicely BTW!

thx

p.s. I think this script is quite powerful for creating complete whole-terrain live scenarios...

Share this post


Link to post
Share on other sites

I apologize in advance for asking a questions that I'm sure has already been answered in 80+ pages, but a few thread searches and 15 minutes of digging through the thread and I didn't find anything.

Simple question, is there a way to turn off the counting of units that are cached per zone, as in if the players leave and then come back later, the zone respawns the original amount of AI in the zone, and not the count of what was left when the zone despawns?

Share this post


Link to post
Share on other sites
I apologize in advance for asking a questions that I'm sure has already been answered in 80+ pages, but a few thread searches and 15 minutes of digging through the thread and I didn't find anything.

Simple question, is there a way to turn off the counting of units that are cached per zone, as in if the players leave and then come back later, the zone respawns the original amount of AI in the zone, and not the count of what was left when the zone despawns?

Yes. To disable caching of units open EOS\core\EOS_core.sqf

Browse to line 15.

Replace

_cache= if (count _this > 6) then {_this select 6} else {false};

with

_cache=false

Share this post


Link to post
Share on other sites

EDIT: issue solved. in the call, I requested a vehicle to spawn, but there was no vehicle in the faction 5 array in unitpools.sqf.

Error highlighted in red.

Currently encountering a caching problem.

EOS v1.97

I created another faction in UnitPools.sqf.

At the moment there are two factions spawning at the same place ... Civilians and OPFOR (created faction).

When a player leaves the zone, the Civilians de-spawn correctly, but the created OPFOR faction does not de-spawn. The result is AI littered around old EOS zones.

this is the faction that does not despawn

// EAST CSAT URBAN

if (_faction==5) then {

_InfPool= ["O_soldierU_AR_F","O_soldierU_F","O_soldierU_AA_F","O_soldierU_AT_F","O_SoldierU_GL_F","O_soldierU_M_F","O_soldierU_exp_F","O_soldierU_medic_F","O_recon_F"];

_ArmPool= [];

_MotPool= [];

_ACHPool= [];

_CHPool= [];

_uavPool= [];

_stPool= [];

_shipPool= [];

_diverPool= [];};

also getting an error:

21:30:14 Error in expression <rkercolor (getMarkercolor _x);

}foreach _eosMarkers;

>

21:30:14 Error position: <_eosMarkers;

>

21:30:14 Error Undefined variable in expression: _eosmarkers

21:30:14 File mpmissions\__cur_mp.Altis\scripts\eos\Functions\EOS_Markers.sqf, line 5

my EOS_markers.sqf looks like this:

_eosMarkers=server getvariable "EOSmarkers";

{_x setMarkerAlpha (MarkerAlpha _x);

_x setMarkercolor (getMarkercolor _x);

}foreach _eosMarkers;

and this is how they are called/deactivated:

....

mission stuff

....

[[_currentSM],[6,1],[6,1],[1,2],[0,0,0,0],[5,1,1200,EAST]] call EOS_Spawn; // OPFOR

sleep 5;

[[_currentSM],[3,1],[3,1],[0,0],[0,0,0,0],[3,1,1200,EAST]] call EOS_Spawn; // Civ

....

mission stuff

....

sleep 60;

[[_currentSM]] call EOS_deactivate;

Edited by MDCCLXXVI

Share this post


Link to post
Share on other sites
Currently encountering a caching problem.

I created another faction in UnitPools.sqf.

At the moment there are two factions spawning at the same place ... Civilians and OPFOR (created faction).

When a player leaves the zone, the Civilians de-spawn correctly, but the created OPFOR faction does not de-spawn. The result is AI littered around old EOS zones.

this is the faction that does not despawn

I'm not 100% sure, but if you are calling the script two time for the same "marker", it is the problem.

If you want the two faction at the same place, just create two markers, same size same place is ok, but two different markers, one for civ and the other opfor.

I did that error too and finally had to create another marker for civ.

Hope this helps,

Holo

Share this post


Link to post
Share on other sites
I'm not 100% sure, but if you are calling the script two time for the same "marker", it is the problem.

If you want the two faction at the same place, just create two markers, same size same place is ok, but two different markers, one for civ and the other opfor.

I did that error too and finally had to create another marker for civ.

Hope this helps,

Holo

thanks

however it worked just fine and dandy for months. created those missions in Dec.

wondering if maybe the last 1.14 ArmA update may have changed some things. Or, just as likely, in my latest pass at mission coding perhaps I broke some things. ;)

BangaBob if you want to see the whole pbo, let me know.

Edited by MDCCLXXVI

Share this post


Link to post
Share on other sites
Yes. To disable caching of units open EOS\core\EOS_core.sqf

Browse to line 15.

Replace

_cache= if (count _this > 6) then {_this select 6} else {false};

with

_cache=false

Ah, perfect! Also been messing around with randomizing the arrays that I hand EoS, but it doesn't look like you can pass an array. There any way to make something like this work?

markerArrary = ["EOSinf_1","EOSinf_2"];
null = [[markerArray],[2,1],[0,0],[0,0],[0],[0],[0,0],[0,0,250,EAST,TRUE,FALSE]] call EOS_Spawn;

Share this post


Link to post
Share on other sites
Ah, perfect! Also been messing around with randomizing the arrays that I hand EoS, but it doesn't look like you can pass an array. There any way to make something like this work?

markerArrary = ["EOSinf_1","EOSinf_2"];
null = [[markerArray],[2,1],[0,0],[0,0],[0],[0],[0,0],[0,0,250,EAST,TRUE,FALSE]] call EOS_Spawn;

_markerArray = ["EOSinf_1","EOSinf_2","EOSinf_3"] call BIS_fnc_selectRandom;

null = [[_markerArray],[2,1],............]] call EOS_Spawn;

this method may work, however I haven't tried it.

#define ZONE_MARKER "EOSinf_1","EOSinf_2","EOSinf_3"

null = [[[ZONE_MARKER] call BIS_fnc_selectRandom],[2,1],..........]] call EOS_Spawn;

Share this post


Link to post
Share on other sites

Yeah, neither of those will work. What I'm doing is taking one big array of markers, splitting it in half into 2 separate arrays, and then trying to feed those two separate arrays to two separate EoS calls. This way I can randomize what units are spawning in each area. Here's an example of what I'm doing.

strZonesA = ["strZone_0","strZone_1","strZone_2","strZone_3","strZone_4","strZone_5","strZone_6","strZone_7","strZone_8","strZone_9"];
strZonesB = [];

for [{_i=0}, {_i<5}, {_i=_i+1}] do
{
_tmpZone = strZonesA call BIS_fnc_selectRandom;
strZonesB = strZonesB + [_tmpZone];
strZonesA = strZonesA - [_tmpZone];
};

// Strong Zones - Blue
null = [[strZonesA],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[1,1,400,WEST,TRUE,FALSE]] call EOS_Spawn;

sleep 1;
// Strong Zones - Red
null = [[strZonesB],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[0,1,400,EAST,TRUE,FALSE]] call EOS_Spawn;

Edited by Meatball

Share this post


Link to post
Share on other sites
Yeah, neither of those will work. What I'm doing is taking one big array of markers, splitting it in half into 2 separate arrays, and then trying to feed those two separate arrays to two separate EoS calls. This way I can randomize what units are spawning in each area. Here's an example of what I'm doing.

strZonesA = ["strZone_0","strZone_1","strZone_2","strZone_3","strZone_4","strZone_5","strZone_6","strZone_7","strZone_8","strZone_9"];
strZonesB = [];

for [{_i=0}, {_i<5}, {_i=_i+1}] do
{
_tmpZone = strZonesA call BIS_fnc_selectRandom;
strZonesB = strZonesB + [_tmpZone];
strZonesA = strZonesA - [_tmpZone];
};

// Strong Zones - Blue
null = [[strZonesA],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[1,1,400,WEST,TRUE,FALSE]] call EOS_Spawn;

sleep 1;
// Strong Zones - Red
null = [[strZonesB],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[0,1,400,EAST,TRUE,FALSE]] call EOS_Spawn;

Try this. This script will split the original array into two new arrays. Then both of the new arrays will be passed into the EOS code.

private ["_addA","_tmpZone"];

strZonesArray = ["strZone_0","strZone_1","strZone_2","strZone_3","strZone_4","strZone_5","strZone_6","strZone_7","strZone_8","strZone_9"];
strZonesA = [];
strZonesB = [];

_addA=true;


while {(count strZonesArray) > 0} 
do {

_tmpZone = strZonesArray call BIS_fnc_selectRandom;	

	if (_addA) then {	
		strZonesA set [count strZonesA,_tmpZone];
			_addA=false;
				}else{
			strZonesB set [count strZonesB,_tmpZone];
			_addA=true;
				};	
sleep 0.1;
};

// Strong Zones - Blue
{
null = [[_x],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[1,1,400,WEST,TRUE,FALSE]] call EOS_Spawn;
}foreach strZonesA;

// Strong Zones - Red
{
null = [[_x],[3,1,90],[3,3,80],[2,3,70],[1,50],[2,90],[0,0,0],[0,1,400,EAST,TRUE,FALSE]] call EOS_Spawn;
}foreach strZonesB;

Share this post


Link to post
Share on other sites

has anyone experienced unit stacking on multiplayer? I have a small zone that spawned a ton of enemies. i wonder if it spawned units for each of my teammates.

Share this post


Link to post
Share on other sites
has anyone experienced unit stacking on multiplayer? I have a small zone that spawned a ton of enemies. i wonder if it spawned units for each of my teammates.

I have as well, but assumed that I had done something wrong.

The server that I'm building, initially, had the markers with a size of zero (I'm building off of A3 Wasteland). I went through and gave them real sizes, but it seemed to have killed the performance of the A3 scripts.

I'm taking a break because I need to code something with a Raspberry Pi for a gift... I need the "Language Separation", so I'm taking a break from A3.

Share this post


Link to post
Share on other sites

maybe bangabob has addressed it in a prior post, but i cant find it. anyone else have any insight?

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

×