Jump to content
johnnyboy

[Release] JBOY Patrol Chatter and Lights On/Off scripts

Recommended Posts

Here's two simple scripts that are byproducts from my Property of Mabunga mission.  In missions that are dark, foggy, or in a dense forest, you may want to occasionally give the player a cue that there is a nearby AI patrol.  These scripts periodically force the AI to issue an order (so player hears the AI speak), or periodically the AI will turn on their gunlights for a few sconds.  This can aid immersion and build tension.   In the short demo video below I set the delay between AI speaking and turning lights on/off to 20 seconds for demonstration purposes only.  In a real mission I recommend a 60 second interval (or more) so it happens less often, and unexpectedly.  Also note that it would be simple to modify the PatrolChatter script to have AI units randomly say something (sneeze, cough, belch, complain, tell a joke, etc.).

 

Turn up your volume for this video, as the AI commands are hard to hear for some reason.  They sounded louder in-game.

 

To execute the scripts, put the following lines in the group leader's init or in the On Activation box of any Waypoint:

dummy = [group this, 60] execVM "Scripts\JBOY_PatrolChatter.sqf"; // 60 is number of seconds to wait between speaking
dummy = [group this, 60, 5] execVM "Scripts\JBOY_LightsOnOff.sqf"; // 60 is duration light is off, and 5 is duration light is on

Create a file called JBOY_PatrolChatter.sqf in your mission directory, and put the following simple code in it:

// *****************************************************
// ** JBOY_PatrolChatter.sqf 
// ** by JohnnyBoy
// ** Use with AI patrols.  Group leader will ocassionally give an audible command to a subordinate.  Helps player sense enemy patrols
// ** at night or in dense forests.  
// ** Put this in patrol leader's init:
// dummy = [group this, 50] execVM "Scripts\JBOY_PatrolChatter.sqf"; 
// ***********************************************************************************
if (!isServer)  exitwith {};
_grp = _this select 0;
_interval = _this select 1;
WHILE {({alive _x} count (units _grp) > 1) } DO 
{
    if (!(behaviour leader _grp == "COMBAT")) then
    {
        // patrol leader periodically issues audible command.  Helps enemy players
        // hear an ai patrol moving at night or heavy fog.
        // You could also add in CASE statement hear to ocasionally say something:  cough, sneeze, complain, whatever
       (units _grp select 1) commandMove getpos (units _grp select 1);
    };
   sleep _interval + random(10);
};

Create a file called JBOY_LightsOnOff.sqf in your mission directory, and put this simple code in it:

// *****************************************************
// ** JBOY_LightsOnOff.sqf 
// ** by JohnnyBoy
// ** Use with AI night sentry patrols.  Units will occasionally turn on gun light.  Helps player spot patrols.
// ** Put this in patrol leader's init:
// dummy = [group this, 30, 20] execVM "Scripts\JBOY_LightsOnOff.sqf"; 
// ***********************************************************************************
_grp = _this select 0;
_OffTime = _this select 1;
_OnTime = _this select 2;

if (!isServer)  exitwith {};
WHILE {({alive _x} count (units _grp) > 0 )} DO 
{
    sleep (_OffTime + random(10));
	if ((date select 3) < 6 or (date select 3) > 19 ) then 
	{
		if (!(behaviour leader _grp == "COMBAT")) then
		{
			(leader _grp) enablegunlights "forceOn";
			sleep (_OnTime + random (10));
			(leader _grp)  enablegunlights "forceOff";
		} else {
			(leader _grp)  enablegunlights "AUTO";
		};
	} else {
		(leader _grp)  enablegunlights "AUTO";
	};
};

Hope someone finds this useful.

 

Johnnyboy out

  • Like 17
  • Thanks 2

Share this post


Link to post
Share on other sites

I like this a lot, very immersive......the ability to add custom sounds/dialogue to the script is also really neat.

 

........could that be another little script tease at the end of the video....... :P   

Share this post


Link to post
Share on other sites

haha! you did for sure deliver on the birds of prey thing you teased. glad to see that it's exactly what i expected.

Share this post


Link to post
Share on other sites

Tease?  I don't know what you guys are talking about. It's Mabunga Swamp...a very hostile place for fish, fowl, reptiles and man! :wink_o:

  • Like 1

Share this post


