Jump to content
Sign in to follow this  
silola

Dynamic-AI-Creator (DAC) V3.0 released

Recommended Posts

Just copy the whole block and add it for example to "Case 9" like i did for MolatianArmy soldiers:

//-------------------------------------------------------------------------------------------------
case 9:
{
	_Unit_Pool_S = 	[
						"MOL_Rifleman","MOL_officer","MOL_Rifleman","MOL_Medic","MOL_Soldeir_AA","MOL_Rifleman","MOL_Soldier_AT","MOL_Soldier_MG","MOL_Rifleman"
					];
	_Unit_Pool_V = 	[	];
	_Unit_Pool_T = 	[	"ibr_T55"];
	_Unit_Pool_A = 	[	];
}; 

I suggest putting a little description in the line above the unit code ..

//---------------------------------------FFAA Terrorista 1.1 (Mixed) EAST----------------------------------------------------------
case 52:
{
	_Unit_Pool_S = 	[
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_AK",
						"ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG","ffaa_terrorista_agf_AA","ffaa_terrorista_agf_SVD",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_AK",
						"ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG","ffaa_terrorista_agf_AA","ffaa_terrorista_agf_SVD",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","Ural_INS","UAZ_INS",
				"UAZ_MG_INS","Ural_INS","UralOpen_INS","TT650_Ins"];
	_Unit_Pool_T = 	[	];
	_Unit_Pool_A = 	[	 ];
};

.. that way, if you´re going to re-use your old DAC folder for every new mission,

the units config will grow into i nice library - without descriptions that´ll not be fun :D

Having a place to share &/or combine our custom unit.cfg´s would be nice too :turn:

Share this post


Link to post
Share on other sites

Having a place to share &/or combine our custom unit.cfg´s would be nice too :turn:

I totally agree! ;) I already made some with AfricanCivilians (Icebreakr), ACE_Insurgents and the MolatianArmy one which is in the post before.

Share this post


Link to post
Share on other sites

I got FFAA Terrorists & Civilians and a mix of Duala and Jade Groove Units :turn:

