there may well be scripts around which do some of what you need, but given your experience with flashpoint, i'm sure you can do this one
you'll need a script to loop through the position of the leader of each enemy group, and store those positions in a global array.
#loop
grp_pos = [getpos (leader enemy_group1), getpos (leader enemy_group2)].... etc
~1
goto "loop"
you'll need the fired event handler, as you say. this could maybe be used to trip a 'noisy' variable to true, i would suggest taking it one step further and check for silenced weapons within the event handler... sui did this very well.... let's see if i can find the thread...
here we go.then use a trigger in-game which checks for the 'noisy' variable and runs another script if it's set to true. this script would check the positions of the group leaders and compare the distances - that's a simple case of using the distance command. if there's a leader within range, issue him a domove command. you could even set up a couple of domoves within the same area to make it look like he's searching the place.
then comes the reinforcement problem. you'll need an all_enemy trigger (thislist) and the knowsabout command to check through each and every enemy loon on the map to see if the player's been spotted - could create lag, but give it a go.
and if the knowsabout is high enough, you've been spotted, and another script is called to find the nearest enemy group to the loon that spotted you, and give them similar domove commands.
not easy by any means, but well within your capabilities. we have faith in you - now go to it soldier