mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
mute implementation in noradio, handle post init on remote units
This commit is contained in:
parent
54f29d75f5
commit
e87f491470
@ -26,6 +26,9 @@ class Extended_InitPost_EventHandlers {
|
|||||||
class GVAR(forceWalk) {
|
class GVAR(forceWalk) {
|
||||||
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};);
|
init = QUOTE(if (local (_this select 0)) then {_this call FUNC(applyForceWalkStatus);};);
|
||||||
};
|
};
|
||||||
|
class GVAR(muteUnit) {
|
||||||
|
init = QUOTE(_this call FUNC(muteUnitHandleInitPost));
|
||||||
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -124,6 +124,7 @@ PREP(moduleCheckPBOs);
|
|||||||
PREP(moduleLSDVehicles);
|
PREP(moduleLSDVehicles);
|
||||||
PREP(moveToTempGroup);
|
PREP(moveToTempGroup);
|
||||||
PREP(muteUnit);
|
PREP(muteUnit);
|
||||||
|
PREP(muteUnitHandleInitPost);
|
||||||
PREP(muteUnitHandleRespawn);
|
PREP(muteUnitHandleRespawn);
|
||||||
PREP(numberToDigits);
|
PREP(numberToDigits);
|
||||||
PREP(numberToDigitsString);
|
PREP(numberToDigitsString);
|
||||||
|
@ -33,6 +33,6 @@ _speaker = speaker _unit;
|
|||||||
|
|
||||||
if (_speaker == "ACE_NoVoice") exitWith {};
|
if (_speaker == "ACE_NoVoice") exitWith {};
|
||||||
|
|
||||||
["setSpeaker", _unit, [_unit, "ACE_NoVoice"]] call FUNC(targetEvent);
|
["setSpeaker", [_unit, "ACE_NoVoice"]] call FUNC(globalEvent);
|
||||||
|
|
||||||
_unit setVariable ["ACE_OriginalSpeaker", _speaker, true];
|
_unit setVariable ["ACE_OriginalSpeaker", _speaker, true];
|
||||||
|
11
addons/common/functions/fnc_muteUnitHandleInitPost.sqf
Normal file
11
addons/common/functions/fnc_muteUnitHandleInitPost.sqf
Normal file
@ -0,0 +1,11 @@
|
|||||||
|
// by commy2
|
||||||
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
private "_unit";
|
||||||
|
|
||||||
|
_unit = _this select 0;
|
||||||
|
|
||||||
|
// setSpeaker gets overwritten after init on remote units; if unit is muted, setSpeaker again
|
||||||
|
if (count (_unit getVariable [QGVAR(muteUnitReasons), []]) > 0) then {
|
||||||
|
["setSpeaker", [_unit, "ACE_NoVoice"]] call FUNC(localEvent);
|
||||||
|
};
|
@ -1,31 +1,29 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
|
/*
|
||||||
_setupPlayer = {
|
_setupPlayer = {
|
||||||
if (!isNull ACE_player) then {
|
if (!isNull ACE_player) then {
|
||||||
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
[(_this select 1)] call cba_fnc_removePerFrameHandler;
|
||||||
|
|
||||||
[ACE_player] call EFUNC(common,muteUnit);
|
[ACE_player, "isPlayer"] call EFUNC(common,muteUnit);
|
||||||
ACE_player setVariable [QGVAR(isMuted), true, true];
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
[_setupPlayer, 0, []] call CBA_fnc_addPerFrameHandler;
|
[_setupPlayer, 0, []] call CBA_fnc_addPerFrameHandler;
|
||||||
|
*/
|
||||||
|
|
||||||
|
if (!hasInterface) exitWith {};
|
||||||
|
|
||||||
// Mutes/unmutes units when the player changes
|
// Mutes/unmutes units when the player changes
|
||||||
["playerChanged", {
|
["playerChanged", {
|
||||||
EXPLODE_2_PVT(_this,_newPlayer,_oldPlayer);
|
EXPLODE_2_PVT(_this,_newPlayer,_oldPlayer);
|
||||||
|
|
||||||
// On player change mute the new player
|
// On player change mute the new player
|
||||||
[_newPlayer] call EFUNC(common,muteUnit);
|
[_newPlayer, "isPlayer"] call EFUNC(common,muteUnit);
|
||||||
_newPlayer setVariable [QGVAR(isMuted), true, true];
|
|
||||||
|
|
||||||
// Unmute the old player
|
// Unmute the old player
|
||||||
//@todo: sort interaction with medical system
|
if (alive _oldPlayer) then {
|
||||||
if (!(_oldPlayer getVariable ["ACE_isUnconscious", false]) && {alive _oldPlayer}) then {
|
[_oldPlayer, "isPlayer"] call EFUNC(common,unmuteUnit);
|
||||||
[_oldPlayer] call EFUNC(common,unMuteUnit);
|
|
||||||
};
|
};
|
||||||
_oldPlayer setVariable [QGVAR(isMuted), false, true];
|
|
||||||
|
|
||||||
}] call EFUNC(common,addEventhandler);
|
}] call EFUNC(common,addEventhandler);
|
||||||
|
@ -1,10 +1,6 @@
|
|||||||
// by commy2
|
// by commy2
|
||||||
|
|
||||||
#include "script_component.hpp"
|
#include "script_component.hpp"
|
||||||
|
|
||||||
addMissionEventHandler ["HandleDisconnect", {
|
addMissionEventHandler ["HandleDisconnect", {
|
||||||
if !((_this select 0) getVariable ["ACE_isUnconscious", false]) then { //@ToDo: ai waking up will be silent?
|
[_this select 0, "isPlayer"] call EFUNC(common,unmuteUnit);
|
||||||
_this call EFUNC(common,unMuteUnit);
|
|
||||||
};
|
|
||||||
(_this select 0) setVariable [QGVAR(isMuted), false, true];
|
|
||||||
}];
|
}];
|
||||||
|
Loading…
Reference in New Issue
Block a user