//---------------------------------------Jadegrove Raiders (+Duala) EAST----------------------------------------------------------
case 40:
{
	_Unit_Pool_S = 	[
						"Ins_Soldier_Crew","Ins_Soldier_Pilot","Raider_Leader","Raider_Patrolman","Raider_Medic","MOL_Officer",
						"MOL_Rifleman","MOL_Soldier_AT","ibr_rebel125","ibr_rebel145","ibr_rebel95","ibr_rebel22","ibr_rebel66",
						"ibr_rebel77","Ins_Soldier_MG","Raider_Leader","Ins_Soldier_1","Ins_Soldier_2","Ins_Soldier_Sapper"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","UAZ_INS",
				"UAZ_MG_INS","Ural_INS","UralOpen_INS","roadrunner2rai","TT650_Ins"];
	_Unit_Pool_T = 	[	"ibr_T55","BMP2_HQ_INS"];
	_Unit_Pool_A = 	[	 ];
};
//---------------------------------------Jadegrove MFP (+Duala) WEST----------------------------------------------------------
case 41:
{
	_Unit_Pool_S = 	[
						"CDF_Soldier_Crew","CDF_Soldier_Pilot","MFP_Patrolman","AFR_Guard_M9",
						"MFP_Medic","AFR_Guard_M1014","AFR_Soldier_AT","MFP_Patrolman","AFR_Guard_M16",
						"AFR_Soldier_MG","AFR_Medic","AFR_Officer","AFR_Rifleman","CDF_Soldier_AR",
						"CDF_Soldier_Engineer","CDF_Soldier_Militia","CDF_Soldier","CDF_Soldier_TL","CDF_Soldier_RPG"
					];
	_Unit_Pool_V = 	[	"UAZ_CDF","UAZ_MG_CDF","Ural_CDF","UralOpen_CDF","roadrunner2mfp","afr_pinz","afr_pinz_police"];
	_Unit_Pool_T = 	[	"BMP2_HQ_CDF","BRDM2_ATGM_CDF"];
	_Unit_Pool_A = 	[	 ];
};
//---------------------------------------FFAA Terrorista 1.1 (AGF) EAST----------------------------------------------------------
case 50:
{
	_Unit_Pool_S = 	[
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_AK",
						"ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG","ffaa_terrorista_agf_AA","ffaa_terrorista_agf_SVD",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","Ural_INS","UAZ_INS",
				"UAZ_MG_INS","Ural_INS","UralOpen_INS","TT650_Ins"];
	_Unit_Pool_T = 	[	];
	_Unit_Pool_A = 	[	 ];
};
//---------------------------------------FFAA Terrorista 1.1 (HAM) EAST----------------------------------------------------------
case 51:
{
	_Unit_Pool_S = 	[
						"ffaa_terrorista_ham_AK","ffaa_terrorista_ham_Clerigo","ffaa_terrorista_ham_Clerigo","ffaa_terrorista_ham_AK",
						"ffaa_terrorista_ham_PK","ffaa_terrorista_ham_RPG","ffaa_terrorista_ham_AA","ffaa_terrorista_ham_SVD",
						"ffaa_terrorista_ham_AK","ffaa_terrorista_ham_PK","ffaa_terrorista_ham_RPG"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","Ural_INS","UAZ_INS",
				"UAZ_MG_INS","Ural_INS","UralOpen_INS","TT650_Ins"];
	_Unit_Pool_T = 	[	];
	_Unit_Pool_A = 	[	 ];
};
//---------------------------------------FFAA Terrorista 1.1 (Mixed) EAST----------------------------------------------------------
case 52:
{
	_Unit_Pool_S = 	[
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_AK",
						"ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG","ffaa_terrorista_agf_AA","ffaa_terrorista_agf_SVD",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_Clerigo","ffaa_terrorista_agf_AK",
						"ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG","ffaa_terrorista_agf_AA","ffaa_terrorista_agf_SVD",
						"ffaa_terrorista_agf_AK","ffaa_terrorista_agf_PK","ffaa_terrorista_agf_RPG"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","Ural_INS","UAZ_INS",
				"UAZ_MG_INS","Ural_INS","UralOpen_INS","TT650_Ins"];
	_Unit_Pool_T = 	[	];
	_Unit_Pool_A = 	[	 ];
};
//---------------------------------------FFAA Civiles 1.1 (Mixed) CIVI----------------------------------------------------------
case 55:
{
	_Unit_Pool_S = 	[
						"ffaa_civil_agf_4","ffaa_civil_agf_3","ffaa_civil_agf_1","ffaa_civil_agf_2",
						"ffaa_civil_agf_3","ffaa_civil_agf_4","ffaa_civil_agf_5","ffaa_civil_ham_1","ffaa_civil_ham_2",
						"ffaa_civil_ham_3","ffaa_civil_ham_4","ffaa_civil_ham_5"
					];
	_Unit_Pool_V = 	[	"datsun1_civil_2_covered","hilux1_civil_1_open","UralCivil","SkodaBlue","Bus_city","car_sedan","SkodaRed","Skoda","SkodaGreen","datsun1_civil_3_open","car_hatchback"];
	_Unit_Pool_T = 	[	"Tractor","UralCivil","	UralCivil2"];
	_Unit_Pool_A = 	[	 ];
};
//-------------------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites

@burns

Here you got them...

//-------------------------------------------------------------------------------------------------
case 10: //AfricanCivilians
{
	_Unit_Pool_S = 	[
						"ibr_africaman1","ibr_africaman2","ibr_africaman3","ibr_africaman4","ibr_africaman5","ibr_africaman6","ibr_africaman7",
						"ibr_africaman1s","ibr_africaman2s","ibr_africaman3s","ibr_africaman4s","ibr_africaman5s","ibr_africaman6s","ibr_africaman7s"
					];
	_Unit_Pool_V = 	[	"datsun1_civil_2_covered","hilux1_civil_1_open","UralCivil","SkodaBlue","Bus_city","car_sedan","SkodaRed","Skoda","SkodaGreen","datsun1_civil_3_open","car_hatchback"];
	_Unit_Pool_T = 	[	"Tractor","UralCivil","UralCivil2"];
	_Unit_Pool_A = 	[	];
};