Link to post
Share on other sites

Hey johnnyboy,

thank u very much for that cool script. I noticed that u ve thwron a few of those cool ambient scripts to this forum. I think it would be really nice if u release an ambient script package like "JBOYs Ambient Scripts". It would be easier to find a specific of ur cool scripts and one would have an overview of all your ambient scripts. just a suggestion...

Share this post


Link to post
Share on other sites

 

thank u very much for that cool script. I noticed that u ve thwron a few of those cool ambient scripts to this forum. I think it would be really nice if u release an ambient script package like "JBOYs Ambient Scripts". It would be easier to find a specific of ur cool scripts and one would have an overview of all your ambient scripts. just a suggestion...

Thanks for the suggestion.  I'll see if I can get to that...easier for me to release them separately for now.  Note my signature currently has links to all my scripts.  If you end up using any of them, let me know...I like to see them in action in other folks' missions.

Share this post


Link to post
Share on other sites

Was wondering..how to use this with spawned OPFOR? Like..I'm using EOS to spawn enemies patrols: can I still use this?How?

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, genesis92x said:

Just letting you know how awesome this is :) Thank you John.

Thanks Genesis92x.  Its cool that something so simple can really add to immersion.

 

4 hours ago, zagor64bz said:

Was wondering..how to use this with spawned OPFOR? Like..I'm using EOS to spawn enemies patrols: can I still use this?How?

Hey Zagor.  It should be simple to add to respawned patrols if there is a hook in the EOS system for executing custom code for respawned units.  If there is such a "run your own script on unit respawn here" option built into EOS, then you would add this line there:

dummy = [group this, 60, 5] execVM "Scripts\JBOY_LightsOnOff.sqf"; 

If EOS is a mod, then I wouldn't have a clue how to do it.

Share this post


Link to post
Share on other sites

Indeed there's a hook for inserting scripts on spawned units...just it apply to ALL the units.Is that ok?

Share this post


Link to post
Share on other sites

If you don't mind all spawned units periodically talking.  These scripts should not affect the spawned units other behaviour.  Note I have 2 different scripts:  Patrol Chatter, and Lights On/Off.  You can run one or both.

 

These scripts accept a Group as input, not a unit, so these commands to run the scripts should only be run for the Group Leader of each spawend group of units.

dummy = [group this, 60] execVM "Scripts\JBOY_PatrolChatter.sqf"; // 60 is number of seconds to wait between speaking
dummy = [group this, 60, 5] execVM "Scripts\JBOY_LightsOnOff.sqf"; // 60 is duration light is off, and 5 is duration light is on

So put an IF statement around the above so you only execute the script for the group leader.  I can't dig out exact code or test it for you right now, but you should be able to make it work.  Also where it says "group this" as input parameter, you need to replace "this" with variable for spawned leader unit.

 

After its working, post your solution here so someone else can benefit.  Good luck amigo.

 

Share this post


Link to post
Share on other sites
On 18/5/2016 at 7:54 PM, johnnyboy said:

 

I'll test it out and report back asap....in the mean time...happy new year bud!!

  • Like 1

Share this post


Link to post
Share on other sites
On 18/5/2016 at 7:54 PM, johnnyboy said:

 

I'll test it out and report back asap....in the mean time...happy new year bud!!

 

EDIT: this is the part of the EOS  where you can input scripts.

