you could use "Fired" eventhandlers (added to all eastunits)
Then have that script look like this
Fired.sqs
_Unit =_this select 0
; If Shooter is Player then exit
? _Unit == Player : exit
; MaxDistance From Player inorder for it to count as a shoot near player
_MaxDistance = 250
? (Side _unit) == East and (_Unit Distance Player <= _maxDistance) : EastFiring = true
exit
And have another script like this
Checkfire.sqs
MinNoActivityTimeB4Reporting = 10
#Loop1
? EastFiring : EastFiring = False; _FireStartTime = _time; Goto "Loop2"
#Loop2
FiringTime = _time
~1
? EastFiring : GOto "Loop1"
? !EastFiring : TotalNotFiringTime = _Time - _FireStartTime
? TotalNotFiringTime > _MinNoActivityTimeB4Reporting : hint "seems clear"; Goto "loop1"
GOto "Loop2"