//-------------------------------------------------------------------------------------------------
case 11: //ACE_Insurgents
{
	_Unit_Pool_S = 	[
						"ACE_Ins_1_1","ACE_Ins_1_1","ACE_Ins_2_1","ACE_Ins_2_5","ACE_Ins_2_3","ACE_Ins_2_8","ACE_Ins_1_5","ACE_Ins_1_2",
						"ACE_Ins_1_3","ACE_Ins_1_4","ACE_Ins_3_8","ACE_Ins_3_9","ACE_Ins_2_1","ACE_Ins_2_7","ACE_Ins_3_4","ACE_Ins_2_2",
						"ACE_Ins_2_4","ACE_Ins_2_6","ACE_Ins_2_10","ACE_Ins_3_1","ACE_Ins_3_6","ACE_Ins_3_3","ACE_Ins_3_7","ACE_Ins_3_10",
						"ACE_Ins_1_1","ACE_Ins_1_2","ACE_Ins_1_3","ACE_Ins_2_1"
					];
	_Unit_Pool_V = 	[	"Offroad_DSHKM_INS","Pickup_PK_INS","UralOpen_INS","Offroad_DSHKM_INS"];
	_Unit_Pool_T = 	[	"BMP2_INS","BRDM2_INS","BRDM2_ATGM_INS","BMP2_INS""T72_INS","BRDM2_INS","ZSU_INS"];
	_Unit_Pool_A = 	[	"Mi17_Ins"];
};

//-------------------------------------------------------------------------------------------------

Share this post


Link to post
Share on other sites

@Mr Burns - Case 52!? i thought i was doing well on 23!

Ive finally used a lot of those units i downloaded and never used, maybe a DAC CUSTOM CONFIGS thread?

Heres the New Russian Soldiers

//-------------------------------------------------------------------------------------------------

case 13:

{

_Unit_Pool_S = [

"RUS_New_Soldier_AT","RUS_New_Soldier_MG","RUS_New_Soldier_AR","RUS_New_Soldier_Medic",

"RUS_New_Soldier_GL","RUS_New_Soldier_Sniper","RUS_New_Soldier" ];

_Unit_Pool_V = [ "UAZMG","UralOpen_INS","UAZ_RU","UAZ_AGS30_RU","BRDM2_INS","UAZ_MG_INS","GAZ_Vodnik_HMG","GAZ_Vodnik"];

_Unit_Pool_T = [ "T72_RU","ZSU_INS","BMP3","2S6M_Tunguska","T90","BMP3","BTR90"];

_Unit_Pool_A = [ "Mi17_rockets_RU","Ka52","Mi24_V","Mi24_P"];

};

Share this post


Link to post
Share on other sites
@Mr Burns - Case 52!? i thought i was doing well on 23!

Nah .. i just started late, my first entry was 40 - i wanted to avoid having to rewrite all my classes in case i´m going to merge configs with someone elses. Willing to share? :D

Share this post


Link to post
Share on other sites
Willing to share? :D

Sure, i got like a DAC master unit script, its pretty messy though, i need to tidy it up, and ill.... throw it up? :D

Share this post


Link to post
Share on other sites

Hi Silola,

Really love your work! the DAC is pretty awesome and advanced mod to have.

I am particularly loving the AI building behaviour, where the AIs are able to scout and patrol the surrounding buildings. I am wondering whether is it possible to get that behaviour into the action item whereby we are able to order AI to do house to house search?

This might not be directly related to DAC but the behaviour is definately part of DAC. Thanks again!

Share this post


Link to post
Share on other sites

Islamic Republic of Iran Army, might have missed out a heli? not sure...

//--------------------------------------------------------Islamic Republic of Iran Army - 77th Infantry Division-----------------------------------------

case 17:

{

_Unit_Pool_S = [

"IRAN_CON_SOLDIER2","IRAN_MAN_Pilot","IRAN_MAN_Teamleader","IRAN_MAN_Squadleader",

"IRAN_MAN_Grenadier","IRAN_MAN_RTO","IRAN_MAN_ANTITANK","IRAN_MAN_SOLDIER",

"IRAN_MAN_Squadleader","IRAN_MAN_MGUNNER","IRAN_MAN_Grenadier","IRAN_MAN_SOLDIER",

"IRAN_MAN_ANTITANK","IRAN_MAN_Medic"

];

_Unit_Pool_V = [ "GRAD_IRAN","UAZ_IRAN","Ural_ZU23_IRAN","UAZ_SPG9_IRAN","TT650_IRAN","IRAN_M252"];

_Unit_Pool_T = [ "T72_IRAN","T72S_IRAN","IRAN_BTR60","T34_IRAN","IRAN_Boragh"];

_Unit_Pool_A = [ "IRAN_AH1J","Mi17_IRAN","IRAN_AB206"," iran_uh1n"];

};

