well this is easily done with a few triggers and variables....
each trigger is set up differently, like if you use heros as the only player units or whatever, maybe the target is a building i dont know, im going to explain it like it was everyone owns a hero. so then have a trigger like:
EVENT
a unit is attacked *GENERIC*
CONDITION
(Unit-Type of (attacked unit) is is A Hero) Equal True *BOOLEAN COMPARISON*
((Owner of (attacking unit) controller) equal user *PLAYER COMPARISION*
ACTION
Player Group - Add (Owner of (Attacking Unit)) to AssistingKillers(Player Number of (Owner of (attacked unit))) *PLAYER GROUP ADD*
on death trigger:
EVENT
unit - a unit dies
CONDITIONS
(Unit-Type of (dying unit) is is A Hero) Equal True *BOOLEAN COMPARISON*
ACTIONS
Set assistertexttemp = <empty Sting> *actually its nothing but game defaults nothing as empty string so dont type it in literally this is done to clear the variable*
Player Group - Remove (Owner of (killing unit) from AssistingKillers(player number of (owner of (dying unit)))
For Each (interger A) from 1 to (number of players in (assistingkillers(player number of (owner of (dying unit))), do actions
LOOP
Set assister temp = (random player from (Assistingkillers(player number of (owner of (dying unit)))))
Player group - remover assistertemp from assistingkillers(player number of (owner of (dying unit)))
set assistertexttemp = (assistertexttemp + (",~" + (name of assistertemp)))
*out of loop now*
game - display to (all players) the text: ((Name of (owner of (dying unit))) + (" was killed by " + ((Name of (owner of (killing unit))) + (" with help from" + (assistertexttemp + ".")))))
NECESARY VARIBLES-
assistingkillers(array - number of players playing) *PLAYER GROUP*
assistertemp *PLAYER*
assistertexttemp *STRING*
*i put in temp cause they are really only local variables, but i only know how to make global variables, so the temp tells me that its local FYI.
also all the quotes in the game diplay part are not necesary, i just did it to let you know, cause some have spaces at the end or beginging or whatnot that are hard to see without the quotes. and i know this is not the cleanest ways of doing things, but this is the simplest way i can explain to get it working on your map asap, any more questions let me know, if all comes to worse ill send you an example map if you really need it... also to make it display something besides 'Player 13" when the computer gets the kill just make a giant 'if then esle multiple funtions' in the actions where 'is contolled by a user' as the IF CONDITIONS, then the regular actions from above to display in the THEN. but in the ELSE part of that giant if, change it to display 'the computer' instead of the name of(owner of (killing unit))) whatever.... should be easy, very basic triggering. =)