1+ // by Moerderhoschi
2+ // see also:
3+ // MDH RAGDOLL AI UNITS GET MORE DAMAGE AT HIT & AI UNITS GET RAGDOLL EFFECT AT HIT(by Moerderhoschi) - v2025-04-14
4+ // github: https://github.com/Moerderhoschi/arma3_mdhRagdoll
5+ // steam mod version: https://steamcommunity.com/sharedfiles/filedetails/?id=3387437564
6+
7+ #define __DEBUG__
8+ #include " ..\x_setup.sqf"
9+
10+ __TRACE_1 (" " ," _this" )
11+
12+ params [" _u" ];
13+ if (! alive _u ) exitWith {};
14+ _u addForce [[0 ,0 ,0 ], [0 ,0 ,0 ], false ]; // reduce warping on ground
15+ sleep 3 ;
16+ if (! alive _u ) exitWith {};
17+ _u setUnconscious true ;
18+
19+ if (0.4 > random 1 ) then {
20+ __TRACE (" lower than 0.2" )
21+ private _w = " " ;
22+ private _t = primaryWeapon _u ;
23+ if (secondaryWeapon _u ! = " " ) then {
24+ _w = " Weapon_Empty" createVehicle [500 , 500 , 500 ];
25+ _u actionNow [" DropWeapon" , _w , secondaryWeapon _u ];
26+ private _p = getPosWorld _u ;
27+ _w setpos [(_p #0 ) + 0.3 , _p #1 , 0 ];
28+ };
29+ if (primaryWeapon _u ! = " " ) then {
30+ _w = " Weapon_Empty" createVehicle [500 , 500 , 500 ];
31+ _u actionNow [" DropWeapon" , _w , primaryWeapon _u ];
32+ private _p = getPosWorld _u ;
33+ _w setpos [_p #0 , _p #1 , 0 ];
34+ };
35+ sleep 10 + (random 5 );
36+ if (! alive _u ) exitWith {};
37+ _u setUnconscious false ;
38+ if (_t ! = " " ) then {
39+ _u actionNow [" TakeWeapon" , _w , _t ];
40+ _u selectWeapon primaryWeapon _u ;
41+ };
42+ sleep 5 ;
43+ if (! alive _u ) exitWith {};
44+ _u setVariable [" DomEnemyDamageEhForceHit" , false ];
45+ _u playMove " AmovPknlMstpSrasWrflDnon" ;
46+ _u selectWeapon primaryWeapon _u ;
47+ } else {
48+ __TRACE (" greater than 0.2" )
49+ _u disableConversation true ;
50+ _u setvariable [" bis_nocoreconversations" ,true ];
51+ _u disableAI " FSM" ;
52+ _u disableAI " RADIOPROTOCOL" ;
53+ if (secondaryWeapon _u ! = " " ) then {
54+ private _w = " Weapon_Empty" createVehicle [500 , 500 , 500 ];
55+ _u actionNow [" DropWeapon" , _w , secondaryWeapon _u ];
56+ private _p = getPosWorld _u ;
57+ _w setpos [(_p #0 ) + 0.3 , _p #1 , 0 ];
58+ };
59+ if (primaryWeapon _u ! = " " ) then {
60+ private _w = " Weapon_Empty" createVehicle [500 , 500 , 500 ];
61+ _u actionNow [" DropWeapon" , _w , primaryWeapon _u ];
62+ private _p = getPosWorld _u ;
63+ _w setpos [_p #0 , _p #1 , 0 ];
64+ };
65+ sleep 120 + (random 180 );
66+ if (alive _u ) then {
67+ _u setDamage 1 ;
68+ };
69+ };
0 commit comments