From what I read I thought the issue was not pros and cons of multiple over single events but:
The problem seems to be changes that *some* handlers make to the passed parameters, which screws up subsequent handlers that work with those same params.
I took a look at both events, It turns out I had them without realising it:
One of the functions launched by the TACT event:
private ["_soldier","_ammo","_shot","_vel"];
_soldier = _this select 0;
_ammo = _this select 4;
_shot = nearestObject [_soldier,_ammo];
_vel = velocity _shot;
if (TACTbuckInUse) then {} else
{
drop
[
"HandGrenade",
"",
"SpaceObject",
1,
1,
getPos _shot,
[
(_vel select 0) * 0.06,
(_vel select 1) * 0.06,
(_vel select 2) * 0.06
],
0,
5,
1,
0.01,
[0.2],
[
[0,0,0,1]
],
[0],
0.1,
1,
"",
"",
""
]
}
And the Jam2 script:
_unit = _this select 0
_weapon = _this select 1
_muzzle = _this select 2
_mode = _this select 3
_ammo = _this select 4
?(_weapon in ["JAM_AT4Launcher","JAM_RPG7Launcher","JAM_M72LAWLauncher"]): _this exec "\JAM_Magazines\fx\launchSmoke.sqs"
?!(local _unit): exit
?(_ammo in ["SmokeShell","SmokeShellRed","SmokeShellGreen"]): _this exec "\JAM_Magazines\fx\man_popSmoke.sqs"
?(_ammo == "JAM_MarkerGrenadeammo"): _this exec "\JAM_Magazines\fx\smokeRocket.sqs"
exit
Assuming multiple events work without any problem (I dont know btw), it must be down to the order your adding them. The TACT events require priority as there using the Nearestobject command on the ammo. Any delay in calling this may result in the round being lost and _shot being set to ObjNull, in fact they have two of these functions for both the sparks and the wad making calls to nearestobject for the same ammo type, all being called from a third function. Probably more reliable using the one function, but probably better programing practice and more flexibile (From the TACT guys point of view) to use multiple functions.
So you could try this:
{_x exec "AddJamEH.sqs" ; _x exec "AddTACTEH.sqs"} foreach units group this
Perhaps it's a case of last one in, first one out?
As for multiple events over single events, depends on what your trying to do. In this case I'd say it was better to have a single high priority event that does all it needs to as quickly as possible? Depends on how consistent the effects are during heavy game play.
Should not loose sight of the fact that OFP is a game with a programing language, and not the other way around.