43 lines
1.6 KiB
Plaintext
43 lines
1.6 KiB
Plaintext
private ["_unit","_weapon","_param","_mode"];
|
|
_unit = _this select 0;
|
|
_weapon = _this select 1;
|
|
_mode = _this select 3;
|
|
_param = (configFile >> "CfgWeapons" >> _weapon >> "bg_weaponparameters");
|
|
|
|
if (isClass _param) then
|
|
{
|
|
if (isClass (_param >> "onFired_Action")) then
|
|
{
|
|
private ["_HandAction","_Actiondelay","_Sound","_Sound_Location","_hasOptic","_reloadDelay","_weaponConfig","_speed"];
|
|
_HandAction = (_param >> "onFired_Action" >> "HandAction") call BIS_fnc_getCfgData;
|
|
_Actiondelay = (_param >> "onFired_Action" >> "Actiondelay") call BIS_fnc_getCfgData;
|
|
_Sound = (_param >> "onFired_Action" >> "Sound") call BIS_fnc_getCfgData;
|
|
_Sound_Location = (_param >> "onFired_Action" >> "Sound_Location") call BIS_fnc_getCfgData;
|
|
_hasOptic = (_param >> "onFired_Action" >> "hasOptic") call BIS_fnc_getCfgData;
|
|
if (_mode == _weapon) then
|
|
{
|
|
_weaponConfig = (configFile >> "CfgWeapons" >> _weapon);
|
|
_speed = getnumber (_weaponConfig >> "reloadTime");
|
|
_reloadDelay = _speed + 0.15;
|
|
}
|
|
else
|
|
{
|
|
_weaponConfig = (configFile >> "CfgWeapons" >> _weapon >> _mode);
|
|
_speed = getnumber (_weaponConfig >> "reloadTime");
|
|
_reloadDelay = _speed + 0.15;
|
|
};
|
|
|
|
|
|
[_unit,_weapon,_HandAction,_Actiondelay,_Sound,_Sound_Location,_hasOptic,_reloadDelay] spawn bg_fnc_onFiredAction;
|
|
};
|
|
if (isClass (_param >> "onEmpty")) then
|
|
{
|
|
if (_unit ammo _weapon == 0) then
|
|
{
|
|
_Sound = (_param >> "onEmpty" >> "Sound") call BIS_fnc_getCfgData;
|
|
_Sound_Location = (_param >> "onEmpty" >> "Sound_Location") call BIS_fnc_getCfgData;
|
|
|
|
[_unit,_Sound,_Sound_Location] spawn bg_fnc_playweaponsound;
|
|
};
|
|
};
|
|
}; |