Jump to content
Sign in to follow this  
Drongo69

Drongo's Toolkit (command engine, artillery, AI, objectives, more)

Recommended Posts

NOTE: Most functions of Drongo's Toolkit have been surpassed by my Command Enhancement. DT can be considered obsolete.

Version 0.74 released

The primary focus of Drongo's Toolkit is:

  • to improve/streamline AI squad control
  • to allow control of other AI groups (ie. a command engine)

DT can be used in both SP and MP. Functions:

  • Squad command menu
  • Command engine
  • Support for Drongo's Artillery (if present)
  • Infoshare
  • Reports from AI squads
  • Random weather/time
  • Suite of functions for various purposes
  • Various modules for ease of use
  • Skill rebalance module (no more laser AI)

The focus is on small coop groups or single player, but there should be no problems using it in larger MP missions. Press the Left Windows key to access the menu in-game (can be changed in the userconfig). DT was originally made for OFP.

Squad menu:

Squadmenu.jpg

Command menu:

Command.jpg

Download v0.74 (539.18 KB)

Requires CBA 3.

CREDITS

Thank you very much to SaMara and Tonic-_- for allowing me to use their dialog code.

Drongo69: concept and coding.

Chops: testing and input.

RootLocus: testing DT for OFP.

Sanctuary: help with DT for OFP.

Macser: help with DT for OFP.

Vektorboson: help with DT for OFP.

code34: Weather script

Champy_UK: AI skill values

I borrowed some sounds from Battlefield 2 and Ghost Recon. (Hopefully I will be able to use default ArmA3 sounds in a future release).

Edited by Drongo69

Share this post


Link to post
Share on other sites

Good job, gave it a go this morning and had a lot of fun. One thing is there a way to move the menu so it is not in the center f the screen when viewing with the map. Also for my own use, can u tell me how to add more rounds to the arty.

Share this post


Link to post
Share on other sites
Good job, gave it a go this morning and had a lot of fun. One thing is there a way to move the menu so it is not in the center f the screen when viewing with the map. Also for my own use, can u tell me how to add more rounds to the arty.

I'll take a look at making the dialogs movable. To add more arty rounds or define your own types, look at DT\Artillery\DefineAssets.sqf:

dfsAssetWest1 = ["82mm mortar",2,3,75,7,"Sh_82mm_AMOS","Smoke_82mm_AMOS_White","Smoke_82mm_AMOS_White","Cluster_120mm_AMOS",0,[b]2,1,1,1[/b],"Ready"];

The numbers in bold are the available missions for HE, WP, smoke and ICM respectively. To adjust ammo in game use DT\Artillery\AdjustAmmo.sqf, for example:

[3,West,2,0] execVM "DT\Artillery\AdjustAmmo.sqf";

will give 3 HE missions to the 2nd West battery. The last number is the type to increment (0 = HE, 1 = WP, 2 = smoke, 3 = ICM).

A lot of stuff can be edited. Look at the Start.sqf and Preferences.sqf in each folder to get some ideas. I have tried to use natural names for things and at least briefly document what they do.

Any chance we get CCE2 port to ArmA3 as well?

Not CCE2, as I made a much improved version for OFP called Area of Operations (never publicly released though). I have started porting this to Arma 3.

Edited by Drongo69

Share this post


Link to post
Share on other sites

This looks great but the demo missions seem to be missing the sounds..?

Edit: Derp. Ok, thought it was all in the demo missions and scripts -didn't see the .pbo there :o

Edited by froggyluv

Share this post


Link to post
Share on other sites

This is really awesome :)

I was literally trying to achieve much of this for one single mission ie create dynamic markers for friendly AI/have them report injuries and was even using the same GR voices ...so you saved me a bucketload of work -big thanks :)

Question: Where in the preferences can you add/delete what groups are commandable? Also custom named groups show up as empty in the command list.

Thanks again!

Share this post


Link to post
Share on other sites
This is really awesome :)

Question: Where in the preferences can you add/delete what groups are commandable? Also custom named groups show up as empty in the command list.

Glad you are enjoying it :)

To exclude groups from the command engine, put the following file in the init line of the leader of the group you wish to exclude:

nul = [this] execVM "DT\Command\Exclude.sqf";

Alternatively, edit the array dtcExcludedGroups in DT\Preferences.sqf.

As for groups with custom names, I think that is a problem in DT\Core\Functions\TrimGroupName.sqf. I'll try to fix this for the next release.

Share this post


Link to post
Share on other sites
Glad you are enjoying it :)

