You could try that with eventhandlers and 'while do' loops...
place a trigger covering the map, and set side to which you want, condition to true. On activation:
{_x addEventHandler ["killed",{_this exec "dropwpn.sqf"}]} forEach thislist
dropwpn.sqf
_corpse = _this select 0
_mags = magazines _corpse
_guns = weapons _corpse
_magcount = count magazines _corpse
_guncount = count weapons _corpse
~3
? (alive _corpse) : exit
_wpnh = "weaponholder" createVehicle [(getPos _corpse select 0) - 2 + (random 2*2),(getPos _corpse select 1) - 2 + (random 2*2),0]
_c = 0
while "_c <= (_magcount - 1)" do {_wpnh addmagazineCargo [format ["%1",(_mags select _c)],1]; _c = _c + 1}
_c = 0
while "_c <= (_guncount - 1)" do {_wpnh addweaponCargo [format ["%1",(_guns select _c)],1]; _c = _c + 1}
deleteVehicle _corpse
exit
Note: Requires sqf form. IF MP, respawn has to be quicker than the delay (~3). All weapons, including rocketlaunchers, will be added to this one dropped model. In order to not duplicate the weapon amount, the corpse has to be deleted. And this all works kinda iffy. That's a modification of Toadlifes weapon respawn