Jump to content
t-800a

[RELEASE] T8 Units - a less dynamic AI creator

Recommended Posts

Hey, i stumbeled on this the other day, and i think i really like it, its a little bit hard to get into but i think iam getting there, before i used EOS, but i think i like this one more..

 

iam much for Big dynamic mission with siemissions, and i just wanted to share this.

 

_towns = nearestLocations [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"), ["NameCity"], 200000];
CityLoc = [];
{
    _pos = position _x;
    _nearHouse = nearestBuilding _pos;
    _pos = position _nearHouse;
    _m = createMarker [format ["%1", (text _x)],_pos];
	CityLoc = CityLoc + [_m];
    _m setMarkerShape "ELLIPSE";
    _m setMarkerSize [300,300];
    _m setMarkerBrush "Solid";
    _m setMarkerAlpha 0.5;
    _m setMarkerColor "ColorRed";
} forEach _towns;


{
//   The groups are not setup here...
//_SmallGroup = [ "O_soldier_TL_F", "O_medic_F", "O_soldier_F" ];
_Xunit = _x;

missionNamespace setVariable [_xUnit,[	
										[ [ _QuadBikes, _x ], [ "PATROL_URBAN" ] ],
										[ [ _GuardTeam, _x ], [ "PATROL_GARRISON" ] ],
										[ [ _Sentry, _x ], [ "PATROL_AROUND" ] ],
										[ [ _SniperTeam, _x ], [ "OVERWATCH" ] ]
									]]; 

[ _xunit , _x, "EAST", "WEST", 400 ] spawn T8U_fnc_Zone;

} forEach CityLoc;
publicVariable "CityLoc";

 

i use this to spawn zones on all cities, and you can use the same approach to populate alot of different locations.

 

just wanted to share it, i did have some troubles at first since i couldn't reuse the Container names...

  • Like 2

Share this post


Link to post
Share on other sites
2 hours ago, hansson0728 said:

and now i found SMe..... thats what ive been working on basically

 

thx

Share this post


Link to post
Share on other sites
На 04.01.2017 в 5:28 утра, hansson0728 сказал:

:f:

Edited by Cossack monk

Share this post


Link to post
Share on other sites
На 04.01.2017 в 5:28 утра, hansson0728 сказал:

:f:

Edited by Cossack monk

Share this post


Link to post
Share on other sites
On 04.01.2017 at 5:28 AM, hansson0728 said:

Hey, i stumbeled on this the other day, and i think i really like it, its a little bit hard to get into but i think iam getting there, before i used EOS, but i think i like this one more..

 

iam much for Big dynamic mission with siemissions, and i just wanted to share this.

 


_towns = nearestLocations [getArray(configFile >> "CfgWorlds" >> worldName >> "centerPosition"), ["NameCity"], 200000];
CityLoc = [];
{
    _pos = position _x;
    _nearHouse = nearestBuilding _pos;
    _pos = position _nearHouse;
    _m = createMarker [format ["%1", (text _x)],_pos];
	CityLoc = CityLoc + [_m];
    _m setMarkerShape "ELLIPSE";
    _m setMarkerSize [300,300];
    _m setMarkerBrush "Solid";
    _m setMarkerAlpha 0.5;
    _m setMarkerColor "ColorRed";
} forEach _towns;


{
//   The groups are not setup here...
//_SmallGroup = [ "O_soldier_TL_F", "O_medic_F", "O_soldier_F" ];
_Xunit = _x;

missionNamespace setVariable [_xUnit,[	
										[ [ _QuadBikes, _x ], [ "PATROL_URBAN" ] ],
										[ [ _GuardTeam, _x ], [ "PATROL_GARRISON" ] ],
										[ [ _Sentry, _x ], [ "PATROL_AROUND" ] ],
										[ [ _SniperTeam, _x ], [ "OVERWATCH" ] ]
									]]; 

[ _xunit , _x, "EAST", "WEST", 400 ] spawn T8U_fnc_Zone;

} forEach CityLoc;
publicVariable "CityLoc";

 

i use this to spawn zones on all cities, and you can use the same approach to populate alot of different locations.

 

just wanted to share it, i did have some troubles at first since i couldn't reuse the Container names...

Hello. Share please mission example

Share this post


Link to post
Share on other sites

UPDATED FIRST POST - V.070 Released

What changes / enhancements can the script user expect:

S C R I P T   I N I T   C H A N G E S

+    no changes on how to spawn groups
+    in the description.ext:

#include <T8\CONFIG.hpp>

class cfgFunctions
{
	#include <T8\FUNCTIONS.hpp>
};


C O N F I G   C H A N G E S

+    everything is now class based according to A3 configs

    main Config:
    cfgT8Units
        class debug:                    debug settings
        class main:                        main settings (time delays, zeus, etc.)
        class dac:                        D.A.C. settings
        class behaviorAndSkills:        base AI skill settings
        class groupSettings:            predefined AI skill settings, can be applied to a single group individually (e.g. if a group should have different skill)
        class groupCompilations:        predefined group compilations to use in definitions
        class groupRandomCompilations:    predefined unit selections to use with T8U_fnc_createUnitContainer
       

G R O U P   C O N T A I N E R   C H A N G E S

MY_EXAMPE_CONTAINER = 
[
	[[ BASIC SETTINGS ], [ TASK SETTINGS ], ( COMMUNICATION SETTINGS ), (GROUP SETTINGS), ( SPAWN POS )],
	[...]
];


BASIC SETTINGS
[ UNITS, SPAWN MARKER, (SIDE), (VEHICLE GROUP), (FUNCTION) ]
+ SIDE, VEHICLE GROUP, FUNCTION are optinal an don't need to be in this order

 

UNITS
can be ARRAY, STRING, OR CONFIG:
+ [ "O_soldier_TL_F", "O_medic_F", "O_soldier_F", "O_soldier_AR_F" ]
+ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" )
+ "fireteam"
    - this points to group compilations defined in "class groupCompilations"

+ ([ "infantry", 5, 3 ] call T8U_fnc_createUnitContainer )
    - this function can be used to create a randomized unit selection based on "class groupRandomCompilations"
        Parameters:
            TYPE:            optional, "infantry"             - type of units, check "class groupRandomCompilations"
            MIN UNITS:        optional, 4                        - min. spawned units
            RANDOM UNITS:    optional, 4, [123]],            - additional random units
            FACTION:        optional, T8U_var_EnemySide     - spawn side, check "class groupRandomCompilations"
            MOD SET:        optional, T8U_var_modSet        - modset to select from, check "class groupRandomCompilations"

 

