mirror of
https://github.com/acemod/ACE3.git
synced 2024-08-30 18:23:18 +00:00
e2ac18a05d
* advanced_ballistics * advanced_fatigue * advanced_throwing * ai * aircraft * arsenal * atragmx * attach * backpacks * ballistics * captives * cargo * chemlights * common * concertina_wire * cookoff * dagr * disarming * disposable * dogtags * dragging * explosives * fastroping * fcs * finger * frag * gestures * gforces * goggles * grenades * gunbag * hearing * hitreactions * huntir * interact_menu * interaction * inventory * kestrel4500 * laser * laserpointer * logistics_uavbattery * logistics_wirecutter * magazinerepack * map * map_gestures * maptools * markers * medical * medical_ai * medical_blood * medical_menu * microdagr * minedetector * missileguidance * missionmodules * mk6mortar * modules * movement * nametags * nightvision * nlaw * optics * optionsmenu * overheating * overpressure * parachute * pylons * quickmount * rangecard * rearm * recoil * refuel * reload * reloadlaunchers * repair * respawn * safemode * sandbag * scopes * slideshow * spectator * spottingscope * switchunits * tacticalladder * tagging * trenches * tripod * ui * vector * vehiclelock * vehicles * viewdistance * weaponselect * weather * winddeflection * yardage450 * zeus * arsenal defines.hpp * optionals * DEBUG_MODE_FULL 1 * DEBUG_MODE_FULL 2 * Manual fixes * Add SQF Validator check for #include after block comment * explosives fnc_openTimerUI * fix uniqueItems
107 lines
3.8 KiB
Plaintext
107 lines
3.8 KiB
Plaintext
#include "script_component.hpp"
|
|
/*
|
|
* Author: commy2
|
|
* Used to execute the checkPBOs module without placing the module. Don't use this together with the module.
|
|
* Checks PBO versions and compares to the one running on server.
|
|
*
|
|
* Arguments:
|
|
* 0: Mode <NUMBER>
|
|
* 0 = Warn once
|
|
* 1 = Warn permanently
|
|
* 2 = Kick
|
|
* 1: Check all PBOs? (default: false) <BOOL>
|
|
* 2: Whitelist (default: "") <STRING>
|
|
*
|
|
* Return Value:
|
|
* None
|
|
*
|
|
* Example:
|
|
* [0, false, ""] call ace_common_fnc_checkPBOs
|
|
*
|
|
* Public: Yes
|
|
*/
|
|
|
|
params ["_mode", ["_checkAll", false], ["_whitelist", "", [""]]];
|
|
TRACE_3("params",_mode,_checkAll,_whitelist);
|
|
|
|
//lowercase and convert whiteList String into array of strings:
|
|
_whitelist = toLower _whitelist;
|
|
_whitelist = _whitelist splitString "[,""']";
|
|
TRACE_1("Array",_whitelist);
|
|
|
|
ACE_Version_CheckAll = _checkAll;
|
|
ACE_Version_Whitelist = _whitelist;
|
|
|
|
if (!_checkAll) exitWith {}; //ACE is checked by FUNC(checkFiles)
|
|
|
|
if (!isServer) then {
|
|
[{
|
|
if (isNil "ACE_Version_ClientErrors") exitWith {};
|
|
|
|
ACE_Version_ClientErrors params ["_missingAddon", "_missingAddonServer", "_oldVersionClient", "_oldVersionServer"];
|
|
|
|
(_this select 0) params ["_mode", "_checkAll", "_whitelist"];
|
|
|
|
// Display error message.
|
|
if (_missingAddon || {_missingAddonServer} || {_oldVersionClient} || {_oldVersionServer}) then {
|
|
private _text = "[ACE] Version mismatch:<br/><br/>";
|
|
private _error = format ["ACE version mismatch: %1: ", profileName];
|
|
|
|
if (_missingAddon) then {
|
|
_text = _text + "Detected missing addon on client<br/>";
|
|
_error = _error + "Missing file(s); ";
|
|
};
|
|
if (_missingAddonServer) then {
|
|
_text = _text + "Detected missing addon on server<br/>";
|
|
_error = _error + "Additional file(s); ";
|
|
};
|
|
if (_oldVersionClient) then {
|
|
_text = _text + "Detected old client version<br/>";
|
|
_error = _error + "Older version; ";
|
|
};
|
|
if (_oldVersionServer) then {
|
|
_text = _text + "Detected old server version<br/>";
|
|
_error = _error + "Newer version; ";
|
|
};
|
|
|
|
//[QGVAR(systemChatGlobal), _error] call CBA_fnc_globalEvent;
|
|
|
|
ERROR(_error);
|
|
|
|
if (_mode < 2) then {
|
|
_text = composeText [lineBreak, parseText format ["<t align='center'>%1</t>", _text]];
|
|
|
|
private _rscLayer = "ACE_RscErrorHint" call BIS_fnc_rscLayer;
|
|
_rscLayer cutRsc ["ACE_RscErrorHint", "PLAIN", 0, true];
|
|
|
|
disableSerialization;
|
|
private _ctrlHint = uiNamespace getVariable "ACE_ctrlErrorHint";
|
|
_ctrlHint ctrlSetStructuredText _text;
|
|
|
|
if (_mode == 0) then {
|
|
[{
|
|
params ["_rscLayer"];
|
|
TRACE_2("Hiding Error message after 10 seconds",time,_rscLayer);
|
|
_rscLayer cutFadeOut 0.2;
|
|
}, [_rscLayer], 10] call CBA_fnc_waitAndExecute;
|
|
};
|
|
};
|
|
|
|
if (_mode == 2) then {
|
|
[{alive player}, { // To be able to show list if using checkAll
|
|
params ["_text"];
|
|
TRACE_2("Player is alive, showing msg and exiting",time,_text);
|
|
_text = composeText [parseText format ["<t align='center'>%1</t>", _text]];
|
|
["[ACE] ERROR", _text, {findDisplay 46 closeDisplay 0}] call FUNC(errorMessage);
|
|
}, [_text]] call CBA_fnc_waitUntilAndExecute;
|
|
};
|
|
};
|
|
|
|
[_this select 1] call CBA_fnc_removePerFrameHandler;
|
|
}, 1, [_mode, _checkAll, _whitelist]] call CBA_fnc_addPerFrameHandler;
|
|
};
|
|
|
|
if (_checkAll) then {
|
|
0 spawn COMPILE_FILE(scripts\checkVersionNumber); // @todo
|
|
};
|