if hasInterface then { uiNamespace setVariable [ "VEMFrMsgQueue", [] ]; uiNamespace setVariable [ "RscDisplayVEMFrClient", displayNull ]; uiNamespace setVariable [ "RscDisplayBaseAttack", displayNull ]; if isMultiplayer then { _handleMessage = { _data = _this; params [ "_msg", "_mode" ]; if ( _mode isEqualTo "sys" ) then { systemChat _msg }; if ( _mode isEqualTo "" ) then { ( uiNamespace getVariable [ "VEMFrMsgQueue", [] ] ) pushBack _msg; if ( isNull ( uiNamespace getVariable [ "RscDisplayVEMFrClient", displayNull ] ) ) then { ( [ "RscDisplayVEMFrClient" ] call BIS_fnc_rscLayer ) cutRsc [ "RscDisplayVEMFrClient", "PLAIN", 0, true ] }; }; if ( _mode isEqualTo "ba" ) then { _dsp = uiNamespace getVariable [ "RscDisplayBaseAttack", displayNull ]; if ( ( _msg isEqualTo "a" ) AND ( isNull _dsp ) ) then { ( [ "RscDisplayBaseAttack" ] call BIS_fnc_rscLayer ) cutRsc [ "RscDisplayBaseAttack", "PLAIN", 0, true ]; }; if ( ( _msg isEqualTo "d" ) AND not ( isNull _dsp ) ) then { _dsp setVariable [ "doFlash", false ]; waitUntil { if ( _dsp getVariable [ "doingFlash", false ] ) then { uiSleep 0.5; false } else { true } }; _ctrl = _dsp displayCtrl 1; _oldTxt = ctrlText _ctrl; for "_i" from ( count ( ctrlText _ctrl ) ) to 0 step -1 do { _ctrl ctrlSetText ( _oldTxt select [ 0, _i ] ); uiSleep 0.035; }; _ctrl ctrlSetTextColor [ 0.333, 1, 0.557, 1 ]; _nwTxt = "// [ Attack on Base ended ] \\"; for "_i" from 0 to ( count _nwTxt ) do { _ctrl ctrlSetText ( _nwTxt select [ 0, _i ] ); uiSleep 0.035; }; _dsp setVariable [ "doFlash", true ]; uiSleep 12.5; ( [ "RscDisplayBaseAttack" ] call BIS_fnc_rscLayer ) cutFadeOut 0.5; }; }; }; while { true } do { if not ( isNil "VEMFrMsgToClient" ) then { VEMFrMsgToClient spawn _handleMessage; VEMFrMsgToClient = nil; } else { uiSleep 0.05 }; }; } else { _arr = uiNamespace getVariable [ "VEMFrMsgQueue", [] ]; _arr pushBack [ 0, "NEW TAKEOVER", "Raiders have taken over ..." ]; _arr pushBack [ 1, "NEW POLICE RAID", format [ "%1 Police forces are raiding ...", worldName ] ]; _arr pushBack [ 2, "NEW S.W.A.T. RAID", format [ "%1's S.W.A.T. teams are raiding ...", worldName ] ]; waitUntil { if not ( isNull ( findDisplay 46 ) ) then { true } else { uiSleep 0.5; false } }; player addAction [ "Trigger VEMFr Message", { ( [ "RscDisplayVEMFrClient" ] call BIS_fnc_rscLayer ) cutRsc [ "RscDisplayVEMFrClient", "PLAIN", 0, true ] }, "", -1, false, true, "User2", "alive player" ]; player addAction [ "Trigger BaseAttack", { ( [ "RscDisplayBaseAttack" ] call BIS_fnc_rscLayer ) cutRsc [ "RscDisplayBaseAttack", "PLAIN", 0, true ] }, "", -1, false, true, "", "alive player" ]; }; };