SPAWN MARKER
can be ARRAY or STRING
+ "my_marker"
+ [ "my_first_marker", "my_second_marker" ]        - patrol tasks will work over various markers

 

SIDE

- unchanged -
+ optional, spawn side of units -> east, west, independent, civilian

 

VEHICLE GROUP
- unchanged -
+ optional, BOOL, true if vehicle group (e.g. units should not disembark on waypoints)

 

FUNCTION
- unchanged -
+ optional, STRING, function to call after units are spawned, called for each unit once


TASK SETTINGS
- unchanged -


COMMUNICATION SETTINGS
- unchanged -


GROUP SETTINGS
optional, can be ARRAY, STRING, BOOL
    + BOOL:        - true, teleport unit to first waypoint
    + STRING    - points to the config "class groupSettings" and a special AI skill setting + teleport setting (may be extended)
    + ARRAY        - [ true ], teleport unit to first waypoint (maybe more options in the array later on)


SPAWN POS
optional, can be ARRAY or STRING, custom spawn position, if you don't want the units to spawn at the task marker
    + ARRAY:    - regular position array > [0,0,0]
    + STRING:    - a marker


SOME EXAMPLES

A_EXAMPE_CONTAINER = 
[
	[[ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "marker" ], [ "PATROL" ]],
	[[ [ "O_soldier_TL_F", "O_medic_F", "O_soldier_F", "O_soldier_AR_F" ], "marker" ], [ "PATROL" ]],
	[[ ([ "infantry", 5, 3 ] call T8U_fnc_createUnitContainer ), "marker" ], [ "PATROL" ]],
	[[ "squad", "marker" ], [ "PATROL" ]],
	
	[[ "squad", [ "marker_01", "marker_02" ], true, "TMP_fnc_someFunction", WEST ], [ "PATROL" ]],
	
	[[ "squad", "marker" ], [ "PATROL" ], [], "base_militia", "spawn_marker" ],
	[[ "squad", "marker" ], [ "PATROL" ], [], true, ( getPos someObject )],
	
	[ "fireteam", [ "marker_01", "marker_02" ], "TMP_fnc_someFunction", RESISTANCE, false ], [ "PATROL_MARKER", [ "ip1", "ip2", "ip3" ]], , [ false, false, false ],  "base_militia", "spawn_marker" ]]
];
 
  • Like 9

