mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
CBAfy AGM_Hearing
This commit is contained in:
parent
db7322e50a
commit
5d6fd9ab3e
7
addons/hearing/CfgAmmo.hpp
Normal file
7
addons/hearing/CfgAmmo.hpp
Normal file
@ -0,0 +1,7 @@
|
||||
// Setting up old stuff for A3
|
||||
class CfgAmmo {
|
||||
class BulletBase;
|
||||
class B_127x108_Ball: BulletBase {
|
||||
audibleFire = 15;
|
||||
};
|
||||
};
|
36
addons/hearing/CfgEventHandlers.hpp
Normal file
36
addons/hearing/CfgEventHandlers.hpp
Normal file
@ -0,0 +1,36 @@
|
||||
|
||||
class Extended_PreInit_EventHandlers {
|
||||
class ADDON {
|
||||
init = QUOTE(call COMPILE_FILE(XEH_preInit) );
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class ADDON {
|
||||
clientInit = QUOTE( call COMPILE_FILE(XEH_postInit.sqf) );
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Init_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(AddEarPlugs) {
|
||||
init = QUOTE( if (local (_this select 0)) then {_this call FUNC(addEarPlugs)}; );
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_FiredNear_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(FiredNear) {
|
||||
clientFiredNear = QUOTE( if (_this select 0 == ACE_player) then {_this call FUNC(firedNear)}; );
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class Extended_Explosion_EventHandlers {
|
||||
class CAManBase {
|
||||
class GVAR(ExplosionNear) {
|
||||
clientExplosion = QUOTE( if (_this select 0 == #CE_player) then {_this call FUNC(explosionNear)}; );
|
||||
};
|
||||
};
|
||||
};
|
14
addons/hearing/CfgSounds.hpp
Normal file
14
addons/hearing/CfgSounds.hpp
Normal file
@ -0,0 +1,14 @@
|
||||
class CfgSounds {
|
||||
class ACE_EarRinging_Weak {
|
||||
sound[] = {QUOTE(PATHOF(sounds\ACE_earringing_weak.wav),8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
class ACE_EarRinging_Medium {
|
||||
sound[] = {QUOTE(PATHOF(sounds\ACE_earringing_medium.wav),8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
class ACE_EarRinging_Heavy {
|
||||
sound[] = {QUOTE(PATHOF(sounds\ACE_earringing_heavy.wav),8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
};
|
101
addons/hearing/CfgVehicles.hpp
Normal file
101
addons/hearing/CfgVehicles.hpp
Normal file
@ -0,0 +1,101 @@
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class ACE_SelfActions {
|
||||
class ACE_Equipment {
|
||||
class ACE_PutInEarplugs {
|
||||
displayName = "$STR_ACE_Hearing_Earbuds_On";
|
||||
condition = QUOTE( !([_player] call FUNC(hasEarPlugsIn)) && {'ACE_EarBuds' in items _player} );
|
||||
statement = QUOTE( [_player] call FUNC(putInEarPlugs) );
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = QUOTE(PATHOF(UI\ACE_earplugs_x_ca.paa));
|
||||
hotkey = "E";
|
||||
enableInside = 1;
|
||||
};
|
||||
class ACE_RemoveEarplugs {
|
||||
displayName = "$STR_ACE_Hearing_Earbuds_Off";
|
||||
condition = QUOTE( [_player] call FUNC(hasEarPlugsIn) );
|
||||
statement = QUOTE( [_player] call FUNC(removeEarPlugs) );
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = QUOTE(PATHOF(UI\ACE_earplugs_x_ca.paa));
|
||||
hotkey = "E";
|
||||
enableInside = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ReammoBox_F;
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
|
||||
class Box_NATO_Support_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class B_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_East_Support_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class O_supplyCrate_F: B_supplyCrate_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_IND_Support_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_FIA_Support_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class I_supplyCrate_F: B_supplyCrate_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class IG_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class C_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class ACE_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(ACE_EarBuds,12)
|
||||
};
|
||||
};
|
||||
};
|
15
addons/hearing/CfgWeapons.hpp
Normal file
15
addons/hearing/CfgWeapons.hpp
Normal file
@ -0,0 +1,15 @@
|
||||
class CfgWeapons {
|
||||
class ACE_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
class ACE_EarBuds: ACE_ItemCore {
|
||||
displayName = "$STR_ACE_Hearing_Earbuds_Name";
|
||||
descriptionShort = "$STR_ACE_Hearing_Earbuds_Description";
|
||||
model = QUOTE(PATHOF(ACE_earplugs.p3d);
|
||||
picture = QUOTE(PATHOF(UI\ACE_earplugs_x_ca.paa);
|
||||
scope = 2;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 1;
|
||||
};
|
||||
};
|
||||
};
|
55
addons/hearing/XEH_postInit.sqf
Normal file
55
addons/hearing/XEH_postInit.sqf
Normal file
@ -0,0 +1,55 @@
|
||||
// by commy2 and CAA-Picard
|
||||
#define STRENGHTODEAFNESS 3
|
||||
#define MAXDEAFNESS 1.1
|
||||
|
||||
GVAR(currentDeafness) = 0;
|
||||
GVAR(newStrength) = 0;
|
||||
|
||||
// Spawn volume updating process
|
||||
0 spawn {
|
||||
while {true} do {
|
||||
_player = ACE_player;
|
||||
|
||||
// Check if new noises increase deafness
|
||||
if (GVAR(newStrength) * STRENGHTODEAFNESS > GVAR(currentDeafness)) then {
|
||||
GVAR(currentDeafness) = GVAR(newStrength) * STRENGHTODEAFNESS min MAXDEAFNESS;
|
||||
};
|
||||
GVAR(newStrength) = 0;
|
||||
|
||||
// Recover rate is slower if deafness is severe
|
||||
_recoverRate = 0.01;
|
||||
if (GVAR(currentDeafness) > 0.7) then {
|
||||
_recoverRate = 0.005;
|
||||
if (GVAR(currentDeafness) > 0.9) then {
|
||||
_recoverRate = 0.002;
|
||||
};
|
||||
};
|
||||
|
||||
// Deafness recovers with time
|
||||
GVAR(currentDeafness) = GVAR(currentDeafness) - _recoverRate max 0;
|
||||
|
||||
// needed until Bohemia fixes playSound to actually use the second argument
|
||||
_volume = (1 - GVAR(currentDeafness) max 0)^2 max 0.1;
|
||||
|
||||
// Earplugs reduce hearing 20%
|
||||
if ([_player] call FUNC(hasEarPlugsIn)) then {
|
||||
_volume = _volume min 0.8;
|
||||
};
|
||||
|
||||
// Reduce volume if player is unconscious
|
||||
if (_player getVariable ["ACE_isUnconscious", false]) then {
|
||||
_volume = _volume min 0.4;
|
||||
};
|
||||
|
||||
if (!(missionNameSpace getVariable [QGVAR(disableVolumeUpdate), false])) then {
|
||||
0.1 fadeSound _volume;
|
||||
0.1 fadeSpeech _volume;
|
||||
_player setVariable ["tf_globalVolume", _volume];
|
||||
_player setVariable ["acre_sys_core_globalVolume", _volume];
|
||||
};
|
||||
|
||||
//hintSilent format ["GVAR(currentDeafness), _Volume = %1, %2", GVAR(currentDeafness), _volume];
|
||||
|
||||
sleep 0.1;
|
||||
};
|
||||
};
|
9
addons/hearing/XEH_preInit.sqf
Normal file
9
addons/hearing/XEH_preInit.sqf
Normal file
@ -0,0 +1,9 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
PREP(addEarPlugs);
|
||||
PREP(earRinging);
|
||||
PREP(explosionNear);
|
||||
PREP(firedNear);
|
||||
PREP(hasEarPlugsIn);
|
||||
PREP(putInEarPlugs);
|
||||
PREP(removeEarPlugs);
|
@ -1,64 +0,0 @@
|
||||
// by commy2 and CAA-Picard
|
||||
#define STRENGHTODEAFNESS 3
|
||||
#define MAXDEAFNESS 1.1
|
||||
|
||||
AGM_CurrentDeafness = 0;
|
||||
AGM_NewStrength = 0;
|
||||
|
||||
// Spawn volume updating process
|
||||
0 spawn {
|
||||
while {true} do {
|
||||
_player = AGM_player;
|
||||
|
||||
// Check if new noises increase deafness
|
||||
if (AGM_NewStrength * STRENGHTODEAFNESS > AGM_CurrentDeafness) then {
|
||||
AGM_CurrentDeafness = AGM_NewStrength * STRENGHTODEAFNESS min MAXDEAFNESS;
|
||||
|
||||
// icon is CUT
|
||||
/*if (AGM_CurrentDeafness > 0.4) then {
|
||||
if (AGM_CurrentDeafness > 0.8) then {
|
||||
[parseText "<img align='center' size='2.5' color='#FF0000' image='AGM_Hearing\UI\deafness_x_ca.paa'/>"] call AGM_Core_fnc_displayTextStructured;
|
||||
} else {
|
||||
[parseText "<img align='center' size='2.5' color='#FFFF00' image='AGM_Hearing\UI\deafness_x_ca.paa'/>"] call AGM_Core_fnc_displayTextStructured;
|
||||
};
|
||||
};*/
|
||||
};
|
||||
AGM_NewStrength = 0;
|
||||
|
||||
// Recover rate is slower if deafness is severe
|
||||
_recoverRate = 0.01;
|
||||
if (AGM_CurrentDeafness > 0.7) then {
|
||||
_recoverRate = 0.005;
|
||||
if (AGM_CurrentDeafness > 0.9) then {
|
||||
_recoverRate = 0.002;
|
||||
};
|
||||
};
|
||||
|
||||
// Deafness recovers with time
|
||||
AGM_CurrentDeafness = AGM_CurrentDeafness - _recoverRate max 0;
|
||||
|
||||
// needed until Bohemia fixes playSound to actually use the second argument
|
||||
_volume = (1 - AGM_CurrentDeafness max 0)^2 max 0.1;
|
||||
|
||||
// Earplugs reduce hearing 20%
|
||||
if ([_player] call AGM_Hearing_fnc_hasEarPlugsIn) then {
|
||||
_volume = _volume min 0.8;
|
||||
};
|
||||
|
||||
// Reduce volume if player is unconscious
|
||||
if (_player getVariable ["AGM_isUnconscious", false]) then {
|
||||
_volume = _volume min 0.4;
|
||||
};
|
||||
|
||||
if (!(missionNameSpace getVariable ["AGM_Hearing_disableVolumeUpdate", false])) then {
|
||||
0.1 fadeSound _volume;
|
||||
0.1 fadeSpeech _volume;
|
||||
_player setVariable ["tf_globalVolume", _volume];
|
||||
_player setVariable ["acre_sys_core_globalVolume", _volume];
|
||||
};
|
||||
|
||||
//hintSilent format ["AGM_CurrentDeafness, _Volume = %1, %2", AGM_CurrentDeafness, _volume];
|
||||
|
||||
sleep 0.1;
|
||||
};
|
||||
};
|
@ -1,198 +1,23 @@
|
||||
#include "script_component.hpp"
|
||||
|
||||
class CfgPatches {
|
||||
class AGM_Hearing {
|
||||
units[] = {};
|
||||
weapons[] = {"AGM_EarBuds"};
|
||||
requiredVersion = 0.60;
|
||||
requiredAddons[] = {AGM_Core, AGM_Interaction};
|
||||
version = "0.95";
|
||||
versionStr = "0.95";
|
||||
versionAr[] = {0,95,0};
|
||||
author[] = {"KoffeinFlummi", "CAA-Picard", "HopeJ", "commy2"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
};
|
||||
class ADDON {
|
||||
units[] = {};
|
||||
weapons[] = {"ACE_EarBuds"};
|
||||
requiredVersion = REQUIRED_VERSION;
|
||||
requiredAddons[] = {"ace_common"};
|
||||
author[] = {"KoffeinFlummi", "CAA-Picard", "HopeJ", "commy2"};
|
||||
authorUrl = "https://github.com/KoffeinFlummi/";
|
||||
VERSION_CONFIG;
|
||||
};
|
||||
};
|
||||
|
||||
class CfgFunctions {
|
||||
class AGM_Hearing {
|
||||
class AGM_Hearing {
|
||||
file = "AGM_Hearing\functions";
|
||||
class addEarPlugs;
|
||||
class earRinging;
|
||||
class explosionNear;
|
||||
class firedNear;
|
||||
class hasEarPlugsIn;
|
||||
class putInEarPlugs;
|
||||
class removeEarPlugs;
|
||||
};
|
||||
};
|
||||
};
|
||||
#include "CfgEventHandlers.hpp"
|
||||
|
||||
class Extended_PostInit_EventHandlers {
|
||||
class AGM_Hearing {
|
||||
clientInit = "call compile preprocessFileLineNumbers '\AGM_Hearing\clientInit.sqf'";
|
||||
};
|
||||
};
|
||||
#include "CfgVehicles.hpp"
|
||||
|
||||
class Extended_Init_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Hearing_AddEarPlugs {
|
||||
init = "if (local (_this select 0)) then {_this call AGM_Hearing_fnc_addEarPlugs};";
|
||||
};
|
||||
};
|
||||
};
|
||||
#include "CfgSounds.hpp"
|
||||
|
||||
class Extended_FiredNear_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Hearing_FiredNear {
|
||||
clientFiredNear = "if (_this select 0 == AGM_player) then {_this call AGM_Hearing_fnc_firedNear};";
|
||||
};
|
||||
};
|
||||
};
|
||||
#include "CfgWeapons.hpp"
|
||||
|
||||
class Extended_Explosion_EventHandlers {
|
||||
class CAManBase {
|
||||
class AGM_Hearing_ExplosionNear {
|
||||
clientExplosion = "if (_this select 0 == AGM_player) then {_this call AGM_Hearing_fnc_explosionNear};";
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
#define MACRO_ADDITEM(ITEM,COUNT) class _xx_##ITEM { \
|
||||
name = #ITEM; \
|
||||
count = COUNT; \
|
||||
};
|
||||
|
||||
class CfgVehicles {
|
||||
class Man;
|
||||
class CAManBase: Man {
|
||||
class AGM_SelfActions {
|
||||
class AGM_Equipment {
|
||||
class AGM_PutInEarplugs {
|
||||
displayName = "$STR_AGM_Hearing_Earbuds_On";
|
||||
condition = "!([_player] call AGM_Hearing_fnc_hasEarPlugsIn) && {'AGM_EarBuds' in items _player}";
|
||||
statement = "[_player] call AGM_Hearing_fnc_putInEarPlugs";
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = "AGM_Hearing\UI\agm_earplugs_x_ca.paa";
|
||||
hotkey = "E";
|
||||
enableInside = 1;
|
||||
};
|
||||
class AGM_RemoveEarplugs {
|
||||
displayName = "$STR_AGM_Hearing_Earbuds_Off";
|
||||
condition = "[_player] call AGM_Hearing_fnc_hasEarPlugsIn";
|
||||
statement = "[_player] call AGM_Hearing_fnc_removeEarPlugs";
|
||||
showDisabled = 0;
|
||||
priority = 2.5;
|
||||
icon = "AGM_Hearing\UI\agm_earplugs_x_ca.paa";
|
||||
hotkey = "E";
|
||||
enableInside = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class ReammoBox_F;
|
||||
class NATO_Box_Base;
|
||||
class EAST_Box_Base;
|
||||
class IND_Box_Base;
|
||||
class FIA_Box_Base_F;
|
||||
|
||||
class Box_NATO_Support_F: NATO_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class B_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_East_Support_F: EAST_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class O_supplyCrate_F: B_supplyCrate_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_IND_Support_F: IND_Box_Base {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class Box_FIA_Support_F: FIA_Box_Base_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class I_supplyCrate_F: B_supplyCrate_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class IG_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class C_supplyCrate_F: ReammoBox_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
|
||||
class AGM_Box_Misc: Box_NATO_Support_F {
|
||||
class TransportItems {
|
||||
MACRO_ADDITEM(AGM_EarBuds,12)
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgSounds {
|
||||
class AGM_EarRinging_Weak {
|
||||
sound[] = {"\AGM_Hearing\sounds\agm_earringing_weak.wav",8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
class AGM_EarRinging_Medium {
|
||||
sound[] = {"\AGM_Hearing\sounds\agm_earringing_medium.wav",8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
class AGM_EarRinging_Heavy {
|
||||
sound[] = {"\AGM_Hearing\sounds\agm_earringing_heavy.wav",8,1.7};
|
||||
titles[] = {};
|
||||
};
|
||||
};
|
||||
|
||||
class CfgWeapons {
|
||||
class AGM_ItemCore;
|
||||
class InventoryItem_Base_F;
|
||||
|
||||
class AGM_EarBuds: AGM_ItemCore {
|
||||
displayName = "$STR_AGM_Hearing_Earbuds_Name";
|
||||
descriptionShort = "$STR_AGM_Hearing_Earbuds_Description";
|
||||
model = "\AGM_Hearing\agm_earplugs.p3d";
|
||||
picture = "\AGM_Hearing\UI\agm_earplugs_x_ca.paa";
|
||||
scope = 2;
|
||||
class ItemInfo: InventoryItem_Base_F {
|
||||
mass = 1;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
// Setting up old stuff for A3
|
||||
class CfgAmmo {
|
||||
class BulletBase;
|
||||
class B_127x108_Ball: BulletBase {
|
||||
audibleFire = 15;
|
||||
};
|
||||
};
|
||||
#include "CfgAmmo.hpp"
|
||||
|
@ -2,13 +2,14 @@
|
||||
* Author: commy2
|
||||
*
|
||||
* Called on unit initialization. Adds earplugs if the unit is equipped with either a really loud primary weapon or a rocket launcher.
|
||||
*
|
||||
*
|
||||
* Argument:
|
||||
* 0: A Soldier (Object)
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
* Nothing
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private ["_unit", "_launcher"];
|
||||
|
||||
@ -18,7 +19,7 @@ _unit = _this select 0;
|
||||
_launcher = secondaryWeapon _unit;
|
||||
|
||||
if (_launcher != "") exitWith {
|
||||
_unit addItem "AGM_EarBuds";
|
||||
_unit addItem "ACE_EarBuds";
|
||||
};
|
||||
|
||||
// otherwise add earplugs if the soldier has a big rifle
|
||||
@ -31,5 +32,5 @@ if (isNil "_magazine") exitWith {};
|
||||
_ammo = getText (configFile >> "CfgMagazines" >> _magazine >> "ammo");
|
||||
|
||||
if (getNumber (configFile >> "CfgAmmo" >> _ammo >> "audiblefire") > 8) then {
|
||||
_unit addItem "AGM_EarBuds";
|
||||
_unit addItem "ACE_EarBuds";
|
||||
};
|
||||
|
@ -9,41 +9,42 @@
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private ["_unit", "_strength"];
|
||||
|
||||
_unit = _this select 0;
|
||||
_strength = _this select 1;
|
||||
|
||||
if (_unit getVariable ["AGM_hasEarPlugsin", false] || {_unit getVariable ["X39_MedSys_var_hasEarplugs", false]}) then {
|
||||
if (_unit getVariable ["ACE_hasEarPlugsin", false]) then {
|
||||
_strength = _strength / 4;
|
||||
};
|
||||
|
||||
AGM_NewStrength = AGM_NewStrength max _strength;
|
||||
GVAR(newStrength) = GVAR(newStrength) max _strength;
|
||||
|
||||
if (missionNamespace getVariable ["AGM_isEarRingingPlaying", false]) exitWith {};
|
||||
if (missionNamespace getVariable [QGVAR(isEarRingingPlaying), false]) exitWith {};
|
||||
|
||||
if (_strength > 0.75) exitWith {
|
||||
playSound "AGM_EarRinging_Heavy";
|
||||
AGM_isEarRingingPlaying = true;
|
||||
playSound "ACE_EarRinging_Heavy";
|
||||
GVAR(isEarRingingPlaying) = true;
|
||||
0 spawn {
|
||||
sleep 7;
|
||||
AGM_isEarRingingPlaying = false;
|
||||
GVAR(isEarRingingPlaying) = false;
|
||||
};
|
||||
};
|
||||
if (_strength > 0.5) exitWith {
|
||||
playSound "AGM_EarRinging_Medium";
|
||||
AGM_isEarRingingPlaying = true;
|
||||
playSound "ACE_EarRinging_Medium";
|
||||
GVAR(isEarRingingPlaying) = true;
|
||||
0 spawn {
|
||||
sleep 5;
|
||||
AGM_isEarRingingPlaying = false;
|
||||
GVAR(isEarRingingPlaying) = false;
|
||||
};
|
||||
};
|
||||
if (_strength > 0.2) exitWith {
|
||||
playSound "AGM_EarRinging_Weak";
|
||||
AGM_isEarRingingPlaying = true;
|
||||
playSound "ACE_EarRinging_Weak";
|
||||
GVAR(isEarRingingPlaying) = true;
|
||||
0 spawn {
|
||||
sleep 3;
|
||||
AGM_isEarRingingPlaying = false;
|
||||
GVAR(isEarRingingPlaying) = false;
|
||||
};
|
||||
};
|
||||
|
@ -9,6 +9,7 @@
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private ["_unit", "_damage", "_strength"];
|
||||
|
||||
@ -20,5 +21,5 @@ if (_strength < 0.01) exitWith {};
|
||||
|
||||
[_unit, _strength] spawn {
|
||||
sleep 0.2;
|
||||
_this call AGM_Hearing_fnc_earRinging;
|
||||
_this call FUNC(earRinging);
|
||||
};
|
||||
|
@ -9,6 +9,7 @@
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private ["_unit", "_firer", "_distance", "_weapon", "_muzzle", "_mode", "_ammo", "_silencer", "_audibleFireCoef", "_loudness", "_strength"];
|
||||
|
||||
@ -21,7 +22,7 @@ _mode = _this select 5;
|
||||
_ammo = _this select 6;
|
||||
|
||||
if (_weapon in ["Throw", "Put"]) exitWith {};
|
||||
if (_unit != vehicle _unit && {!([_unit] call AGM_Core_fnc_isTurnedOut)}) exitWith {};
|
||||
if (_unit != vehicle _unit && {!([_unit] call EFUNC(common,isTurnedOut))}) exitWith {};
|
||||
|
||||
_silencer = switch (_weapon) do {
|
||||
case (primaryWeapon _unit) : {primaryWeaponItems _unit select 0};
|
||||
@ -47,5 +48,5 @@ if (_strength < 0.01) exitWith {};
|
||||
|
||||
[_unit, _strength] spawn {
|
||||
sleep 0.2;
|
||||
_this call AGM_Hearing_fnc_earRinging;
|
||||
_this call FUNC(earRinging);
|
||||
};
|
||||
|
@ -2,16 +2,17 @@
|
||||
* Author: commy2
|
||||
*
|
||||
* Check if the unit has earplugs put in.
|
||||
*
|
||||
*
|
||||
* Argument:
|
||||
* A soldier (Object)
|
||||
*
|
||||
*
|
||||
* Return value:
|
||||
* Boolean (Bool)
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private "_unit";
|
||||
|
||||
_unit = _this select 0;
|
||||
|
||||
_unit getVariable ["AGM_hasEarPlugsin", false] || {_unit getVariable ["X39_MedSys_var_hasEarplugs", false]}
|
||||
_unit getVariable ["ACE_hasEarPlugsin", false]
|
||||
|
@ -10,6 +10,7 @@
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private "_player";
|
||||
|
||||
@ -20,7 +21,7 @@ _player removeItem "AGM_EarBuds";
|
||||
|
||||
_player setVariable ["AGM_hasEarPlugsIn", true, true];
|
||||
|
||||
[localize "STR_AGM_Hearing_Earbuds_Are_On"] call AGM_Core_fnc_displayTextStructured;
|
||||
[localize "STR_AGM_Hearing_Earbuds_Are_On"] call EFUNC(common,displayTextStructured);
|
||||
|
||||
/*// No Ear Buds in inventory, telling user
|
||||
[localize "STR_AGM_Hearing_NoBuds"] call AGM_Core_fnc_displayTextStructured;*/
|
||||
[localize "STR_AGM_Hearing_NoBuds"] call EFUNC(common,displayTextStructured);*/
|
||||
|
@ -10,18 +10,19 @@
|
||||
* Return Value:
|
||||
* none
|
||||
*/
|
||||
#include "\z\ace\addons\hearing\script_component.hpp"
|
||||
|
||||
private "_player";
|
||||
|
||||
_player = _this select 0;
|
||||
|
||||
if !(_player canAdd "AGM_EarBuds") exitWith { // inventory full
|
||||
[localize "STR_AGM_Hearing_Inventory_Full"] call AGM_Core_fnc_displayTextStructured;
|
||||
if !(_player canAdd "ACE_EarBuds") exitWith { // inventory full
|
||||
[localize "STR_ACE_Hearing_Inventory_Full"] call EFUNC(common,displayTextStructured);
|
||||
};
|
||||
|
||||
// Buds already in and removing them.
|
||||
_player addItem "AGM_EarBuds";
|
||||
_player addItem "ACE_EarBuds";
|
||||
|
||||
_player setVariable ["AGM_hasEarPlugsIn", false, true];
|
||||
_player setVariable ["ACE_hasEarPlugsIn", false, true];
|
||||
|
||||
[localize "STR_AGM_Hearing_Earbuds_Are_Off"] call AGM_Core_fnc_displayTextStructured;
|
||||
[localize "STR_ACE_Hearing_Earbuds_Are_Off"] call EFUNC(common,displayTextStructured);
|
||||
|
Loading…
Reference in New Issue
Block a user