【Arma 3】武装突袭3 火力压制效果 脚本使用介绍



{

_x addEventHandler["FiredMan",{ _this call fired;}];


}

foreach allunits;


fired={params ["_unit", "_weapon", "_muzzle", "_mode", "_ammo", "_magazine", "_projectile", "_gunner"];

["Id", "onEachFrame", {call nearman},[_unit,_projectile,_ammo]] call BIS_fnc_addStackedEventHandler;

nearman=



params ["_unit","_projectile","_ammo"];


  _h=getNumber (configfile >> "CfgAmmo" >> _ammo >> "hit");  

  _r=getNumber (configfile >> "CfgAmmo" >> _ammo >> "indirectHitRange"); 

  _r=_r+10;

//systemChat format["%1",_r];

if(!isNull _projectile) then

{  

_list1=_projectile nearobjects ["man",_r];

{

if(!isplayer _x )then

{

if ( _x!=_unit and alive _x  and side _x!=side _unit) then

       { 

        //systemChat format["%1",_list1]; 

    [_x,getPos _projectile,_unit,_r] spawn unfire;

};                       

};

}foreach _list1;



_list2= player nearobjects ["Default",_r];


if (count _list2>0 and player!=_unit and alive player  and side player!=side _unit and local player)then 

{  

_t=1-(getFatigue (player));      

[] spawn RadialBlur; 

[] spawn DynamicBlur;

[_t,10/_h] spawn ColorCorrections; 

[] spawn ChromAberration;

};




}

else 


{

["Id", "onEachFrame"] call BIS_fnc_removeStackedEventHandler;

};




};

};


unfire=

  params ["_x","_boll","_fireman","_time"]; 

if (isNil {_x getVariable "k"}) then {

_x setVariable ["k",1];

};

//systemChat format["%1",_x getVariable "k"]; 

         if ((_x getVariable "k")>0.3) then

         {

  _x setVariable ["k",((_x getVariable "k")-0.05)];

         };

         


          _x setFatigue (1-(_x getVariable "k"));

          _x setSkill ["aimingAccuracy",(_x getVariable "k")];        

          _x setSkill ["aimingShake",(_x getVariable "k")];

          _x setCombatMode "RED";

      _x domove ([getPos _x, 5, (10+_time), -0.1, 0, 20, 0, [[_boll,5]],[_x getRelPos [50, 180]]] call BIS_fnc_findSafePos); 

      uisleep 10+_time; 

      _x doFollow leader _x;

    //  _x setSkill ["courage", 1];          

    //  _x setFatigue 0;

      _x setSkill ["aimingAccuracy",0.7];        

          _x setSkill ["aimingShake",0.7];

          _x setVariable ["k",1];

               

  

};  



/////////

DynamicBlur=

{

  

  ["DynamicBlur", 400, [0.1]] spawn      

  {      

     params ["_name", "_priority", "_effect", "_handle"];      

     while 

     {      

      _handle = ppEffectCreate [_name, _priority];      

      _handle < 0      

     } do 

     {      

      _priority = _priority + 1;      

     };      

     _handle ppEffectEnable true;      

     _handle ppEffectAdjust _effect;      

     _handle ppEffectCommit 0.01;      

     waitUntil {ppEffectCommitted _handle};    

     uisleep 0.1; 

        

     [] spawn DynamicBlur_end;

  };

};     

ChromAberration=

{["ChromAberration", 200, [0.02, 0.02,true]] spawn 

  {      

   params ["_name", "_priority", "_effect", "_handle"];      

   while 

     {   

      _handle = ppEffectCreate [_name, _priority];      

      _handle < 0      

     } do 

     {      

      _priority = _priority + 1;      

     };      

     _handle ppEffectEnable true;      

     _handle ppEffectAdjust _effect;      

     _handle ppEffectCommit 0.01;      

     waitUntil {ppEffectCommitted _handle};   

     uisleep 0.1;    

     [] spawn ChromAberration_end;

  };

};     

ColorCorrections=

