Glad you like it!
I've noticed a big bunch of downloads both from my filefront page and from ArmAHolic, but surprisingly few have sneaked over here to give some comments. The "beta" in the name implies comments and suggestions for improvements are much appreciated!
Anyway, I don't know the coop mission in question, but implementing the scripts in your own missions is fairly easy, dependant of course on how dynamic the mission is (i.e., does it spawn new units and groups all the time):
1) Make sure the mission file in question is "open" (i.e., not in .pbo format), and then copy over to it the whole RUG_DSAI folder, and the DSAIInit.sqf files you need (maybe for you the default RUG_DSAIInit.sqf and RUG_ArabDSAIInit.sqf, since I'm guessing they're the ones you're aiming for). You can remove any sounds you find unnecessary to make the file size smaller.
2) From the description.ext included in the demo mission, first copy over to the other mission's description.ext the top section that says:
#define GENERAL_SPEECH_SOUND_LEVEL db-0
#define GENERAL_SPEECH_SOUND_LEVEL5 db-10
#define GENERAL_SPEECH_SOUND_LEVEL2 db-10
#define GENERAL_SPEECH_SOUND_LEVEL3 db-30
#define GENERAL_SPEECH_SOUND_LEVEL4 db-35
#define GENERAL_SPEECH_SOUND_LEVEL6 db-10
(You really only need the top one, the other sound levels might be implemented in future version - good idea to have them there already though). If the mission doesn't have a description.ext, you can just copy the demo mission's as a whole.
After that, in the other mission's description.ext you need to find a point where it says:
class CfgSounds
{
sounds[] = {};
There might or might not be a section like this: if there isn't one, just copy it from the demo mission's description.ext. If there is one, though, copy-paste all the #includes into it (just put them straight under the sounds[]= {}; to make sure they're within the curled brackets. Afterwards it should look something like this:
class CfgSounds
{
sounds[] = {};
// RUG_DSAI sounds
#include "RUG_DSAI\DSAI_BehaviourSounds.h"
#include "RUG_DSAI\DSAI_FleeingSounds.h"
#include "RUG_DSAI\DSAI_WoundedSounds.h"
#include "RUG_DSAI\DSAI_OwnKilledSounds.h"
#include "RUG_DSAI\DSAI_EnemyKilledSounds.h"
#include "RUG_DSAI\DSAI_MiscSounds.h"
#include "RUG_DSAI\DSAI_GenericSounds.h"
#include "RUG_DSAI\DSAI_ContactSounds.h"
#include "RUG_DSAI\DSAI_UnderFireSounds.h"
#include "RUG_DSAI\DSAI_RUSBehaviourSounds.h"
#include "RUG_DSAI\DSAI_ArabBehaviourSounds.h"
#include "RUG_DSAI\DSAI_ArabEnemyKilledSounds.h"
#include "RUG_DSAI\DSAI_ArabMiscSounds.h"
#include "RUG_DSAI\DSAI_ArabWoundedSounds.h"
#include "RUG_DSAI\DSAI_ArabOwnKilledSounds.h"
#include "RUG_DSAI\DSAI_ArabContactSounds.h"
#include "RUG_DSAI\DSAI_ArabUnderFireSounds.h"
#include "RUG_DSAI\DSAI_SPABehaviourSounds.h"
#include "RUG_DSAI\DSAI_SPAEnemyKilledSounds.h"
#include "RUG_DSAI\DSAI_SPAWoundedSounds.h"
#include "RUG_DSAI\DSAI_SPAOwnKilledSounds.h"
#include "RUG_DSAI\DSAI_SPAContactSounds.h"
};
Note that if you're not using any of the languages mentioned up above, you can just edit out them (i.e. SPA and RUS). Nothing changes though if you leave them in.
3) After this, it's just a matter of initializing the sounds themselves! This is best done from the init.sqs or init.sqf file of the mission. If the mission for some reason doesn't have an init.sqs or init.sqf, just copy-paste the one from the demo mission. The command is fairly simple:
;RUG_TerminalDistance is the distance at which all DSAI scripts shut off automatically.
RUG_DSAI_TerminalDistance = 1000;
RUG_DSAI= [(units aPgrp), (units bPgrp), units dudegrp] execVM "RUG_DSAIinit.sqf"
(note that if you're pasting this into an init.sqf file, you need to delete the commented line that starts with ; up above, and put a ; after each line). What you're seeing above is the standard way of initializing the English-language version for three different groups, named aPgrp, bPgrp and dudeGrp. Most groups in the coop mission should hopefully be named already; you probably need to go into the mission to check out their names (they will have something like "group1 = group this" in their init fields; if they don't, just name the groups using that piece of code (without quotes). Remember to name each group differently!). After you've got the names of each group you want to add, just add them using the same syntax as above. I.e.,
RUG_DSAI=[(units NameOfGroup1), (units NameOfGroup2), (units NameOfGroup3)] execVM "RUG_DSAIInit.sqf";
Do the same for the groups you want to have Arab/other language sounds. Find them in the editor, and name them if they aren't already, and then run the same script as above (except with RUG_ArabDSAIInit.sqf, or whichever is applicable). Do note however that if the mission maker has enemy groups (or friendly for that matter) spawn dynamically, you might have to do a lot more work to get the sounds to work with each group. For most standard missions however it should work just fine.
NOTE 1: The MANDATORY global variable
RUG_TerminalDistance. This has to be defined somewhere, preferably in the init.sqs (see example above). If it's not, the scripts will probably return an error. This will decide the distance in meters around the player that the sounds will be played and the scripts run - mess around with it to see what suits you best. Having a lot of groups far outside of earshot that still have the scripts running is a bit unnecessary, and in cities especially sound occlusion makes it hard to ear very far - so you might want to limit it to something like 500 meters or so. But that's up to you.
NOTE 2: In the description.ext you #defined a variable named GENERAL_SPEECH_SOUND_LEVEL as having a value of db-0. By either lowering (db-10, for instance) or raising (db+10, for instance) this variable in the description.ext, you can decide how far the voices are heard. It won't raise their -volume-, but they will be heard longer/shorter distances. If you're not happy with 0 (no change), just raise or lower it as you see fit.
In future version, I'll try to add it so that you can fiddle more with this. I.e., separate volumes for combat/contact/grenade/under fire shouts and safe chit-chat or coughing or stealth and so forth. But for now it's just that one variable.
I hope this was clear enough for you! It may sound complicated, but I thought it was better to give clear instructions than to assume too much.
It's really just a matter of copy-pasting some stuff over, and writing in some group names. If you get it to work, feel free to upload the mission somewhere and send me a link, and I'll add it to the post!
Wolfrug out.