wait,guys,I don't think these are good ideas.
this setDamage 1 is not good it's not good at all.
I think this setDamage 0.91 is better,and the fact is stroke gun only once can't bit a person to death and even wounded.
so my idea is you need to add animation named"CQB"(can't use by action meun)
onec a man be stroked he animate["CQB",1],then lying down for a second(setdammage 0.3)
do you know what I mean?
if he is down but alive and this animationPhase ""CQB"" < 0.5
he can't stroke you.
...
wait I think my script can explain all of this
all of this need 3 scripts,just remeber it's inter addons' script,I've modify USMC and PLA unit ,add a animate "CQB".
first is CQB1.sqs
_ap=_this select 0
#update
_ap dowatch objnull
#main
?not(alive _ap):goto"update"
?isnull _ap:goto"update"
_ep1=nearestobject[_ap,"SUCHpatrol"]
_ep2=nearestobject[_ap,"SUCHftldr"]
_ep3=nearestobject[_ap,"SUCHusmcgren"]
_ep4=nearestobject[_ap,"SUCHusmcmedic"]
_ep5=nearestobject[_ap,"SUCHusmcauto"]
_ep6=nearestobject[_ap,"SUCHusmcsmaw"]
_ep7=nearestobject[_ap,"SUCHusmcJAV"]
_ep8=nearestobject[_ap,"SUCHusmcrifle"]
_ep9=nearestobject[_ap,"SUCHrecon"]
_ep10=nearestobject[_ap,"SUCHusmcsmaw2"]
?isnull _ep1 and isnull _ep2 and isnull _ep3 and isnull _ep4 and isnull _ep5 and isnull _ep6 and isnull _ep7 and isnull _ep8 and isnull _ep9 and isnull _ep10;goto"main"
?_ap distance _ep1 < 2:goto"action1"
?_ap distance _ep2 < 2:goto"action2"
?_ap distance _ep3 < 2:goto"action3"
?_ap distance _ep4 < 2:goto"action4"
?_ap distance _ep5 < 2:goto"action5"
?_ap distance _ep6 < 2:goto"action6"
?_ap distance _ep7 < 2:goto"action7"
?_ap distance _ep8 < 2:goto"action8"
?_ap distance _ep9 < 2:goto"action9"
?_ap distance _ep10 < 2:goto"action10"
goto"main"
#action1
?not(alive _ep1):goto"update"
?not(alive _ap):exit
[_ap,_ep1]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action2
?not(alive _ep2):goto"update"
?not(alive _ap):exit
[_ap,_ep2]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action3
?not(alive _ep3):goto"update"
?not(alive _ap):exit
[_ap,_ep3]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action4
?not(alive _ep4):goto"update"
?not(alive _ap):exit
[_ap,_ep4]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action5
?not(alive _ep5):goto"update"
?not(alive _ap):exit
[_ap,_ep5]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action6
?not(alive _ep6):goto"update"
?not(alive _ap):exit
[_ap,_ep6]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action7
?not(alive _ep7):goto"update"
?not(alive _ap):exit
[_ap,_ep7]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action8
?not(alive _ep8):goto"update"
?not(alive _ap):exit
[_ap,_ep8]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action9
?not(alive _ep9):goto"update"
?not(alive _ap):exit
[_ap,_ep9]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
#action10
?not(alive _ep10):goto"update"
?not(alive _ap):exit
[_ap,_ep10]exec"\VME_events\CQB2.sqs"
~3+random 3
goto"main"
second is CQB2.sqs
_ap=_this select 0
_ep=_this select 1
_D1= (_ap knowsabout _ep)*2
_D2= (_ep knowsabout _ap)*2
_apR=random 10 + (speed _ap) +_D1
_epR=random 10 + (speed _ep) +_D2
#update
?speed _ap > 18 and speed _ep < 18:goto"action1"
?speed _ap < 18 and speed _ep > 18:goto"action2"
?speed _ap > 18 and speed _ep > 18:goto"Main"
exit
#main
?_ap animationPhase "CQB" < 0.5 and _ep animationPhase "CQB" >0.5 :goto"action1"
?_ap animationPhase "CQB" > 0.5 and _ep animationPhase "CQB" <0.5 :goto"action2"
?_ap animationPhase "CQB" > 0.5 and _ep animationPhase "CQB" > 0.5 :exit
?not(canstand _ep):goto"action1"
?not(canstand _ap):goto"action2"
?_apR-_epR>0:goto"action1"
?_apR-_epR<0:goto"action2"
?_apR==_epR:goto"work"
exit
#action1
?not(canstand _ap):goto"action2"
_ap dowatch _ep
_ap setunitpos"up"
_ap switchmove"combatstrokegun"
~1
?_ap distance _ep >2.5:exit
[_ap,_ep]exec"\VME_events\CQB3.sqs"
exit
#action2
?not(canstand _ep):goto"action1"
_ep setunitpos"up"
_ep dowatch _ap
_ep switchmove"combatstrokegun"
~1
?_ap distance _ep >2.5:exit
[_ep,_ap]exec"\VME_events\CQB3.sqs"
exit
the last one CQB3.sqs
_ap=_this select 0
_ep=_this select 1
_dammage=getdammage _ep
_rd=random 10
#main
?not(alive _ep):exit
?not(alive _ap):exit
?not(canstand _ap):exit
_ep animate["CQB",1]
_ep setdammage _dammage + 0.3
?_rd < 4:_ep playmove"crouchdying"
?_rd >= 4:_ep playmove"CombatRunFToLying"
~3+random 10
?not(alive _ep):exit
?_rd < 4:_ep setdir getdir _ep -180
?_rd < 4:_ep switchmove"Treatedlyingtolying"
~5
_ap setunitpos"auto"
_ep setunitpos"auto"
_ep animate["CQB",0]
exit