To exclude groups from the command engine, put the following file in the init line of the leader of the group you wish to exclude:

nul = [this] execVM "DT\Command\Exclude.sqf";

Alternatively, edit the array dtcExcludedGroups in DT\Preferences.sqf.

As for groups with custom names, I think that is a problem in DT\Core\Functions\TrimGroupName.sqf. I'll try to fix this for the next release.

Thanks. The only problem with the 'excluding' is that all of the groups still show up on the Command panel and will respond by radio if given an order -they just don't act on it. Could you remove all excluded groups from the Command panel as it they can be quite lengthy -especially in missions with large amounts of groups littering a base purely for effect and players will have a hard time distinguishing whom they have command over and whom they don't. Hopefully it can retain Infoshare while removing command.

Edit: One more request -have option to disable Player's infoshare as it comes across as redundant in SP to the enemies he's already calling out. Also, I can't seem to keep the entire enemy force from acting like reinforcements, abandoning their waypoints and all rushing the action. I have the DTAI disabled and here is my Preference.Sqf

// Called from DT\Start.sqf
// Used to set user preferences for DT.

dtDebug = true;
//dtDebug = false;
dtCurrentDialog = "Personal";

// Array of items that are recognised as a radio (for commanding, enemy contact messages, etc)
dtRadioTypes = [];
dtRadioTypes = ["ItemRadio"];

// Units that can use the command dialog. If this is empty, anyone can use it.
dtCommanders = [];

// Array of vehicles that can be mounted as cargo
dtTransportTypes = ["B_Hunter_F","B_Hunter_RCWS_F","B_Hunter_HMG_F","O_Ifrit_F","O_Ifrit_GMG_F","O_Ifrit_MG_F","O_Ka60_Unarmed_F","O_Ka60_F","B_MH9_F","B_AH9_F"];
dtExcludedGroups = [];

// For groups that are not available to command
dtcExcludedGroups = ["ALPHA 1-1"];
dtSmokeGrenades = ["SmokeShellRed","SmokeShell","SmokeShellGreen","SmokeShellYellow","SmokeShellPurple","SmokeShellBlue","SmokeShellOrange"];

dtArtillery = false;
dtCommand = true;
dtComms = true;
dtInfoShare = true;
dtObjectives = false;
dtAI = false;

// Comment out to disable these functions
// Activate artillery module?
//dtArtillery = true;
// Activate command modules?
dtCommand = true;
//Activate comms?
dtComms = true;
//Activate infoshare?
dtInfoShare = true;
//Activate objectives?
//dtObjectives = true;
//Activate AI commanders?
//dtAI = true;

if (dtArtillery) then {[] execVM "DT\Artillery\Start.sqf"};
if (dtCommand) then {[] execVM "DT\Command\Start.sqf"};
if (dtComms) then {[] execVM "DT\Core\CommsClient.sqf"};
if (dtInfoShare) then {[] execVM "DT\InfoShare\Start.sqf"};
if (dtObjectives) then {[] execVM "DT\Objectives\Start.sqf"};
if (dtAI) then {[] execVM "DT\AI\Start.sqf"};

Edited by froggyluv

Share this post


Link to post
Share on other sites

Is there any way to have the tool kit command both sides, and you just be a grunt. :) Im not a leader, but I love these scripts adds atmosphere. ;) hahahahaha figured it out!!!! For anyoneelse as slow as me go into DT folder then AI folder then preferences. make this : //_useWestAI = true; look like this : _useWestAI = true; ;)

Edited by Mikey74

Share this post


Link to post
Share on other sites

@Foxhound

Thanks for the Armaholic mirror :)

The only problem with the 'excluding' is that all of the groups still show up on the Command panel and will respond by radio if given an order -they just don't act on it. Could you remove all excluded groups from the Command panel.

Edit: One more request -have option to disable Player's infoshare as it comes across as redundant in SP to the enemies he's already calling out. Also, I can't seem to keep the entire enemy force from acting like reinforcements, abandoning their waypoints and all rushing the action.

I found an error in DT\Command\Exclude.sqf. It needs a small sleep at the start. Here is a working version:

// Called from a unit's init line
// Excludes the group from inclusion in the command module

sleep 1;
_unit = _this select 0;
_group = (group _unit);
while {(not(dtReady))} do {sleep 0.1};
dtcExcludedGroups = dtcExcludedGroups + [_group];

The problem with enemy groups moving to contact is probably caused by InfoShare. There is an option to respond to contacts spotted by groups on their side (depending on their distance to the target). This can be disabled in DT\InfoShare\Preferences.sqf. Look for the following lines:

