Jump to content
silola

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

Recommended Posts

Im sure there is a much "smarter" way to do this, but for singel units, i would create a zone for each unit but keep the same ID on each zone so they all share the waypoints.

 

Groups will also we spawned in this way right? Meaning it would generate 1 group with x units in 1 zone if I have understood DAC correctly or am I totally confused  :huh: ?

 

Edit: Later today I will start messing with DAC_Config_Creator.sqf and adding another entry in the DAC_AI_Count_Level array with the minimum and maximum set to 1 or setting the maximum to 0. I will post the results later.

 

Edit 2: Adding another entry in the DAC_AI_Count_Level array with the same value assigned to the minimum and maximum values does the trick and generates "groups" (a single unit it maximum and minimum are set to 1) with always the same amount of units in it.

Share this post


Link to post
Share on other sites

Adjusting the count level [1,1] should do the trick.  I've done this using raptors spawning as single unit groups.

 

Note that your DAC_Config_Units section must have a minimum of three entries in order to work.

  • Like 1

Share this post


Link to post
Share on other sites

Excuse me if I bump this thread with my problem again. I have debugged for a week now , and pulled my hair off ...
* I have deleted the DAC complete
* I have tested the scripted version , external and internal.
* I have created up to three different missions with the same result .
* I can sometimes see ( one out of ten times ) a single unit created in those otherwise empty field for infantry.

I now suspect that there may be Hedless Client haunting. I installed it long ago but took it off , or most of it. It may be traces of HC causing my errors ?

 

Its only the "camps" that i visually can see is created double. But the DAC indicator is showing up twice with or without the camps activated.

 

Oh and i should add that i have tested the official version of arma, and now i´m in the development build. Same result...

..................................................................

 

FINALLY!

 

I found out what was wrong. I had the game logic "DAC_external" and had added DAC_Basic_Value = 0;execVM "DAC\DAC_Config_Creator.sqf";" in every mission init.sqf i made.

So i found out it was just to drop the "DAC"-folder with all the configs in...

 

How do you set up the script version exactly?

Share this post


Link to post
Share on other sites

Excuse me if I bump this thread with my problem again. I have debugged for a week now , and pulled my hair off ...

* I have deleted the DAC complete

* I have tested the scripted version , external and internal.

* I have created up to three different missions with the same result .

* I can sometimes see ( one out of ten times ) a single unit created in those otherwise empty field for infantry.

I now suspect that there may be Hedless Client haunting. I installed it long ago but took it off , or most of it. It may be traces of HC causing my errors ?

 

Its only the "camps" that i visually can see is created double. But the DAC indicator is showing up twice with or without the camps activated.

 

Oh and i should add that i have tested the official version of arma, and now i´m in the development build. Same result...

..................................................................

 

FINALLY!

 

I found out what was wrong. I had the game logic "DAC_external" and had added DAC_Basic_Value = 0;execVM "DAC\DAC_Config_Creator.sqf";" in every mission init.sqf i made.

So i found out it was just to drop the "DAC"-folder with all the configs in...

 

How do you set up the script version exactly?

 

Not sure if I understand you, but just copy the entire DAC folder in script version to your mission folder. On the editor you do not need to put any DAC "Game Logic" to set it up. Simply create a zone through a trigger as normally.

 

You need the following lines in your init.sqf

DAC_Basic_Value = 0;
execVM "DAC\DAC_Config_Creator.sqf";

In addition, and this is something I am currently testing, I add the following code between the two lines in order to avoid having to copy player variables into  "DAC_STRPlayers" manually:

if (isServer) then {
    DAC_STRPlayers = [];
    {
        DAC_STRPlayers pushBack format ["%1",_x];
    } forEach playableUnits;
    publicVariable "DAC_STRPlayers";
    player sideChat format ["DEBUG (init.sqf): %1", DAC_STRPlayers];
}; 

Cheers

Share this post


Link to post
Share on other sites

Hi, how can i check with condition if a zone is empty of enemies?? Or a camp haves no respawn left?? Thanks!!!!

Enviado desde mi D6503 mediante Tapatalk

Share this post


Link to post
Share on other sites

After reviewing the manual, I can't figure out how to disable the DAC display of units and zones on the map.

 

 

Also, If I wanted to delay a zone with helicopters heading toward a waypoint zone, what would I enter in the trigger activation?

Share this post


Link to post
Share on other sites