//--------------------------------------------------------Islamic Republic of Iran Army - 64th Infantry Division-----------------------------------------

case 18:

{

_Unit_Pool_S = [

"IRAN_CON_SOLDIER2","IRAN_MAN_Pilot","IRAN_CON_TL","IRAN_CON_SOLDIER","IRAN_CON_SOLDIER","IRAN_CON_SOLDIER3",

"IRAN_CON_SOLDIER","IRAN_CON_SOLDIER2","IRAN_CON_SOLDIER","IRAN_CON_SOLDIER2",

"IRAN_CON_SOLDIER","IRAN_CON_SOLDIER3","IRAN_CON_SOLDIER2","IRAN_CON_SOLDIER3",

"IRAN_MAN_ANTITANK","IRAN_MAN_Medic"

];

_Unit_Pool_V = [ "GRAD_IRAN","UAZ_IRAN","Ural_ZU23_IRAN","UAZ_SPG9_IRAN","TT650_IRAN","IRAN_M252"];

_Unit_Pool_T = [ "T72_IRAN","T72S_IRAN","IRAN_BTR60","T34_IRAN","IRAN_Boragh"];

_Unit_Pool_A = [ "IRAN_AH1J","Mi17_IRAN","IRAN_AB206"," iran_uh1n"];

};

Edited by Katipo66

Share this post


Link to post
Share on other sites
...maybe a DAC CUSTOM CONFIGS thread?

Hi Katipo66!

Thanks for sharing your unit configurations! I hope more people like us are going to share their work, so i don´t have to copy and paste that much. ;)

Regarding the new thread: I think this is a good idea, so we don´t have to search this whole thread here for offered configs.

Share this post


Link to post
Share on other sites

Sweet as Mike, yeah i hope so too, its a tedious task but rewarding!... ill just start a thread now

Share this post


Link to post
Share on other sites
Sweet as Mike, yeah i hope so too, its a tedious task but rewarding!... ill just start a thread now

How about a full fledged DAC social group?

http://forums.bistudio.com/group.php

That way we can avoid most of the mods wrath, i know they arent looking there as much as they do here hx3_wee.gif

It has some other pros, like not cluttering up the rest of the forums with DAC this and DAC that, it could also serve as a centralized place for everything else that doesn´t fit or would go under in the DAC release thread.

Share this post


Link to post
Share on other sites

Hi :)

@gunterlund:

-------------

Any news about the sector-fight demo mission?

Yes. We are testing a simple sector-fight-mission the last few days,

which I probably release with the DAC script-version.

This mission is a simple example on Everon.

We have much fun with this mission, although very intense, and of course dynamic.

Ok Silola

time to try a new tactic. Implemented the ideas you showed above and again it works for me great if my machine is the server but it took over 300 seconds to create all the zones waypoints etc on my dedi server (vs 40 seconds on my local machine) so Im thinking of a new tactic. Instead of activating zones I want to try creating zones and eliminating some of the initial overhead the system goes through for setup. Now will I run into the same situation about server side implementation of zone creation. Instead of using triggers in the mission Ill need to write scripts like above to create a Zone using the "Call DAC_fNewZone?

Would it be something like

Quote:

waituntil{time > 3};

_list = "list playerTrig";

while{true} do

{

waituntil{(({isPlayer _x} count (call compile _list)) > 0)};

_values = [“z1â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];

[(position1),250,150,0,0,_values] call DAC_fNewZone;

waituntil{DAC_NewZone == 0};

_values = [“z2â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];

[(position2),250,150,0,0,_values] call DAC_fNewZone;

waituntil{DAC_NewZone == 0};

};

How do I exit this loop

For this action you don't need a loop.

If you want to create 2 DAC zones dynamicly during the mission,

after a player unit is reached an area of a special trigger, the script

must look like this:

waituntil{time > 3};
_list = "list playerTrig";
waituntil{(({isPlayer _x} count (call compile _list)) > 0)};
_values = [“z1â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
[(position1),250,150,0,0,_values] call DAC_fNewZone;
waituntil{DAC_NewZone == 0};
_values = [“z2â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
[(position2),250,150,0,0,_values] call DAC_fNewZone;

That's all. The script will exit after the two DAC zones are created.

If you want to create more DAC zones, for example,

you want to create two more zones with another trigger,

the script looks like this (example):

waituntil{time > 3};

_listA = "list playerTrig_A";
_listB = "list playerTrig_B";

waituntil{(({isPlayer _x} count (call compile _listA)) > 0) || (({isPlayer _x} count (call compile _listB)) > 0)};
if(({isPlayer _x} count (call compile _listA)) > 0) then
{
	_values = [“z1â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
	[(position1),250,150,0,0,_values] call DAC_fNewZone;
	waituntil{DAC_NewZone == 0};
	_values = [“z2â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
	[(position2),250,150,0,0,_values] call DAC_fNewZone;
	waituntil{DAC_NewZone == 0};
	waituntil{(({isPlayer _x} count (call compile _listB)) > 0)};

		_values = [“z3â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
		[(position3),250,150,0,0,_values] call DAC_fNewZone;
		waituntil{DAC_NewZone == 0};
		_values = [“z4â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
		[(position4),250,150,0,0,_values] call DAC_fNewZone;
		waituntil{DAC_NewZone == 0};
}
else
{
	_values = [“z3â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
	[(position3),250,150,0,0,_values] call DAC_fNewZone;
	waituntil{DAC_NewZone == 0};
	_values = [“z4â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
	[(position4),250,150,0,0,_values] call DAC_fNewZone;
	waituntil{DAC_NewZone == 0};
	waituntil{(({isPlayer _x} count (call compile _listA)) > 0)};

		_values = [“z1â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
		[(position1),250,150,0,0,_values] call DAC_fNewZone;
		waituntil{DAC_NewZone == 0};
		_values = [“z2â€,[1,0,0],[5,2,50,8],[],[],[],[1,1,1,1]];
		[(position2),250,150,0,0,_values] call DAC_fNewZone;
		waituntil{DAC_NewZone == 0};
};

@andersson:

-------------

Bug?

If I have a camp in a zone I activate after being deactivated only the camp activates, no units are spawned. If I take away the camp the units are spawned (camp version 11, empty).

I can work around it so its no biggie, just information if its not intended this way by you Silola.

andersson, can you send me a small test mission in which I can observe this behavior, because I can not understand this error :rolleyes:

edit: Is there any way to check when a zone/camp is out of units/respawns? I would like to activate a new zone when another zone is empty/low of units. There will be other enemy AI walking around due to overlapping zones so a simple trigger check will not work in my case (unless its possible to check for units from a certain zone?).

Yes, there is a possibility to check the respawn count from a DAC zone.

All the data from the DAC respawn camps are stored within these arrays:

DAC_Spawn_CampsW + DAC_Spawn_CampsE

I can write a little script that helps you to check the count of respawns. Give me some time to make the script and test it.

@Muahaha:

-----------

I am particularly loving the AI building behaviour, where the AIs are able to scout and patrol the surrounding buildings. I am wondering whether is it possible to get that behaviour into the action item whereby we are able to order AI to do house to house search?

Sorry Muahaha, it's not possible at the moment.

Greeting

Silola

Share this post


Link to post
Share on other sites
How about a full fledged DAC social group?

Yep, thats a great idea! :D

Share this post


Link to post
Share on other sites
@andersson:

-------------

andersson, can you send me a small test mission in which I can observe this behavior, because I can not understand this error :rolleyes:

Yes, there is a possibility to check the respawn count from a DAC zone.

All the data from the DAC respawn camps are stored within these arrays:

DAC_Spawn_CampsW + DAC_Spawn_CampsE

I can write a little script that helps you to check the count of respawns. Give me some time to make the script and test it.

Hi and thank you for your reply.

I will probably not have access to my comp in some weeks, but I will try to explain the camp activation issue.

Make a zone, add some paramters so units are spawned there. Add also a camp in that very zone (I used camp version 11 if it matter,didnt test?). When you deactivate that zone all units are deleted and the camp disapears (Im using the markers enabled while Im testing). When I activate that zone the camp marker come back and you can see how many respawns left, but no units are spawned back. If I delete the code for the camp and only have units spawned in the zone they are spawned back on activation after a deactive state.

Hope I managed to explain it enough for you to test...

Good to know about the DAC_Spawn_CampsW/E :D Thank you for that info, will make my life easier!!

And once more, thank you so much for DAC3!! Finally the missions that I need!

Share this post


Link to post
Share on other sites
In the config_units.sqf. There you will find something like this:

//-------------------------------------------------------------------------------------------------
case 8:
{
	_Unit_Pool_S = 	[
						"RU_Soldier_Crew","RU_Soldier_Pilot","RUS_Commander","RUS_Soldier_GL","RUS_Soldier1","RUS_Soldier2",
						"RUS_Soldier_Marksman","RUS_Soldier_TL","RUS_Soldier3","RUS_Soldier1","RUS_Soldier2"
					];
	_Unit_Pool_V = 	[	"UAZ_CDF","UAZ_AGS30_CDF","UAZ_MG_CDF","Ural_CDF","UralOpen_CDF","Ural_ZU23_CDF"];
	_Unit_Pool_T = 	[	"BMP2_CDF","BRDM2_CDF","BRDM2_ATGM_CDF","T72_CDF","ZSU_CDF"];
	_Unit_Pool_A = 	[	"Mi17_CDF","Mi24_D"];
};

Just copy the whole block and add it for example to "Case 9" like i did for MolatianArmy soldiers:

//-------------------------------------------------------------------------------------------------
case 9:
{
	_Unit_Pool_S = 	[
						"MOL_Rifleman","MOL_officer","MOL_Rifleman","MOL_Medic","MOL_Soldeir_AA","MOL_Rifleman","MOL_Soldier_AT","MOL_Soldier_MG","MOL_Rifleman"
					];
	_Unit_Pool_V = 	[	];
	_Unit_Pool_T = 	[	"ibr_T55"];
	_Unit_Pool_A = 	[	];
}; 

After that change the init-line of the zonemarker to the specified case:

nil = ["z1",[1,0,0],[ ],[ ],[ ],[ ],[1,[b][color="Red"]9[/color][/b],0,6,1]] spawn DAC_Zone

That´s all!

thank you much

Share this post


Link to post
Share on other sites

OK Silola

More of my testing.

Created a SP mission with a simple script called landing1.sqf and contains the following;

waituntil{time > 3};

[(Position player),250,150,0,0,["z1",[1,0,0],[5,2,15,5],[],[],[],[0,0,0,0]]] call DAC_fNewZone;

waituntil{DAC_NewZone == 0};

[(Position player),250,150,0,0,["z2",[1,0,0],[5,2,15,5],[],[],[],[1,1,1,1]]] call DAC_fNewZone;

This is executed when blufor goes into a trigger. In the activation line I have nul=execvm "landing1.sqf". Now what happens is z1 is created with 5 squads which should happen. Problem is non of the units move to waypoints.

Second thing is z2 never get created. Why not? and why is no one moving?

Update

If you dont have DAC_Direct_Start = true... nothing happens......DUH well Im learning... now to see if I can get it on a server.

Edited by gunterlund21

Share this post


Link to post
Share on other sites

Hi :)

@gunterlund:

--------------

OK Silola

More of my testing.

Created a SP mission with a simple script called landing1.sqf and contains the following;

Quote:

waituntil{time > 3};

[(Position player),250,150,0,0,["z1",[1,0,0],[5,2,15,5],[],[],[],[0,0,0,0]]] call DAC_fNewZone;

waituntil{DAC_NewZone == 0};

[(Position player),250,150,0,0,["z2",[1,0,0],[5,2,15,5],[],[],[],[1,1,1,1]]] call DAC_fNewZone;

This is executed when blufor goes into a trigger. In the activation line I have nul=execvm "landing1.sqf". Now what happens is z1 is created with 5 squads which should happen. Problem is non of the units move to waypoints.

Second thing is z2 never get created. Why not? and why is no one moving?

I did the same test and for me it works (see picture below)

createzone.jpg

Uploaded with ImageShack.us

As you can see, both zones are created.

My script landing.sqf looks like this (small changes):

waituntil{time > 3};

[(Position player),250,150,0,0,["z10",[10,0,0],[5,2,15,5],[],[],[],[2,2,2,2]]] call DAC_fNewZone;
waituntil{DAC_NewZone == 0};
[(Position player),250,150,0,0,["z20",[20,0,0],[5,2,15,5],[],[],[],[1,1,1,1]]] call DAC_fNewZone; 

Hint: within my test mission I have placed one DAC zone to init the DAC.

@andersson:

-------------

edit: Is there any way to check when a zone/camp is out of units/respawns? I would like to activate a new zone when another zone is empty/low of units. There will be other enemy AI walking around due to overlapping zones so a simple trigger check will not work in my case (unless its possible to check for units from a certain zone?).

I have scripted a solution for you (and maybe for other users).

Example:

There are two zones (z1 + z2) and each zone has one camp with some respawns.

Now you want to check the number of respawns in these camps,

and trigger an action when the respawns all been used up:

action for zone "z1" when all respawns been used up: [z3] call DAC_Activate

(the zone with the name "z3" will be activated)

action for zone "z2" when all respawns been used up: [z4] call DAC_Activate

(the zone with the name "z4" will be activated)

Ok, this is our plan. Now the solution to get this working:

write this into your init.sqf:

DAC_Basic_Value = 0;
waituntil{DAC_Basic_Value > 0};
if(isServer) then {[["z1","[z3] call DAC_Activate"],["z2","[z4] call DAC_Activate"]] execVM "countRespawns.sqf"};

After the DAC is initialized the script countRespawns.sqf is started with 2 parameters (arrays)

Each array contains a zone to check (sting) and an action code.

In this case an action to activate a DAC zone.

And now the script countRespawns.sqf to check the respawn count and fire up an action:

private ["_i","_z","_u","_c","_t","_zones","_action","_curZonePos","_curCampPos"];

_zones = _this;

_i = 0;_z = 0;_u = 0;_c = 0;_t = 0;
_action = count _zones;
_curZonePos = ""; 
_curCampPos = "";

while{_i < count _zones} do
{
_curZonePos	= format[
						"%1",
						((position (call compile ((_zones select _i) select 0))) select 0) +
						((position (call compile ((_zones select _i) select 0))) select 1)
					];
_z = 0;
while{_z < count DAC_Spawn_CampsW} do
{
	_curCampPos	= format[
							"%1",
							(((DAC_Spawn_CampsW select _z) select 0) select 0) +
							(((DAC_Spawn_CampsW select _z) select 0) select 1)
						];

	if(_curZonePos == _curCampPos) then
	{
		(_zones select _i) set [count (_zones select _i), _z];
	};
	_z = _z + 1;
};
_i = _i + 1;
};

sleep 1;

while{_action > 0} do
{
_u = 0;
while{_u < count _zones} do
{
	if(format["%1",((_zones select _u) select 0)] != "EMPTY") then
	{
		_c = 0;_t = 2;
		while{_t < count (_zones select _u)} do
		{
			_c = _c + (((DAC_Spawn_CampsW select ((_zones select _u) select _t)) select 5) select 0);
			_t = _t + 1;
		};
		if(_c == 0) then
		{
			hint format["No respawns left in zone %1",((_zones select _u) select 0)];
			call compile ((_zones select _u) select 1);
			(_zones select _u) set[0, "EMPTY"];
			_action = _action - 1;
		};
	};
	_u = _u + 1;
};
sleep 1;
};

Bug?

If I have a camp in a zone I activate after being deactivated only the camp activates, no units are spawned. If I take away the camp the units are spawned (camp version 11, empty).

I can work around it so its no biggie, just information if its not intended this way by you Silola.

I have tested such a situation, and yes, it is a bug :rolleyes:

What u can do is: generate a separate zone for this camp without additional units ;)

Thx to all for your nice comments :)

Greeting

Silola

Share this post


Link to post
Share on other sites

Damn it, what a helpful post! Thanks Silola!

One more thing:

You, my friend, are a scripting god! The evolution of DAC over the years/games is remarkable. Thanks again for the bestest, most useful mission making scripts ever!

"If ain't DAC, don't even release it" should be the new mission making mantra around here. ;)

Share this post


Link to post
Share on other sites

Hi, something less advanced...

Is it possible to get opfor/blufor zones to share neutral waypoint zones? i dont think its possible out of the box... but its also probable ive missed something.

I kind of cheat by creating two exact size waypoint zones for each main zone and place them directly on top of each other... and in the main zones i give just one waypoint forcing units to move to the neutral way point zones... it aint pretty but it works :p

I just want the main zones to spawn the units and the units move to waypoint zones without moving in the main zone.

Share this post


Link to post
Share on other sites
Is it possible to get opfor/blufor zones to share neutral waypoint zones? i dont think its possible out of the box... but its also probable ive missed something.

afaik any zones with the same zone ID will share their waypoints :confused:

["z1",[1,0,0],[10,4,10,1],[],[],[],[OPFOR]] spawn DAC_Zone

["z2",[1,0,0],[10,4,10,1],[],[],[],[bLUFOR]] spawn DAC_Zone

["z3",[1,0,0],[50],[],[],[],[Waypoints]] spawn DAC_Zone

edit: "without moving in the main zone" - just give them less WP´s in the main zone than there are in the WP zone.

And don´t go overkill with unit wp´s, if the OFP rule still applys they eat alot of performance.

Edited by Mr Burns

Share this post


Link to post
Share on other sites

Hi an THX :)

Hi, something less advanced...

Is it possible to get opfor/blufor zones to share neutral waypoint zones? i dont think its possible out of the box... but its also probable ive missed something.

I kind of cheat by creating two exact size waypoint zones for each main zone and place them directly on top of each other... and in the main zones i give just one waypoint forcing units to move to the neutral way point zones... it aint pretty but it works

I just want the main zones to spawn the units and the units move to waypoint zones without moving in the main zone.

I know this problem, but there is a solution. Please have a look at the following example:

You have 3 zones ...

z1 (west): a zone on the left hand with 5 group of infantry with this script call:

fun=["z1",[1,0,0],[5,3,10,15],[],[],[],[1,1,1,1]] spawn DAC_Zone

z2 (east): a zone on the right hand with 5 group of infantry with this script call:

fun=["z2",[1,0,0],[5,3,10,15],[],[],[],[0,0,0,0]] spawn DAC_Zone

z3 (neutral): a zone in the middle only with waypoints with this script call:

fun=["z3",[1,0,0],[10],[],[],[],[0,0,0,0]] spawn DAC_Zone

The zones are linked together because they all use the same ID.

After the DAC init is finished, the situation looks like this, for example:

zone2v.jpg

Uploaded with ImageShack.us

Each zone generates 10 waypoints. This means that for any group a total of 30 waypoints are available.

The problem is that you don't know in what zones the groups have their waypoints.

It is possible that some groups have only waypoints in their master zone and this is not optimal.

The solution in such a situation is, to move the master zones to the position of the waypoint zone,

after the DAC has created all the groups:

zone3c.jpg

Uploaded with ImageShack.us

First u move the zone z1 to the position of the waypoin zone z3.

After this action u move the zone z2 to the position of the waypoin zone z3.

init.sqf (example):

DAC_Basic_Value = 0;
waituntil{DAC_Basic_Value > 0};

if(isServer) then
{
[z1,(position z3),[],0,0,0] call DAC_fChangeZone;
sleep 1;
waituntil{DAC_NewZone == 0};
[z2,(position z3),[],0,0,0] call DAC_fChangeZone;
};

Now, after this action, there is a common area where the units have waypoints and it looks something like this:

zone1.jpg

Uploaded with ImageShack.us

All three zones overlap, and there is now an area with 30 waypoints for all groups.

I hope that was explained clearly. If not, then please let me know :)

Greeting

Silola

Share this post


Link to post
Share on other sites

Awesome, thanks guys! actually it was a bit of a dumb question because i do understand the zone id sharing option, the same ID for waypoints is a simple solution if i want to have say 3 neutral waypoint zones that i want 2 main zones to share

But that zone change looks magic! gonna try it now

------EDIT-----------------

Just tried it and it worked like a charm, thats with different sizes and shaped zones as well, so the 2 main zones can remain relatively small and z3 can be as large as you want it... Very Nice!

---------------------------

One more if i can :D

I cant get editor groups to integrate, i keep getting this message for a long time into the mission "Release-action still running. Please try again later" this is at the very beginning of the mission, and then throughout.

Edited by Katipo66

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
Sign in to follow this  

×