Share this post


Link to post
Share on other sites
30 minutes ago, t-800a said:

ОБНОВЛЕНО ПЕРВЫЙ ПОСТ - V.070 выход а

 
 

Thank you!Super!

  • Like 1

Share this post


Link to post
Share on other sites
2 hours ago, MANTIA said:

Has anyone tested with a Headless Client yet?

Yes, works well with the module acex.

 

Hi T800. We only use @mod T8_Server, will it be update in the future? It is very useful for us, I wrote a small script/Dialog to generate T8 in direct time, via onMapSingleClick for our training missions.

Thx ...

  • Like 2

Share this post


Link to post
Share on other sites
7 hours ago, DÄZ said:

Hi T800. We only use @mod T8_Server, will it be update in the future? It is very useful for us, I wrote a small script/Dialog to generate T8 in direct time, via onMapSingleClick for our training missions.

 

updated those files for you, tell me if it works, did only try local

  • Like 1

Share this post


Link to post
Share on other sites
18 hours ago, t-800a said:

 

updated those files for you, tell me if it works, did only try local

 

Yo, thank you very much, I spent 1 hours on our server with, works very well, I like a lot (GROUP SETTINGS), you did a great job .... Thanks 

Share this post


Link to post
Share on other sites

Hi :) and thanks again for that wonderfull script ;)

 

My question is quite simple : when that script is called "fn_HALO.sqf" ; is there a way to the replace the "B_Plane_CAS_01_F" in the "class groupRandomCompilations" with anything like the C130J or a helicopter ?

 

I tried different way but when i replace that value on that script and in the config.hpp, the script won't be called any longer :/

 

 

Share this post


Link to post
Share on other sites

Hi so i try to make the independent to trigger the marker but its not working, what am i doing wrong.

 

unitsTherisa =
[
[[_groupArrayFireTeam, "markerTherisa"], ["PATROL_URBAN"]],
[[_groupArrayFullTeam, "markerTherisa"], ["PATROL_URBAN"]],
[[_groupArrayFullPat, "markerTherisa"], ["GARRISON"]]
];

[ "unitsTherisa", "markerTherisa", "EAST", "WEST","RESISTANCE", 800 ] spawn T8U_fnc_Zone;

Thanks.

Share this post


Link to post
Share on other sites
5 hours ago, CptDezusa said:

Hi so i try to make the independent to trigger the marker but its not working, what am i doing wrong.

 


unitsTherisa =
[
[[_groupArrayFireTeam, "markerTherisa"], ["PATROL_URBAN"]],
[[_groupArrayFullTeam, "markerTherisa"], ["PATROL_URBAN"]],
[[_groupArrayFullPat, "markerTherisa"], ["GARRISON"]]
];

[ "unitsTherisa", "markerTherisa", "EAST", "WEST","RESISTANCE", 800 ] spawn T8U_fnc_Zone;

Thanks.



I gat it--

[ "unitsTherisa", "markerTherisa", "EAST", "ANY", 800 ] spawn T8U_fnc_Zone;

  • Like 1

Share this post


Link to post
Share on other sites
On 7.4.2017 at 11:37 AM, f3ckb9ll said:

Hi :) and thanks again for that wonderfull script ;)

 

My question is quite simple : when that script is called "fn_HALO.sqf" ; is there a way to the replace the "B_Plane_CAS_01_F" in the "class groupRandomCompilations" with anything like the C130J or a helicopter ?

 

I tried different way but when i replace that value on that script and in the config.hpp, the script won't be called any longer :/

 

 

 

You should be able to use anything that works with BIS_fnc_ambientFlyby.

But you would need to edit that directly in the fn_HALO.sqf. (around line 75-80)

switch ( _side ) do
{
	case WEST:			{ _jetType = "B_Plane_CAS_01_F"; };
	case EAST:			{ _jetType = "O_Plane_CAS_02_F"; };
	case RESISTANCE:	{ _jetType = "I_Plane_Fighter_03_AA_F"; };
};

 

Share this post


Link to post
Share on other sites

Ohh thanks i'll try that ^^

 

Edit: It's working great thanks ;) I used "B_T_VTOL_01_infantry_F" and i think its more accurate for the fn_HALO.sqf :p

Share this post


Link to post
Share on other sites

Hi, so i'm having some problem wit the mission i em making, i have to team. West and Independent.
but i also have random object spawning data terminal. The thing is that if the data terminal randomly spawn in on of the markers the trigger for the T8 kicks in.