Review dac markers on readme. You can place zones at mission start but deactivated and activate them when trigger activates.

Enviado desde mi D6503 mediante Tapatalk

Share this post


Link to post
Share on other sites

After reviewing the manual, I can't figure out how to disable the DAC display of units and zones on the map.

 

 

Also, If I wanted to delay a zone with helicopters heading toward a waypoint zone, what would I enter in the trigger activation?

 

DAC_Marker = 0 should do the trick and it is located in DAC_Config_Creator.sqf.

 

DAC_Marker and DAC_Com_Values are used to control how much "Debug" output DAC produces.

Share this post


Link to post
Share on other sites

What are you looking to do?  Add those units to your existing DAC files?  If so it's not very complicated - just copy and paste the entire contents to your DAC_Config_Units.sqf file.

Share this post


Link to post
Share on other sites

Since DAC uses only one parameter for side (E,W,I) and not factions, how do these extra scripts play into the array config?

Share this post


Link to post
Share on other sites

You only spawn one type (by case # in config files) per zone... and you can have all different kinds of factions/sides/etc in the same DAC_Config_Units.sqf file without problems.

 

Unless I'm not understanding your question....

Share this post


Link to post
Share on other sites

Is there a way to make DAC NOT SPAWN any more units that X?

For example, make a mission, multiple DAC zones, but never have more than 50 AI spawmed in all DAC zones¿

 

If it is not possible, maybe some variables I could check in order to include this in DAC.

 

Thanks in advance.

Share this post


Link to post
Share on other sites

Hello guys. I am a long standing fan of DAC. Unbelievably light script. :)

I have used it since donkey days in normal missions I make without any issues. However this time I have jumped into purely script based mission generation.

 

I am making a random missions picker sort of a mission, purely Singleplayer and have ran into an issue of activating DAC units on the basis of randomly generated mission locations identified by the placed gamelogics on map. 

 

I have got a side_finder.sqf which randomly chooses a mission file with repeat on. And side1.sqf, and side2.sqf which are nothing but the same mission with different ID names for testing purpose.

 

Here is side1.sqf:

//if (!isServer) exitWith {}; // Server only

// set false the side1 so side finder will not execute this mission again
side1 = true;

sleep 2;

// find center of AO...looking for gamelogic location which created before in editor
_sidepos = [city1,city2] call BIS_fnc_selectRandom; << this is the location picker

// add marker on AO/target
_marker = createMarker ["side_area", _sidepos];
_marker setMarkerShape "Ellipse";
_marker setMarkerColor "ColorRed";
_marker setMarkerText "Clear Area";
_marker setMarkerSize [50,50];


// Add task
//Task ID-Task name-Task description and some other options
["Task1","Clear Area1","Finish Nato.",true,["Clear NATO1",getmarkerpos "side_area"],"assigned"] call SHK_Taskmaster_add;

// spawn enemy
<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<WHAT SHOULD BE THE DAC CALL HERE?

sleep 2;

// WAIT UNTIL objective destroy
waitUntil {{alive _x; side _x == west} count allunits == 0;};

// task complete hint
["Task1","succeeded"] call SHK_Taskmaster_upd;
	
	
// delete AO marker and target
deleteMarker "side_area";
sleep 10;

// remove mans/vehicles/air/static "optional"
{if (!(isplayer _x)) then {deleteVehicle _x;};} foreach nearestobjects [_sidepos,[
	"air","StaticWeapon","Landvehicle"
	],2000]; 
sleep 10;
{if (!(isplayer _x)) then {deleteVehicle _x;};} foreach nearestobjects [_sidepos,[
	"man"
	],2000]; 
	
sleep 5;

// go for next side mission
if (isserver) then { null=[]execVM "side_finder.sqf";};

if(true)exitWith{};

As you can see the location pools are gamelogics named "city1" and "city2", if I place DAC zones z1 and z2 over them respectively via editor, how can I automatically start z1 when side1.sqf chooses "city1" location and similarly for z2 zone like these calls: 

[z1] call DAC_Activate
[z1] call DAC_Deativate

[z2] call DAC_Activate
[z2] call DAC_Deactivate

? I mean how to link chosen location with the respective DAC zone?

 

Thank you.

Share this post


Link to post
Share on other sites

I am not sure if I understand correctly (most probably not...). Wouldn't this do the trick? Have I totally missed your point?