//dtAImoveToHelpW = true;
dtAImoveToHelpE = true;
//dtAImoveToHelpR = true;

Comment out dtAImoveToHelpE = true; to disable such reactions. I will look at removing InfoShare reports from the player's group.

Regarding the problem with custom named groups not showing up, how are you naming them? SetGroupID?

Share this post


Link to post
Share on other sites

First two issues - that solved it! :)

I also found the civilian markers a bit too similar to enemy infantry but I found where to disable -really great job organizing this thing and keeping it extremely flexible!

Custom groups, yes I use this setgroupId ["Riptide1"]. That creates an asterix type symbol on the command screen where if I use Riptide1 = Group This -they get renamed to standard military ie Alpha 1-2.

Share this post


Link to post
Share on other sites

Are infoshare groups based on whether squads have radio or not? Because it will be a great (and realistic) way to limit which squads can share info. And since radios have limited range - infoshare radius would only make sense.

Share this post


Link to post
Share on other sites

Hmm, seems like I was wrong about erasing Civilian markers - I deleted (after first emptying out the markertype)

if (_groupType == "Civilian") then {_markerType = ""};

from DetermineMarkerType.sqf but they're still showing so must be a second location :confused:

Are infoshare groups based on whether squads have radio or not? Because it will be a great (and realistic) way to limit which squads can share info. And since radios have limited range - infoshare radius would only make sense.

Probably so as there is a HasRadio.sqf

Share this post


Link to post
Share on other sites

First post updated with version 0.2. Changes:

  • Made civilian men recognisable as such
  • Made Offroad recognisable as a car
  • InfoShare now requires the unit to have a radio or a vehicle likely to be equipped with a radio (thanks to Metalcraze for the idea)
  • Random weather/time option added
  • Groups named with setGroupID are now listed in the Command Engine
  • New script: DT\Core\Exclude.sqf
  • New function: DT\Core\Functions\GroupHasRadio.sqf
  • Added a map button to the personal menu
  • Civilians are now given purple markers
  • Markers assigned to enemy and civilian groups by InfoShare are now removed if contact is lost with the group
  • Added two HE mortar missions to OPFOR in the Command Demo Mission
  • Player no longer verbally reports enemy contacts if his own group spots them (text still appears)

Thanks very much for the feedback guys :) InfoShare was not based on radios, but now it is. I hadn't listed civilian unit types in DT\Core\DefineTypes.sqf, that's why they weren't being reported properly. Groups with custom names will show up, but they will have B_ or O_ in front of the name. I'm sure there is a text management script around somewhere, I'll try to fix this for the next version.

Due to the nature of the voice files, civilians are reported as "Enemy forces". Once I figure out how to use the default BIS sounds instead, this problem should be removed.

Edited by Drongo69

Share this post


Link to post
Share on other sites

Custom groups name now working! :)

Sorry to be such a pain with requests but possible to remove Civilian entirely from Infoshare (or make configurable)? With urban mission involving many Civ's running around it can be a little spammy with "Civilian spotted", "Contact with Civilian lost".

Share this post


Link to post
Share on other sites

@ Foxhound

Thanks for the mention on Armaholic.

@Froggyluv

A quick fix would be to edit DT\Core\Functions\GroupsNotOnSameSide.sqf to add the following line:

if ((side _group) == Civilian) then {_add = false};

so that the file reads:

private ["_side","_groups","_add","_out","_group"];
_side = _this select 0;
_groups = allGroups;
_add = false;
_out = [];
while {((count _groups) > 0)} do {
_add = true;
_group = _groups select 0;
_groups = _groups - [_group];
if (_side == (side _group)) then {_add = false};
if (_group in dtExcludedGroups) then {_add = false};
[i][b]if ((side _group) == Civilian) then {_add = false};[/b][/i]
if (_add) then {_out = _out + [_group]};
};
_out

I haven't tested this, but it should work.

I have found some errors in the artillery scripts which will be fixed in the next release. I also have cluster munitions working properly. I might add flare missions too.

Share this post


Link to post
Share on other sites

any way we could get an A2 version, would be very fun to use with ACE mod. THANKS!

Share this post


Link to post
Share on other sites

I'd rather stay focused on Arma 3 for now, so it is very unlikely we'll see an Arma 2 version any time soon.

Share this post


Link to post
Share on other sites

HMM, Trying out the demo missions and I get a hint when i click on command that says "No Radio"

I check my inventory and i have a radio..

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  

×