I was trying to figure out how the independent can trigger , and i think i got that if i add ANY to the pawn T8U_fnc_Zone;
si i try this but its not working 

[ "unitsTherisa", "markerTherisa", "EAST", "WEST","RESISTANCE", 800 ] spawn T8U_fnc_Zone;
but this work, but than it triger wan my data terminal enter the zone
[ "SpawnMuaceba", "markerMuaceba", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

its loks like this now.

SpawnZonePU = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerTherisa", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_GARRISON" ]]
	 
];


SpawnFerry = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerFerry", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_GARRISON" ]]
	 
];


SpawnRautake = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerRautake", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_GARRISON" ]],	
	[ [ _groupArrayT_APC, "markerRautake", false ], [ "PATROL_URBAN" ]] 
 
];

SpawnRoad = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerRoad", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_URBAN" ]],	
	[ [ _groupArrayIfritPat, "markerRoad", false ], [ "PATROL_URBAN" ]] 
 
];

SpawnLaikoro = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerLaikoro", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_GARRISON" ]],	
	[ [ _groupArrayW_APC, "markerLaikoro", false ], [ "PATROL_URBAN" ]]
	 
];

SpawnTavu = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerTavu", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_URBAN" ]],	
	[ [ _groupArrayW_APC, "markerTavu", false ], [ "PATROL_URBAN" ]],
	[ [ _groupArraySniperTeam, "markerTavu", true ], [ "OVERWATCH" ]]
 
];

SpawnFarm = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerFarm", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_AROUND" ]]	
	 
];

SpawnMuaceba = 
[
	[ [ ( configFile >> "CfgGroups" >> "East" >> "OPF_F" >> "Infantry" >> "OIA_InfTeam" ), "markerMuaceba", "T8u_fnc_rmNVG_TEST" ], [ "PATROL_AROUND" ]]	
	 
 
];


// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnZonePU", "markerTherisa", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnRautake", "markerRautake", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnFerry", "markerFerry", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnRoad", "markerRoad", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnLaikoro", "markerLaikoro", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnTavu", "markerTavu", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnFarm", "markerFarm", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

// [ _unitsArray, _marker, _owner, _actSide, _distance, _condition, _onAct, _onDeAct ] call T8U_fnc_Zone
[ "SpawnMuaceba", "markerMuaceba", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;


 

Share this post


Link to post
Share on other sites
11 hours ago, CptDezusa said:

Hi, so i'm having some problem wit the mission i em making, i have to team. West and Independent.
but i also have random object spawning data terminal. The thing is that if the data terminal randomly spawn in on of the markers the trigger for the T8 kicks in.

I was trying to figure out how the independent can trigger , and i think i got that if i add ANY to the pawn T8U_fnc_Zone;
si i try this but its not working 


[ "unitsTherisa", "markerTherisa", "EAST", "WEST","RESISTANCE", 800 ] spawn T8U_fnc_Zone;
but this work, but than it triger wan my data terminal enter the zone
[ "SpawnMuaceba", "markerMuaceba", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;

[...]
// correct
[ "SpawnMuaceba", "markerMuaceba", "EAST", "ANY", 300 ] spawn T8U_fnc_Zone;
[ "SpawnMuaceba", "markerMuaceba", "EAST", "WEST", 300 ] spawn T8U_fnc_Zone;

// wrong: doesn't work because its a additional argument ("GUER") passed to the function
[ "SpawnMuaceba", "markerMuaceba", "EAST", "WEST", "GUER", 300 ] spawn T8U_fnc_Zone;

You could try "ANYPLAYER" instead of "ANY" !?

Also check https://community.bistudio.com/wiki/setTriggerActivation

Because the arguments passed are those required by triggers.

Share this post


Link to post
Share on other sites

Hi i wont to add this wan i kill a AI..
 

[
	    "Killed",
		{
		    params["_unit","_killer"];
			
			if(isPlayer _killer) then
			{
			    [350,0] remoteExecCall ["HG_fnc_addOrSubCash",(owner _killer),false];
			};
	        
			[_unit] spawn remove_carcass_fnc;
		}
	];
	if (Fatigue_ability isEqualTo 0) then {_unit enableStamina false;};

} forEach (units _grp);

This wil give me money wan i kill AI, but i dont know whaer in T8, the ai spawn system is.

Share this post


Link to post
Share on other sites

Hi sorry let me try this, im traing to find the AIs are spawned file ? in the fn folder 

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

×