if (_sidepos == city1) then {
 [z1] call DAC_Activate;
} else {
 [z2] call DAC_Activate;
};

Share this post


Link to post
Share on other sites

 

I am not sure if I understand correctly (most probably not...). Wouldn't this do the trick? Have I totally missed your point?

if (_sidepos == city1) then {
 [z1] call DAC_Activate;
} else {
 [z2] call DAC_Activate;
};

 

Dont worry, that was exactly what I was asking.

 

But Wow yeah I guess that would work.. O.O

Since I wont be having just 2 locations, as I have expanded my mission to upto 5 locations  :D

Hence I will have to make "n" number of "else" cases in each mission. sqf?

 

Maybe modify this "if" statement to something similar to the "if" statements what I have in the side_finder.sqf?:

if (_sidepos == city1) then { [z1] call DAC_Activate; };
if (_sidepos == city2) then { [z2] call DAC_Activate; };
if (_sidepos == base1) then { [z3] call DAC_Activate; };
.....

Will this be performance hungry?

 

What do you think? And thanks for the reply :D

Share this post


Link to post
Share on other sites

I think you would be better off with switch statements, which are specifically designed to cope with large amount of if else  statements: https://community.bistudio.com/wiki/switch_do

switch (_sidepos) do {
  case city1: { [z1] call DAC_Activate;};
  case city2: { [z2] call DAC_Activate;};
  case base1: { [z3] call DAC_Activate;};
  case default: { hint "Out of bounds";};
};

Glad to be of help!

Share this post


Link to post
Share on other sites

Ohhhh.. this is amazing.. thank youuuuu ..

Share this post


Link to post
Share on other sites

Big fan of DAC! Huge compliments to the original creator Silola and anyone else involved! 

 

I am currently having some consistency problems. Sometimes at startup I get error 7.(waypoints) and a message:

 

WP search was interupted   - zone "zonename" is not suitable for unit type (infantry/helicopter/tracked)

 

 

It can be different zones at different times and sometimes everything works fine. Also if one zone fails the whole DAC zone creation seems to get aborted. 

 

I have not find any troubleshooting for DAC, can someone tell me what is happening and what I can do about it?  Thanks!

Also, is there a limit for number of zones/waypoints that can be loaded at once?

 

 

EDIT: Found one possible explanation. This error happens when I, the player is standing inside one of the zones. Tried moving out the player outside the zone and the problem dissapeared

Share this post


Link to post
Share on other sites

Big fan of DAC! Huge compliments to the original creator Silola and anyone else involved! 

 

I am currently having some consistency problems. Sometimes at startup I get error 7.(waypoints) and a message:

 

 

 

It can be different zones at different times and sometimes everything works fine. Also if one zone fails the whole DAC zone creation seems to get aborted. 

 

I have not find any troubleshooting for DAC, can someone tell me what is happening and what I can do about it?  Thanks!

Also, is there a limit for number of zones/waypoints that can be loaded at once?

 

 

EDIT: Found one possible explanation. This error happens when I, the player is standing inside one of the zones. Tried moving out the player outside the zone and the problem dissapeared

 

This also happens when the zone is too small or there are too many objects, causing the waypoints not to be able generated in the zone.

 

What I think happens to you is related to variable DAC_SaveDistance in DAC_Config_Creator.sqf. This variable avoids units to be generated at a certain radius from de player and this is by default set at 500. This would in turn reduce the amount of area available for your units to spawn and/or generate sufficient waypoints.

 

I hope this helps.

Share this post


Link to post
Share on other sites

Thanks for the advice!

 

Even after I moved the player away from the zones I encountered some problems which I solved in different ways:

 

1. By setting the time condition in the zones to a higher value I seemed to get less problems with waypoint errors. I set the conditions in all zones to time>25; I suppose this allows time for all the inits to finish running and then the DAC can run nicely by itself

 

2. I had a problem where I would get error 7 if I had too many waypoints in all zones combined. The limit seemed to be around 300-310 waypoints. I solved this by using the function to create new zones and created some of the zones in-game at a later time. (Note that zones created in-game can only be created one at a time and something like 30 seconds or so should be allowed in between each zone creation).

 

3. Also the size and number of objects in the zone has an effect as posts above me pointed out. If the zone is located in a city there will more likely not be suitable spaces for waypoints to be created

 

Thees are just my observations, and those smarter than me are welcome to correct if anything I said is wrong or I missed something ;)

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

×