_grp=(_this select 0);
_skillArray=(_this select 1);					
					
					_skillset = server getvariable _skillArray;
						{
				_unit = _x;
				{
			_skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
			_unit setSkill [_x,_skillvalue];
				} forEach ['aimingAccuracy','aimingShake','aimingSpeed','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];
				
					if (EOS_DAMAGE_MULTIPLIER != 1) then {_unit removeAllEventHandlers "HandleDamage";_unit addEventHandler ["HandleDamage",{_damage = (_this select 2)*EOS_DAMAGE_MULTIPLIER;_damage}];};
					if (EOS_KILLCOUNTER) then {_unit addEventHandler ["killed", "null=[] execVM ""eos\functions\EOS_KillCounter.sqf"""]};
					dummy = [group _x, 30, 30] execVM "Scripts\JBOY_LightsOnOff.sqf";
					dummy = [group -x, 60] execVM "Scripts\JBOY_PatrolChatter.sqf";// ADD CUSTOM SCRIPTS TO UNIT HERE
						} forEach (units _grp); 

Does this look ok? Can't test in game right now....

Share this post


Link to post
Share on other sites

It looks like that code starts with a group called _grp.  So youcan move the two calls outside of the foreach loop, and call them passing in only _grp.

  • Like 1

Share this post


Link to post
Share on other sites

This is great!

Two questions:
1. Will it work for VME_PLA units (Chinese)

2. Have you considered doing Voice Acting? You have a good voice.
I know that THE KING and AZCODER are looking for voice actors..............two great mission makers.............

 

Cheers

  • Like 2

Share this post


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

It looks like that code starts with a group called _grp.  So youcan move the two calls outside of the foreach loop, and call them passing in only _grp.

OK.....that will go beyond my scripting understanding. Would you, in full holidays spirit :rofl:, be so kind to give me an example?

Cheers Bro! 

edit:like that?

_grp=(_this select 0);
_skillArray=(_this select 1);					
					
					_skillset = server getvariable _skillArray;
						{
				_unit = _x;
				{
			_skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
			_unit setSkill [_x,_skillvalue];
				} forEach ['aimingAccuracy','aimingShake','aimingSpeed','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];
				
					if (EOS_DAMAGE_MULTIPLIER != 1) then {_unit removeAllEventHandlers "HandleDamage";_unit addEventHandler ["HandleDamage",{_damage = (_this select 2)*EOS_DAMAGE_MULTIPLIER;_damage}];};
					if (EOS_KILLCOUNTER) then {_unit addEventHandler ["killed", "null=[] execVM ""eos\functions\EOS_KillCounter.sqf"""]};
					// ADD CUSTOM SCRIPTS TO UNIT HERE
						} forEach (units _grp);
                    dummy = [_grp, 30, 30] execVM "Scripts\JBOY_LightsOnOff.sqf";
                    dummy = [_grp, 60] execVM "Scripts\JBOY_PatrolChatter.sqf";

 

Share this post


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

Cheers Bro! 

edit:like that?

Exactly like that you got it. Here it is with loop code indented so you can visually be sure 2 new lines are outside the loops.

_grp=(_this select 0);
_skillArray=(_this select 1);
_skillset = server getvariable _skillArray;
{
    _unit = _x;
    {
        _skillvalue = (_skillset select _forEachIndex) + (random 0.2) - (random 0.2);
        _unit setSkill [_x,_skillvalue];
    } forEach ['aimingAccuracy','aimingShake','aimingSpeed','spotDistance','spotTime','courage','reloadSpeed','commanding','general'];

    if (EOS_DAMAGE_MULTIPLIER != 1) then {_unit removeAllEventHandlers "HandleDamage";_unit addEventHandler ["HandleDamage",{_damage = (_this select 2)*EOS_DAMAGE_MULTIPLIER;_damage}];};
    if (EOS_KILLCOUNTER) then {_unit addEventHandler ["killed", "null=[] execVM ""eos\functions\EOS_KillCounter.sqf"""]};
    // ADD CUSTOM SCRIPTS TO UNIT HERE
} forEach (units _grp);
// ADD GROUP SCRIPTS TO UNIT HERE
_dummy = [_grp, 30, 30] execVM "Scripts\JBOY_LightsOnOff.sqf";
_dummy = [_grp, 60] execVM "Scripts\JBOY_PatrolChatter.sqf";

Should work.  Happy New Year.  May 2017 bring great Arma joy to all.

  • Like 1

Share this post


Link to post
Share on other sites
7 hours ago, Mordacai said:

This is great!

Two questions:
1. Will it work for VME_PLA units (Chinese)

2. Have you considered doing Voice Acting? You have a good voice.
I know that THE KING and AZCODER are looking for voice actors..............two great mission makers.............

 

Cheers

Thanks Mordecai.  :

 

1. Will it work for VME_PLA units (Chinese)?  Yes.  This code has group leader order a unit to move to  that unit's current position (so unit doesn't actually go anywhere and deviate from waypoints).  The order is given in the language of the group leader.  So if a chinese unit gives the order, you hear in chinese:  "Move there" and the response "Ready".

 

2. Have you considered doing Voice Acting? You have a good voice.  Thanks.  I'd help if requested.  I'm ok using my natural voice, but have little range (i.e., hard for me to do more than one character).  Note that this script is using in-game voices, not mine.  But my voice is in my missions Leper Island, Property of Mabunga, and Last Tango in Bagango.  And I've voiced the dog commands in the JBOY Dog scripts

 

Happy new year buddy!

 

Share this post


Link to post
Share on other sites
3 hours ago, zagor64bz said:

NOPE..not working!

Looks like it should dude.  Are these two script files in a directory called "Scripts"?

dummy = [_grp, 30, 30] execVM "Scripts\JBOY_LightsOnOff.sqf";
dummy = [_grp, 60] execVM "Scripts\JBOY_PatrolChatter.sqf";

Do you have an error message in the Arma******.rpt log file?

Share this post


Link to post
Share on other sites

Ok...it kinda work. Patrolchatter is working, perhaps it seam like..those patrols chit chat like girls on a shopping trip. Lights?Nope..but that's because EOS spawn (in this case) CDK insurgent with basic weapons. I have to try with regular CSAT troops...reporting back asap...

  • Like 1

Share this post


Link to post
Share on other sites
Just now, zagor64bz said:

Ok...it kinda work. Patrolchatter is working, perhaps it seam like..those patrols chit chat like girls on a shopping trip. Lights?Nope..but that's because EOS spawn (in this case) CDK insurgent with basic weapons. I have to try with regular CSAT troops...reporting back asap...

Obviously lights don't work unless units have flashlights attached to their guns.  I just hope there is no error message occuring when enablegunlights "forceOn" is executed on a unit that does not have a light attached to their weapon.  If there is an error message occurring, then we need to change script to test if unit has light attachment before giving the command.

  • Like 1
  • Thanks 1

Share this post


Link to post
Share on other sites

I created a list of sound from arma3 root sounds and combine it with JBOY_patrolChater.so while patrols moving on, you may hear they talking.It effects on editor based units and other ais spawning in the middle of the mission.Also, random units of the group will chat.Should work on MP, didn't test it yet.

Share here may be useful for some users.

init.sqf

JBOY_PatrolChatter = compile preprocessfilelinenumbers "JBOY_PatrolChatter.sqf";
[] execvm "Chatter.sqf";

chatter.sqf

Spoiler


if (!isServer)  exitwith {};


_groups = [];

while { (true) } do {

{
if !(isPlayer (leader _x)) then {
	
if !(_x getVariable ["dam_Grp_ready",false]) then {
	
_groups = _groups + [_x];
_x setVariable ["dam_Grp_ready",true];
[_x, 15] spawn JBOY_PatrolChatter;
				
};
	
};
	
} forEach allGroups;

sleep 10;

};


 

 
 

JBOY_PatrolChatter.sqf

Spoiler

// *****************************************************
// ** JBOY_PatrolChatter.sqf 
// ** by JohnnyBoy
// ** Use with AI patrols.  Group leader will ocassionally give an audible command to a subordinate.  Helps player sense enemy patrols
// ** at night or in dense forests.  
// ** Put this in patrol leader's init:
// dummy = [group this, 50] execVM "Scripts\JBOY_PatrolChatter.sqf"; 
// ***********************************************************************************
if (!isServer)  exitwith {};
_grp = _this select 0;
_interval = _this select 1;

sleep random 30;

WHILE {({alive _x} count (units _grp) > 1) } DO 
{
    if (!(behaviour leader _grp == "COMBAT")) then
    {

	
_members = units _grp;
_member = selectRandom _members;


// add-remove sounds here
_sound = selectRandom [
"a3\dubbing_f_epa\a_hub\070_ambient_talk_00\a_hub_070_ambient_talk_00_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\070_ambient_talk_00\a_hub_070_ambient_talk_00_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\071_ambient_talk_01\a_hub_071_ambient_talk_01_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\071_ambient_talk_01\a_hub_071_ambient_talk_01_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\071_ambient_talk_01\a_hub_071_ambient_talk_01_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\072_ambient_talk_02\a_hub_072_ambient_talk_02_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\072_ambient_talk_02\a_hub_072_ambient_talk_02_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\072_ambient_talk_02\a_hub_072_ambient_talk_02_ALPA_2.ogg",
"a3\dubbing_f_epa\a_hub\072_ambient_talk_02\a_hub_072_ambient_talk_02_ALPA_3.ogg",
"a3\dubbing_f_epa\a_hub\072_ambient_talk_02\a_hub_072_ambient_talk_02_ALPA_4.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPA_2.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPA_3.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPA_4.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\073_ambient_talk_03\a_hub_073_ambient_talk_03_ALPB_3.ogg",
"a3\dubbing_f_epa\a_hub\074_ambient_talk_04\a_hub_074_ambient_talk_04_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\074_ambient_talk_04\a_hub_074_ambient_talk_04_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\074_ambient_talk_04\a_hub_074_ambient_talk_04_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\074_ambient_talk_04\a_hub_074_ambient_talk_04_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\075_ambient_talk_05\a_hub_075_ambient_talk_05_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\075_ambient_talk_05\a_hub_075_ambient_talk_05_ALPA_2.ogg",
"a3\dubbing_f_epa\a_hub\075_ambient_talk_05\a_hub_075_ambient_talk_05_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\075_ambient_talk_05\a_hub_075_ambient_talk_05_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\076_ambient_talk_06\a_hub_076_ambient_talk_06_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\076_ambient_talk_06\a_hub_076_ambient_talk_06_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\076_ambient_talk_06\a_hub_076_ambient_talk_06_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\077_ambient_talk_07\a_hub_077_ambient_talk_07_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\077_ambient_talk_07\a_hub_077_ambient_talk_07_ALPA_2.ogg",
"a3\dubbing_f_epa\a_hub\077_ambient_talk_07\a_hub_077_ambient_talk_07_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\077_ambient_talk_07\a_hub_077_ambient_talk_07_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\077_ambient_talk_07\a_hub_077_ambient_talk_07_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\078_ambient_talk_08\a_hub_078_ambient_talk_08_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\078_ambient_talk_08\a_hub_078_ambient_talk_08_ALPB_2.ogg",
"a3\dubbing_f_epa\a_hub\079_ambient_talk_09\a_hub_079_ambient_talk_09_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\079_ambient_talk_09\a_hub_079_ambient_talk_09_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\080_ambient_talk_10\a_hub_080_ambient_talk_10_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\080_ambient_talk_10\a_hub_080_ambient_talk_10_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\090_ambient_special_00\a_hub_090_ambient_special_00_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\090_ambient_special_00\a_hub_090_ambient_special_00_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\090_ambient_special_00\a_hub_090_ambient_special_00_ALPA_2.ogg",
"a3\dubbing_f_epa\a_hub\090_ambient_special_00\a_hub_090_ambient_special_00_ALPB_0.ogg",
"a3\dubbing_f_epa\a_hub\090_ambient_special_00\a_hub_090_ambient_special_00_ALPB_1.ogg",
"a3\dubbing_f_epa\a_hub\091_ambient_special_01\a_hub_091_ambient_special_01_ALPA_0.ogg",
"a3\dubbing_f_epa\a_hub\091_ambient_special_01\a_hub_091_ambient_special_01_ALPA_1.ogg",
"a3\dubbing_f_epa\a_hub\091_ambient_special_01\a_hub_091_ambient_special_01_ALPB_3.ogg",
"a3\dubbing_f_epa\a_hub\091_ambient_special_01\a_hub_091_ambient_special_01_ALPB_4.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_ALP_0.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_ALP_1.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_ALP_2.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_ALP_3.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_CHA_0.ogg",
"a3\dubbing_f_epa\a_hub\092_ambient_special_02\a_hub_092_ambient_special_02_CHA_1.ogg",
"a3\dubbing_f_epa\a_hub\093_ambient_special_03\a_hub_093_ambient_special_03_ALP_0.ogg",
"a3\dubbing_f_epa\a_hub\093_ambient_special_03\a_hub_093_ambient_special_03_ALP_1.ogg",
"a3\dubbing_f_epa\a_hub\093_ambient_special_03\a_hub_093_ambient_special_03_ALP_3.ogg",
"a3\dubbing_f_epa\a_hub\093_ambient_special_03\a_hub_093_ambient_special_03_CHA_0.ogg",
"a3\dubbing_f_epa\a_hub\093_ambient_special_03\a_hub_093_ambient_special_03_CHA_1.ogg",
"a3\dubbing_f_epb\B_hub\071_B_HUB_Ambient_Talk\b_hub_071_b_hub_ambient_talk_SFA_0.ogg",
"a3\dubbing_f_epb\B_hub\071_B_HUB_Ambient_Talk\b_hub_071_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\071_B_HUB_Ambient_Talk\b_hub_071_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\072_B_HUB_Ambient_Talk\b_hub_072_b_hub_ambient_talk_SFA_0.ogg",
"a3\dubbing_f_epb\B_hub\072_B_HUB_Ambient_Talk\b_hub_072_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\072_B_HUB_Ambient_Talk\b_hub_072_b_hub_ambient_talk_SFB_2.ogg",
"a3\dubbing_f_epb\B_hub\073_B_HUB_Ambient_Talk\b_hub_073_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\073_B_HUB_Ambient_Talk\b_hub_073_b_hub_ambient_talk_SFA_2.ogg",
"a3\dubbing_f_epb\B_hub\073_B_HUB_Ambient_Talk\b_hub_073_b_hub_ambient_talk_SFB_1.ogg",
"a3\dubbing_f_epb\B_hub\073_B_HUB_Ambient_Talk\b_hub_073_b_hub_ambient_talk_SFB_2.ogg",
"a3\dubbing_f_epb\B_hub\074_B_HUB_Ambient_Talk\b_hub_074_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\074_B_HUB_Ambient_Talk\b_hub_074_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\075_B_HUB_Ambient_Talk\b_hub_075_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\075_B_HUB_Ambient_Talk\b_hub_075_b_hub_ambient_talk_SFA_2.ogg",
"a3\dubbing_f_epb\B_hub\075_B_HUB_Ambient_Talk\b_hub_075_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\075_B_HUB_Ambient_Talk\b_hub_075_b_hub_ambient_talk_SFB_2.ogg",
"a3\dubbing_f_epb\B_hub\075_B_HUB_Ambient_Talk\b_hub_075_b_hub_ambient_talk_SFB_3.ogg",
"a3\dubbing_f_epb\B_hub\076_B_HUB_Ambient_Talk\b_hub_076_b_hub_ambient_talk_SFA_0.ogg",
"a3\dubbing_f_epb\B_hub\076_B_HUB_Ambient_Talk\b_hub_076_b_hub_ambient_talk_SFA_2.ogg",
"a3\dubbing_f_epb\B_hub\076_B_HUB_Ambient_Talk\b_hub_076_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\076_B_HUB_Ambient_Talk\b_hub_076_b_hub_ambient_talk_SFB_1.ogg",
"a3\dubbing_f_epb\B_hub\078_B_HUB_Ambient_Talk\b_hub_078_b_hub_ambient_talk_SFA_0.ogg",
"a3\dubbing_f_epb\B_hub\078_B_HUB_Ambient_Talk\b_hub_078_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\078_B_HUB_Ambient_Talk\b_hub_078_b_hub_ambient_talk_SFA_2.ogg",
"a3\dubbing_f_epb\B_hub\079_B_HUB_Ambient_Talk\b_hub_079_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\079_B_HUB_Ambient_Talk\b_hub_079_b_hub_ambient_talk_SFB_2.ogg",
"a3\dubbing_f_epb\B_hub\080_B_HUB_Ambient_Talk\b_hub_080_b_hub_ambient_talk_SFA_1.ogg",
"a3\dubbing_f_epb\B_hub\080_B_HUB_Ambient_Talk\b_hub_080_b_hub_ambient_talk_SFA_2.ogg",
"a3\dubbing_f_epb\B_hub\080_B_HUB_Ambient_Talk\b_hub_080_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\081_B_HUB_Ambient_Talk\b_hub_081_b_hub_ambient_talk_SFA_0.ogg",
"a3\dubbing_f_epb\B_hub\081_B_HUB_Ambient_Talk\b_hub_081_b_hub_ambient_talk_SFB_0.ogg",
"a3\dubbing_f_epb\B_hub\200_POI_AbandonedBattlefield_01\b_hub_200_poi_abandonedbattlefield_01_GUA_2.ogg",
"a3\dubbing_f_epb\B_hub\200_POI_AbandonedBattlefield_01\b_hub_200_poi_abandonedbattlefield_01_GUB_0.ogg",
"a3\dubbing_f_epb\B_hub\200_POI_AbandonedBattlefield_01\b_hub_200_poi_abandonedbattlefield_01_GUB_1.ogg",
"a3\dubbing_f_epb\B_hub\200_POI_AbandonedBattlefield_01\b_hub_200_poi_abandonedbattlefield_01_GUB_2.ogg",
"a3\dubbing_f_epb\B_hub\200_POI_AbandonedBattlefield_01\b_hub_200_poi_abandonedbattlefield_01_GUB_3.ogg",
"a3\dubbing_f_epb\B_hub\201_POI_AbandonedBattlefield_02\b_hub_201_poi_abandonedbattlefield_02_GUB_0.ogg",
"a3\dubbing_f_epb\B_hub\201_POI_AbandonedBattlefield_02\b_hub_201_poi_abandonedbattlefield_02_GUB_1.ogg",
"a3\dubbing_f_epb\B_hub\201_POI_AbandonedBattlefield_02\b_hub_201_poi_abandonedbattlefield_02_GUB_2.ogg",
"a3\dubbing_f_epb\B_hub\202_POI_AbandonedBattlefield_03\b_hub_202_poi_abandonedbattlefield_03_GUA_0.ogg",
"a3\dubbing_f_epb\B_hub\202_POI_AbandonedBattlefield_03\b_hub_202_poi_abandonedbattlefield_03_GUA_1.ogg",
"a3\dubbing_f_epb\B_hub\202_POI_AbandonedBattlefield_03\b_hub_202_poi_abandonedbattlefield_03_GUA_4.ogg",
"a3\dubbing_f_epb\B_hub\202_POI_AbandonedBattlefield_03\b_hub_202_poi_abandonedbattlefield_03_GUB_0.ogg",
"a3\dubbing_f_epa\a_in\140_Enemies\a_in_140_enemies_BHQ_1.ogg",
"a3\dubbing_f_epa\a_in\160_Evac\a_in_160_evac_BHQ_3.ogg",
"a3\dubbing_f_epa\a_in\160_Evac\a_in_160_evac_LOG_0.ogg",
"a3\dubbing_f_epa\a_m02\90_Designate\a_m02_90_designate_CHA_1.ogg",
"a3\dubbing_f_epa\a_m02\90_Designate\a_m02_90_designate_CHA_0.ogg",
"a3\dubbing_f_epb\b_in\05_Radio_Babble\b_in_05_radio_babble_JAM_0.ogg",
"a3\dubbing_f_epb\b_in\05_Radio_Babble\b_in_05_radio_babble_JAM_2.ogg",
"a3\dubbing_f_epb\b_in\05_Radio_Babble\b_in_05_radio_babble_JAM_3.ogg",
"a3\dubbing_f_epb\b_in\05_Radio_Babble\b_in_05_radio_babble_JAM_4.ogg",
"a3\dubbing_f_epb\b_m02_1\x15_detected\b_m02_1_x15_detected_MIL_0.ogg",
"a3\dubbing_f_epb\B_m06\10_Recommendation\b_m06_10_recommendation_STA_0.ogg",
"a3\dubbing_f_epc\C_in1\14_ambient_talk_04\c_in1_14_ambient_talk_04_ABA_0.ogg",
"a3\dubbing_f_epc\C_m01\15_Support_Ready\c_m01_15_support_ready_ABA_0.ogg",
"a3\dubbing_f_epc\C_m01\15_Support_Ready\c_m01_15_support_ready_BHQ_0.ogg"

];
 
playSound3D [_sound, _member, false, getPosASL _member, 2, 1, 200]
	
	
       //(units _grp select 1) commandMove getpos (units _grp select 1);
    };
   sleep _interval + random(30);
};








 

 
 

 

  • Like 3

Share this post


Link to post
Share on other sites

Thanks @Persian MO, that's a cool addition.  Are those all English voice files?  If there are other non-english equivalents for these we could consider providing language-specific chatter using the technique I used for commanding dogs using all in-game languages.

Share this post


Link to post
Share on other sites

Yes.only English.Those sounds are from arma 3 ambient talk sample.

There are not any other language chat/talk sounds.I extracted sounds from dubbing_ pbo's .

There is still more than this but as I listened most of them, to my ear, this sounds like ok for normal talking while ais are on patrolling or standing guards.

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

×