{_t=_this # 0;

 _h=_this #1;

  ["ColorCorrections", 1500, [0,0.5,0,[0.1, 0, 0, 0.1],[1, 1, 1, 1],[1, 1,1, 0],[0.3*_t+0.6, 0.3*_t+0.6, 0, 0, 0, 0, 0.25*_t+_h]]] spawn      

  {      

   params ["_name", "_priority", "_effect", "_handle"];      

   while

     {      

      _handle = ppEffectCreate [_name, _priority];      

      _handle < 0      

     } do 

     {      

      _priority = _priority + 1;      

     };      

   _handle ppEffectEnable true;      

   _handle ppEffectAdjust _effect;      

   _handle ppEffectCommit 0.01;    

   waitUntil {ppEffectCommitted _handle};   

   uisleep 0.1;    

   [] spawn ColorCorrections_end;      

  };

};     

     

     

ColorCorrections_end=

  ["ColorCorrections", 1500, [1,1,0,[0, 0, 0, 0],[1, 1, 1, 1],[1, 1,1, 0],[1, 1, 0, 0, 0, 0, 0]]] spawn      

  {      

   params ["_name", "_priority", "_effect", "_handle"];      

   while 

     {      

      _handle = ppEffectCreate [_name, _priority];      

      _handle < 0      

     } do 

     {      

      _priority = _priority + 1;      

     };      

     _handle ppEffectEnable true;      

     _handle ppEffectAdjust _effect;      

     _handle ppEffectCommit 3;      

     uiSleep 60;      

     _handle ppEffectEnable false;      

     ppEffectDestroy _handle;      

  };

};     

     

     

DynamicBlur_end=

{["DynamicBlur", 400, [0]] spawn{ params ["_name", "_priority", "_effect", "_handle"];      

   while 

     { _handle = ppEffectCreate [_name, _priority];_handle < 0 } do { _priority = _priority + 1; };      

     _handle ppEffectEnable true;      

     _handle ppEffectAdjust _effect;      

     _handle ppEffectCommit 3;      

     waitUntil {ppEffectCommitted _handle};      

      uiSleep 60;      

     _handle ppEffectEnable false;      

     ppEffectDestroy _handle;      

    };

};     

     

     

ChromAberration_end=

{["ChromAberration", 200, [0, 0, false]] spawn {params ["_name", "_priority", "_effect", "_handle"];      

   while {  _handle = ppEffectCreate [_name, _priority];   _handle < 0 } do {  _priority = _priority + 1;  };      

   _handle ppEffectEnable true;      

   _handle ppEffectAdjust _effect;      

   _handle ppEffectCommit 3;      

   uiSleep 60;      

   _handle ppEffectEnable false;      

   ppEffectDestroy _handle;        

  };

};     

 

RadialBlur=

{["RadialBlur", 100, [0, 0, 0.7, 0.7]] spawn   

  {   

   params ["_name", "_priority", "_effect", "_handle"];   

   while 

   {   

    _handle = ppEffectCreate [_name, _priority];   

    _handle < 0   

   } do 

   {   

    _priority = _priority + 1;   

   };   

   _handle ppEffectEnable true;   

   _handle ppEffectAdjust _effect;   

   _handle ppEffectCommit 0.1;   

   waitUntil {ppEffectCommitted _handle};   

   uiSleep 0.1;  

   [] spawn RadialBlur_end;   

  };

};   

  

RadialBlur_end=

{["RadialBlur", 100, [0, 0, 0, 0]] spawn   

  {   

   params ["_name", "_priority", "_effect", "_handle"];   

   while 

   {   

    _handle = ppEffectCreate [_name, _priority];   

    _handle < 0   

   } do 

   {   

    _priority = _priority + 1;   

   };   

   _handle ppEffectEnable true;   

   _handle ppEffectAdjust _effect;   

   _handle ppEffectCommit 3;   

   waitUntil {ppEffectCommitted _handle};   

   uiSleep 60;   

   _handle ppEffectEnable false;   

   ppEffectDestroy _handle;   

  }; 

};  


放入init.sqf即可。


本文为我原创

-- --
  • 投诉或建议
评论