From e552d22df4619d7edf021966dd475aa7bad6dd90 Mon Sep 17 00:00:00 2001 From: Andrew Gregory Date: Mon, 25 Apr 2016 13:38:16 +0100 Subject: [PATCH 01/26] Player Death Options and Antagonist Updates Changelog to follow. --- .../compile/EPOCH_supportCopter.sqf | 29 ++- .../epoch_code/compile/EPOCH_unitSpawn.sqf | 48 +++-- .../functions/EPOCH_fnc_dirToFuzzy.sqf | 4 +- .../EPOCH_fnc_playerAttachToAntagonist.sqf | 65 ++++++ .../functions/EPOCH_fnc_playerDeath.sqf | 19 +- .../EPOCH_fnc_playerDeathDetonate.sqf | 36 ++++ .../functions/EPOCH_fnc_playerDeathMorph.sqf | 38 ++++ .../functions/EPOCH_fnc_playerSetVariable.sqf | 30 +++ .../functions/EPOCH_fnc_triggerAntagonist.sqf | 27 +++ .../epoch_config/Configs/CfgEpochClient.hpp | 27 ++- .../epoch_config/Configs/CfgRemoteExec.hpp | 15 +- .../EPOCH_server_triggerAntagonist.sqf | 24 +++ .../EPOCH_Server_airDropCrate.sqf | 4 +- .../EPOCH_Server_createAirDrop.sqf | 4 +- .../EPOCH_Server_createObject.sqf | 4 +- .../EPOCH_server_deadPlayerDetonate.sqf | 22 ++ .../EPOCH_server_playerSetVariable.sqf | 18 ++ Sources/epoch_server/config.cpp | 203 ++++++++++-------- 18 files changed, 483 insertions(+), 134 deletions(-) create mode 100644 Sources/epoch_code/compile/functions/EPOCH_fnc_playerAttachToAntagonist.sqf create mode 100644 Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathDetonate.sqf create mode 100644 Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathMorph.sqf create mode 100644 Sources/epoch_code/compile/functions/EPOCH_fnc_playerSetVariable.sqf create mode 100644 Sources/epoch_code/compile/functions/EPOCH_fnc_triggerAntagonist.sqf create mode 100644 Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_triggerAntagonist.sqf create mode 100644 Sources/epoch_server/compile/epoch_player/EPOCH_server_deadPlayerDetonate.sqf create mode 100644 Sources/epoch_server/compile/epoch_player/EPOCH_server_playerSetVariable.sqf diff --git a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf index 6f6d9f21..50920082 100644 --- a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf +++ b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf @@ -22,16 +22,29 @@ _grp = createGroup RESISTANCE; _grp setBehaviour "COMBAT"; _grp setCombatMode "RED"; -// TODO: make configized -_arrUnits = ["I_Soldier_EPOCH", "I_Soldier2_EPOCH", "I_Soldier3_EPOCH"]; +_minAISkill = getNumber (getMissionConfig "CfgEpochUAVSupport" >> "minAISkill"); +_arrUnits = getArray (getMissionConfig "CfgEpochUAVSupport" >> "unitTypes"); +_unitCount = getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxUnitNum"); _arrSkills = ["aimingAccuracy","aimingShake","aimingSpeed","endurance","spotDistance","spotTime","courage","reloadSpeed","commanding","general"]; +_arrVals = [ +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxAimingAccuracy"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxAimingShake"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxAimingSpeed"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxEndurance"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxSpotDistance"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxSpotTime"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxCourage"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxReloadSpeed"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxCommanding"), +getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxGeneral") +]; _units = []; -for "_i" from 0 to ((count _arrUnits)-1) do { +for "_i" from 0 to (_unitCount - 1) do { - _unit = _grp createUnit[(_arrUnits select _i), _pos, [], 0, "FORM"]; + _unit = _grp createUnit[(_arrUnits select (floor random count _arrUnits)), _pos, [], 0, "FORM"]; _units pushBack _unit; - _unit setSkill 0.6; + //_unit setSkill 0.6; _unit setRank "Private"; _unit enableAI "TARGET"; @@ -41,9 +54,9 @@ for "_i" from 0 to ((count _arrUnits)-1) do { _unit disableAI "FSM"; for "_i" from 0 to ((count _arrSkills)-1) do { - _aiskill = ((floor(random 10))+1)/10; - if (_aiskill<0.6) then {_aiskill=0.6}; - _unit setSkill [_arrSkills select _i,_aiskill]; + _aiskill = floor random (_arrVals select _i); + if (_aiskill<_minAISkill) then {_aiskill=_minAISkill}; + _unit setSkill [_arrSkills select _i,_arrVals select _i]; }; if (_i == 0) then { diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf index eddf17e5..a323e17e 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf @@ -1,7 +1,7 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: + Contributors: Andrew Gregory Description: Antagonist spawn function @@ -12,15 +12,19 @@ Github: https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf */ -private ["_unit","_sapperNum","_config","_bomb","_targetPos","_grp","_driver","_index","_nonJammer","_nonTrader","_jammers","_jammerRange","_restricted","_disableAI"]; -params ["_unitClass"]; - +private ["_unit","_sapperNum","_config","_targetPos","_grp","_driver","_index","_nonJammer","_nonTrader","_jammers","_jammerRange","_restricted","_disableAI"]; +params ["_unitClass","_trgt","_doVariable"]; +private _bomb = objNull; +if(isNil "_doVariable")then{_doVariable=false;}; +if(isNil "_trgt")then{_trgt=player;}; +diag_log format["Epoch: ADMIN: Antagonist %1 Spawning on %2. Do variable: %3.", _unitClass, _trgt, _doVariable]; if(random 100 < 6)then{ [] execFSM "\x\addons\a3_epoch_code\System\Event_Air_Drop.fsm"; }; +if(_doVariable)then{_unitClass call EPOCH_unitSpawnIncrease;};//Assumes Antagonist is required. _index = EPOCH_spawnIndex find _unitClass; -if (count(player nearEntities[_unitClass, 800]) >= (EPOCH_playerSpawnArray select _index)) exitWith{}; +if (!_doVariable && (count(_trgt nearEntities[_unitClass, 800]) >= (EPOCH_playerSpawnArray select _index))) exitWith{}; _nonJammer = ["CfgEpochClient", "nonJammerAI", ["B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F"]] call EPOCH_fnc_returnConfigEntryV2; _nonTrader = ["CfgEpochClient", "nonTraderAI", ["B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F","GreatWhite_F"]] call EPOCH_fnc_returnConfigEntryV2; @@ -28,18 +32,22 @@ _nonTraderAIRange = ["CfgEpochClient", "nonTraderAIRange", 150] call EPOCH_fnc_r _unit = objNull; -_targetPos = getPosATL player; +_targetPos = getPosATL _trgt; _targetPos set [2,0]; _jammers = []; _config = 'CfgEpochClient' call EPOCH_returnConfig; _jammerRange = getNumber(_config >> "buildingJammerRange"); _jammers = nearestObjects[_targetPos, ["PlotPole_EPOCH"], _jammerRange]; -if(count _jammers > 0 && (_unitClass in _nonJammer))exitWith{}; +if(count _jammers > 0 && !(_unitClass in _nonJammer))exitWith{ +if(_doVariable)then{["Not allowed near a base - Please respawn !", 5] call Epoch_dynamicText;}; +}; _restricted = []; _restricted = nearestObjects [_targetPos, ["ProtectionZone_Invisible_F"], _nonTraderAIRange]; -if(count _restricted > 0 && (_unitClass in _nonTrader))exitWith{}; +if(count _restricted > 0 && !(_unitClass in _nonTrader))exitWith{ +if(_doVariable)then{["Not allowed near a trader - Please respawn !", 5] call Epoch_dynamicText;}; +}; _disableAI = { {_this disableAI _x}forEach["TARGET","AUTOTARGET","FSM"]; @@ -49,11 +57,11 @@ switch _unitClass do { case "Epoch_Cloak_F": { _unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"]; _unit call _disableAI; - [_unit] execFSM "\x\addons\a3_epoch_code\System\cloak.fsm"; + [_unit,_trgt] execFSM "\x\addons\a3_epoch_code\System\cloak.fsm"; }; case "GreatWhite_F": { if (surfaceIsWater _targetPos) then{ - if (((_targetPos vectorDiff getPosASL player) select 2) > 25) then{ + if (((_targetPos vectorDiff getPosASL _trgt) select 2) > 25) then{ _unit = createAgent[_unitClass, _targetPos, [], 120, "FORM"]; _unit call _disableAI; [_unit] execFSM "\x\addons\a3_epoch_code\System\Shark_Brain.fsm"; @@ -61,19 +69,19 @@ switch _unitClass do { }; }; case "Epoch_Sapper_F": { - if(random 100 < 6)then{ + if(random 100 < 6 && isNull _trgt)then{ _config = 'CfgEpochSapper' call EPOCH_returnConfig; _sapperNum = 8; if(getNumber(_config >> "sapperMigrationCount") > 0)then{ _sapperNum = getNumber(_config >> "sapperMigrationCount"); }; - [player,_sapperNum] execVM "epoch_code\compile\EPOCH_callSapperMigration.sqf"; + [_trgt,_sapperNum] execVM "epoch_code\compile\EPOCH_callSapperMigration.sqf"; }else{ _unit = createAgent[_unitClass, _targetPos, [], 256, "FORM"]; _bomb = createVehicle ["Sapper_Charge_Ammo", _targetPos, [], 0, "CAN_COLLIDE"]; _bomb attachTo [_unit, [0,0,0],"Pelvis"]; _unit call _disableAI; - sapperHndl = [_unit, _bomb] execFSM "\x\addons\a3_epoch_code\System\Sapper_Brain.fsm"; + sapperHndl = [_unit, _bomb, _trgt] execFSM "\x\addons\a3_epoch_code\System\Sapper_Brain.fsm"; _unit addEventHandler ["FiredNear", "sapperHndl setFSMVariable [""_sFiredNear"",[_this select 1, _this select 2]];"]; _unit addEventHandler ["Hit", "sapperHndl setFSMVariable [""_sHit"",[_this select 1, _this select 2]];"]; }; @@ -83,12 +91,12 @@ switch _unitClass do { _bomb = createVehicle["SapperB_Charge_Ammo", _targetPos, [], 0, "CAN_COLLIDE"]; _bomb attachTo[_unit, [0, 0, 0], "Pelvis"]; _unit call _disableAI; - sapperHndl = [_unit, _bomb] execFSM "\x\addons\a3_epoch_code\System\Sapper_Brain2.fsm"; + sapperHndl = [_unit, _bomb, _trgt] execFSM "\x\addons\a3_epoch_code\System\Sapper_Brain2.fsm"; _unit addEventHandler["FiredNear", "sapperHndl setFSMVariable [""_sFiredNear"",[_this select 1, _this select 2]];"]; _unit addEventHandler["Hit", "sapperHndl setFSMVariable [""_sHit"",[_this select 1, _this select 2]];"]; }; case "I_UAV_01_F": { - _targetPos = getPosATL player; + _targetPos = getPosATL _trgt; _targetPos = [_targetPos, 600, 1200, 5, 0, 400, 0] call BIS_fnc_findSafePos; _targetPos set[2, 600]; _unit = createVehicle["I_UAV_01_F", _targetPos, [], 0, "FLY"]; @@ -97,7 +105,7 @@ switch _unitClass do { _grp = createGroup RESISTANCE; _driver = _grp createUnit["I_UAV_AI", position _unit, [], 0, "CAN_COLLIDE"]; _driver moveInAny _unit; - [_unit, player] execFSM "\x\addons\a3_epoch_code\System\Copter_brain.fsm"; + [_unit, _trgt] execFSM "\x\addons\a3_epoch_code\System\Copter_brain.fsm"; }; case "PHANTOM": { [] execFSM "\x\addons\a3_epoch_code\System\Phantom_Brain.fsm"; @@ -107,7 +115,13 @@ switch _unitClass do { }; }; +if(_doVariable && (!isNull _unit) && (!isNull _trgt))then{ +_trgt setVariable ["EPOCH_antagObj", _unit, true]; +if!(isNull _bomb)then{ +_trgt setVariable ["EPOCH_antagBomb", _bomb, true]; +}; +}; if !(isNull _unit) then { // send to server [_unit] remoteExec ["EPOCH_localCleanup",2]; -}; +}; \ No newline at end of file diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf index ab19c739..9db92ecd 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_dirToFuzzy.sqf @@ -4,7 +4,7 @@ Contributors: Description: - Epoch cursorTarget anywhere + Direction from one object to another plus a degree value to chose a random direction within. Licence: Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike @@ -18,7 +18,7 @@ Parameter(s): _this select 0: (ARRAY or OBJECT) - position1 _this select 1: (ARRAY or OBJECT) - position2 - _this select 2: NUMBER - random spread [optional: default 32] + _this select 2: NUMBER - random spread [optional: default 32] max 360 Returns: SCALAR - (direction 0-360) diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerAttachToAntagonist.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerAttachToAntagonist.sqf new file mode 100644 index 00000000..c2b78477 --- /dev/null +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerAttachToAntagonist.sqf @@ -0,0 +1,65 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Switch player camera to antagonist. Currently only for use after player death. Return to player body when finished or revived. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/functions/EPOCH_fnc_playerAttachToAntagonist.sqf + + Example: + [_antagonistObj,_plyrObj] call EPOCH_fnc_playerAttachToAntagonist; + + Parameter(s): + _this select 0: OBJECT - Antagonist Object + _this select 1: OBJECT - Player Object + + Returns: + +*/ +params ["_player", "_antagonist", "_bomb","_killer"]; +private _tapDiag = "TapOut"; +if (visibleMap) then {openMap [false, true];}; +_antagonist switchCamera "Internal"; +if(isNil "_bomb")then{_bomb = objNull;}; +if(typeOf _antagonist == "Epoch_Sapper_F" || typeOf _antagonist == "Epoch_SapperB_F")then{_tapDiag = "TapOut3";}; +createDialog _tapDiag; + +diag_log format["Epoch: DEBUG: Attaching player %1 to %2, bomb found: %3",_player,_antagonist,_bomb]; +[_antagonist,_tapDiag,_player,_killer] spawn{ +_antagonist2 = _this select 0; +_tapDiag2 = _this select 1; +_player2 = _this select 2; +_killer2 = _this select 3; +private _doingGroan = false; +private _doingBoom = false; +private _groanTime = diag_tickTime; + while {!alive _player2} do { + if (playerRespawnTime <= 1) exitWith{ (findDisplay 46) closeDisplay 0; }; + if (playerRespawnTime > 15 && !dialog) then {createDialog _tapDiag2;}; + if (isObjectHidden _player2) exitWith {[_player2,Epoch_personalToken,_killer2, "EPOCH_antagObj", objNull, true] remoteExec ["EPOCH_server_playerSetVariable",2];closeDialog 2;};//revivial + if((!alive _antagonist2)) exitWith { + [_player2,Epoch_personalToken,_killer2, "EPOCH_antagObj", objNull, true] remoteExec ["EPOCH_server_playerSetVariable",2]; + uiSleep 3;(findDisplay 46) closeDisplay 0;}; + if(_player2 getVariable["EPOCH_callGroan",false])then{ + _player2 setVariable["EPOCH_callGroan",false]; + _doingGroan = true; + _groanTime = diag_tickTime; + [_player2,Epoch_personalToken,_killer2, "EPOCH_callGroan", true, false] remoteExec ["EPOCH_server_playerSetVariable",2]; + }; + if(_player2 getVariable["EPOCH_callBoom",false])then{ + _player2 setVariable["EPOCH_callBoom",false]; + _doingBoom = true; + [_player2,Epoch_personalToken,_killer2, "EPOCH_callBoom", true, false] remoteExec ["EPOCH_server_playerSetVariable",2]; + }; + if(_doingGroan && ctrlEnabled 1602)then{ctrlEnable[1602,false];}; + if(_doingGroan && !(ctrlEnabled 1602) && diag_tickTime - _groanTime > 16)then{ctrlEnable[1602,true];_doingGroan=false;}; + if(_doingBoom && ctrlEnabled 1601)then{ctrlEnable[1601,false];}; + uiSleep 0.1; + }; +}; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf index 61644cbc..6e6e46d0 100644 --- a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeath.sqf @@ -1,7 +1,7 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: + Contributors: Andrew Gregory Description: Player death handler @@ -22,6 +22,8 @@ Returns: BOOL */ +private _tapDiag = "TapOut"; +private _doRevenge = false; params ["_unit", "_killer"]; // test ejecting unit from vehicle if dead client side @@ -36,21 +38,26 @@ EPOCH_buildMode = 0; EPOCH_snapDirection = 0; EPOCH_Target = objNull; +if(player != _killer && (isPlayer _killer || isPlayer (effectiveCommander _killer)))then{_tapDiag = "TapOut2";};//TODO: vehicle check may not always be reliable + if (Epoch_canBeRevived) then { setPlayerRespawnTime 600; - createDialog "TapOut"; + createDialog _tapDiag; } else { setPlayerRespawnTime 15; ["You can be just revived once per life!", 5] call Epoch_dynamicText; }; -[] spawn{ +[_killer, _tapDiag] spawn{ + _killer2 = _this select 0; + _tapDiag2 = _this select 1; while {!alive player} do { if (playerRespawnTime <= 1) exitWith{ (findDisplay 46) closeDisplay 0; }; - if (playerRespawnTime > 15 && !dialog) then { - createDialog "TapOut"; - }; + if (playerRespawnTime > 15 && !dialog) then {createDialog _tapDiag2;}; + if (isObjectHidden player) then {closeDialog 2;}; + if(player getVariable["EPOCH_doBoom",false])exitWith{player setVariable ["EPOCH_doBoom",nil];[player] call EPOCH_fnc_playerDeathDetonate;}; + if(player getVariable["EPOCH_doMorph",false])exitWith{player setVariable ["EPOCH_doMorph",nil];[selectRandom (getArray (getMissionConfig "CfgEpochClient" >> "deathMorphClass")),player,_killer2] call EPOCH_fnc_playerDeathMorph;}; uiSleep 0.1; }; }; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathDetonate.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathDetonate.sqf new file mode 100644 index 00000000..770f9bde --- /dev/null +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathDetonate.sqf @@ -0,0 +1,36 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Detonate player body. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathDetonate.sqf + + Example: + [] call EPOCH_fnc_playerDeathDetonate; + + Parameter(s): + + Returns: + BOOM +*/ +params ["_player"]; +openmap [false,false]; +closeDialog 2; +[_player, Epoch_personalToken] remoteExec ["EPOCH_server_deadPlayerDetonate",2]; +deleteVehicle player; +player setVariable ["doneBoom", true]; + +[] spawn{ + while {!alive player} do { + //Handle clean up + if(player getVariable["doneBoom",false])exitWith{player setVariable ["doneBoom",nil]; uiSleep 5; (findDisplay 46) closeDisplay 0;}; + uiSleep 0.1; + }; +}; \ No newline at end of file diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathMorph.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathMorph.sqf new file mode 100644 index 00000000..1b06337e --- /dev/null +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathMorph.sqf @@ -0,0 +1,38 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Morph dead player body into an antagonist, called from player death GUI. Dead player camera will attach to antagonist. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/functions/EPOCH_fnc_playerDeathMorph.sqf + + Example: + [] call EPOCH_fnc_playerDeathMorph; + + Parameter(s): + _this select 0: STRING - Antagonist class + _this select 1: OBJECT - Player (Victim) + _this select 2: OBJECT - Target Player (Killer) + + Returns: +*/ +params ["_antagonistClass", "_player", "_killer"]; + +openmap [false,false]; +[_killer,_antagonistClass,true,_player, Epoch_personalToken] remoteExec ["EPOCH_server_triggerAntagonist",2]; + +[_killer,_player] spawn{ +_killer2 = _this select 0; +_player2 = _this select 1; + while {!alive player} do { + if (isObjectHidden _player2) then {closeDialog 2;}; + if!(isNull (_killer2 getVariable["EPOCH_antagObj",objNull])) exitWith {closeDialog 2;[_player2,(_killer2 getVariable["EPOCH_antagObj",objNull]),(_killer2 getVariable["EPOCH_antagBomb",objNull]),_killer2] call EPOCH_fnc_playerAttachToAntagonist;}; + uiSleep 0.1; + }; +}; diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_playerSetVariable.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerSetVariable.sqf new file mode 100644 index 00000000..8630d935 --- /dev/null +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_playerSetVariable.sqf @@ -0,0 +1,30 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + call setVariable from client. Allows the server to call and set a local variable on an object via a player without broadcasting. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/functions/EPOCH_fnc_playerSetVariable.sqf + + Example: + [_obj,_var,_value,_local] call EPOCH_fnc_playerSetVariable; + + Parameter(s): + _this select 0: OBJECT - Object to attach variable to + _this select 1: STRING - Variable Name + _this select 2: ANYTHING - Variable Value + _this select 3: BOOLEAN - Broadcast ? + Returns: + +*/ + +params ["_obj", "_var", "_value", "_local"]; +if(isNil "_local")then{_local = false;}; +diag_log format["Epoch: ADMIN: Attempting Set variable [%2,%3,%4] on %1.", _obj, _var, _value,_local]; +_obj setVariable [_var,_value,_local]; \ No newline at end of file diff --git a/Sources/epoch_code/compile/functions/EPOCH_fnc_triggerAntagonist.sqf b/Sources/epoch_code/compile/functions/EPOCH_fnc_triggerAntagonist.sqf new file mode 100644 index 00000000..f8613241 --- /dev/null +++ b/Sources/epoch_code/compile/functions/EPOCH_fnc_triggerAntagonist.sqf @@ -0,0 +1,27 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: Aaron Clark + + Description: + Send server message to trigger antagonist on another client. Server returns antagonist object where required. Designed to support additional tap out options (Morphing). + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_code/compile/functions/EPOCH_fnc_triggerAntagonist.sqf + + Example: + [_killer, "Epoch_Sapper_F", player, true] call EPOCH_fnc_triggerAntagonist; + + Parameter(s): + _this select 0: Target client to trigger antagonist on. (Killer) + _this select 1: Antagonist class to spawn, e.g. "Epoch_Sapper_F", see EPOCH_unitSpawn.sqf for full list + _this select 2: On target, set variable containing antagonist object. Allows other players / requesting player to attach to antagonist object. + + Returns: + +*/ +params ["_target","_antagonist","_doVariable"]; +[_target,_antagonist,_doVariable,player,Epoch_personalToken] remoteExec ["EPOCH_server_triggerAntagonist",2]; \ No newline at end of file diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 0cf9c1aa..c8162e02 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -1,6 +1,6 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: + Contributors: Andrew Gregory Description: Main Client side configs for the Epoch gamemode @@ -23,6 +23,7 @@ class CfgEpochClient buildingJammerRange = 75; // jammer range in meters disableRemoteSensors = true; // disableRemoteSensors true EPOCH_news[] = {"Word is that Sappers have a new boss.","Dogs will often lure them monsters away.","My dog was blown up. I miss him.."}; + deathMorphClass[] = {"Epoch_Sapper_F","Epoch_SapperB_F","I_UAV_01_F","Epoch_Cloak_F"};//Random selection of these classes when player morphs after death. Currently available: Epoch_Cloak_F, Epoch_SapperB_F, Epoch_Sapper_F, I_UAV_01_F antagonistSpawnIndex[] = { {"Epoch_Cloak_F", 1}, // {"type", limit} {"GreatWhite_F", 2}, @@ -59,7 +60,7 @@ class CfgEpochClient displayAddEventHandler[] = {"keyDown","keyUp"}; keyDown = "(_this call EPOCH_KeyDown)"; keyUp = "(_this call EPOCH_KeyUp)"; - addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating","GetInMan","GetOutMan"}; + addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating"}; Respawn = "(_this select 0) call EPOCH_clientRespawn"; Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler"; Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck"; @@ -73,8 +74,6 @@ class CfgEpochClient Dammaged = ""; Hit = ""; HitPart = ""; - GetInMan = ""; - GetOutMan = "_this call EPOCH_antiWall;"; // suppress these units from spawning near Jammer or Traders nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F"}; @@ -108,6 +107,10 @@ class CfgEpochSapper groanTrig = 16; //Percentage chance of a groan. Min value = 4 sRange = 300; //Distance from target over which sapper will dispose. Range within which sapper code will be aware of targets. Distance up to which sapper will attempt to find a spot to hide in. Min Value = 150. smellDist = 24; //Distance up to which sapper can smell. Used to decide if sapper can see target when deciding to charge and influences target selection. Is influenced by wind direction. Min Value = 8. + reflexSpeed = 0.25; //Sapper brain will pause for this time when checking for new stimulus during each thought process. Lower number equals a more reactive sapper. (Guide Min 0.25 - Max 2.5). + nestChance = 2; //Every time a sapper spawns apply this percentage chance that sapper will create a nest. + hideLevel = 72; //(Emotion) Sapper fear increases by several factors, higher number of armed player(s) in area / being shot at. Set fear level (out of 100) at which he will go into a 'hide / evade mode'.. temporarily. + chargeLevel = 52; //(Emotion) Sapper anger increases by smelling / sensing players, being shot at / hit, too many players on his turf. Set level (Out of 100) at which he is triggered to charge on the current target. }; class CfgEpochUAV { @@ -115,6 +118,22 @@ class CfgEpochUAV UAVMaxDist = 180; //Maximum distance to choose next position when roaming. Min Value = 42 / Max Value = 400. UAVHeight = 100; //Set height when roaming, slight randomness is applied to this value. UAV will choose own height when locked onto target. Min Value = 42 / Max Value = 280. UAV can still spot targets from height ! }; +class CfgEpochUAVSupport +{ + unitTypes[] = {"I_Soldier_EPOCH", "I_Soldier2_EPOCH", "I_Soldier3_EPOCH"};//Selects from randomly + maxUnitNum = 2; //Maximum number of units spawned when UAV spots target. + minAISkill = 0.2; //Minumum AI Skill. Skills are chosen randomly between this minimum overall AI skill value and the following max AI skill values, for each of the next skills: + maxAimingAccuracy = 0.7; + maxAimingShake = 0.9; + maxAimingSpeed = 0.6; + maxEndurance = 0.4; + maxSpotDistance = 0.4; + maxSpotTime = 0.3; + maxCourage = 0.3; + maxReloadSpeed = 0.5; + maxCommanding = 0.4; + maxGeneral = 0.4; +}; class CfgEpochAirDrop { AirDropFreq = 1200; //AirDropChance, to decide if Air drop occurs, will only be checked once per AirDropFreq time period, for each player. Min value = 120. diff --git a/Sources/epoch_config/Configs/CfgRemoteExec.hpp b/Sources/epoch_config/Configs/CfgRemoteExec.hpp index e780ee73..fbef7146 100644 --- a/Sources/epoch_config/Configs/CfgRemoteExec.hpp +++ b/Sources/epoch_config/Configs/CfgRemoteExec.hpp @@ -1,7 +1,7 @@ /* Author: Aaron Clark - EpochMod.com - Contributors: + Contributors: Andrew Gregory Description: RemoteExec whitelist for Epoch sandbox gamemode. This also blacklists default A3 remoteExec commands. @@ -197,6 +197,19 @@ class CfgRemoteExec allowedTargets=2; jip = 0; }; + class EPOCH_server_triggerAntagonist { + allowedTargets=2; + jip = 0; + }; + class EPOCH_server_deadPlayerDetonate { + allowedTargets=2; + jip = 0; + }; + class epoch_server_playersetvariable { + allowedTargets=2; + jip = 0; + }; + }; class Commands {mode=0;}; }; diff --git a/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_triggerAntagonist.sqf b/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_triggerAntagonist.sqf new file mode 100644 index 00000000..7a498c79 --- /dev/null +++ b/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_triggerAntagonist.sqf @@ -0,0 +1,24 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: Aaron Clark + + Description: + Trigger an antagonist on a client. Option to add antagonist object to target as a variable. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_triggerAntagonist.sqf +*/ +params ["_target","_antagonistClass","_doVariable","_player","_token"]; +diag_log format["Epoch: ADMIN: Attempting antagonist (%3) trigger from %1 for %2.", getPlayerUID _player, _target, _antagonistClass]; +if !([_player,_token]call EPOCH_server_getPToken)exitWith{}; + +if(!isNull _target)then{ +diag_log format["Epoch: ADMIN: Calling antagonist (%3) trigger from %1 for %2.", getPlayerUID _player, _target, _antagonistClass]; + +[_antagonistClass, _target, _doVariable] remoteExec ["EPOCH_unitSpawn",_target]; +//if(!isNull _player)then{hideObjectGlobal _player;};//Do elsewhere, allow revival +}; diff --git a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_airDropCrate.sqf b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_airDropCrate.sqf index adf85075..50e80763 100644 --- a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_airDropCrate.sqf +++ b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_airDropCrate.sqf @@ -1,7 +1,7 @@ /* - Author: Aaron Clark - EpochMod.com + Author: Andrew Gregory - EpochMod.com - Contributors: + Contributors: Aaron Clark Description: Creates air drop crate diff --git a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createAirDrop.sqf b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createAirDrop.sqf index 9d445df6..d988bd83 100644 --- a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createAirDrop.sqf +++ b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createAirDrop.sqf @@ -1,7 +1,7 @@ /* - Author: Aaron Clark - EpochMod.com + Author: Andrew Gregory - EpochMod.com - Contributors: + Contributors: Aaron Clark Description: Creates helicopter air drop diff --git a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createObject.sqf b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createObject.sqf index 61da45db..2adc6d47 100644 --- a/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createObject.sqf +++ b/Sources/epoch_server/compile/epoch_missions/EPOCH_Server_createObject.sqf @@ -1,7 +1,7 @@ /* - Author: Aaron Clark - EpochMod.com + Author: Andrew Gregory - EpochMod.com - Contributors: + Contributors: Aaron Clark Description: Server side spawing of shipwreck loots diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_deadPlayerDetonate.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_deadPlayerDetonate.sqf new file mode 100644 index 00000000..941e9fcf --- /dev/null +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_deadPlayerDetonate.sqf @@ -0,0 +1,22 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: Aaron Clark + + Description: + Detonate a boss sapper bomb at player position. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_playerDeathOptions.sqf +*/ +params ["_player", "_token"]; +diag_log format["Epoch: ADMIN: Attempting player detonate on %1.", getPlayerUID _player]; +if !([_player,_token]call EPOCH_server_getPToken)exitWith{}; + +_pos = getPosATL _player; +_bomb = createVehicle["SapperB_Charge_Ammo", _pos, [], 0, "CAN_COLLIDE"]; +_bomb setDamage 1; +hideObjectGlobal _player; \ No newline at end of file diff --git a/Sources/epoch_server/compile/epoch_player/EPOCH_server_playerSetVariable.sqf b/Sources/epoch_server/compile/epoch_player/EPOCH_server_playerSetVariable.sqf new file mode 100644 index 00000000..bb05deac --- /dev/null +++ b/Sources/epoch_server/compile/epoch_player/EPOCH_server_playerSetVariable.sqf @@ -0,0 +1,18 @@ +/* + Author: Andrew Gregory - EpochMod.com + + Contributors: + + Description: + Call setVariable on specific client. + + Licence: + Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike + + Github: + https://github.com/EpochModTeam/Epoch/tree/master/Sources/epoch_server/compile/epoch_antagonists/EPOCH_server_playerSetVariable.sqf +*/ +params ["_player","_token","_obj", "_var", "_value", "_local"]; +if !([_player,_token]call EPOCH_server_getPToken)exitWith{}; +diag_log format["Epoch: ADMIN: Attempting Set variable [%2,%3,%4] on %1.", _obj, _var, _value,_local]; +[_obj, _var,_value,_local] remoteExec ['EPOCH_fnc_playerSetVariable', _obj]; \ No newline at end of file diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index 9128d65a..50605397 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -1,16 +1,21 @@ -/**************************************************************************** -Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.0.1) -*****************************************************************************/ +//////////////////////////////////////////////////////////////////// +//DeRap: Produced from mikero's Dos Tools Dll version 4.90 +//Tue Apr 19 09:31:41 2016 : Source 'file' date Tue Apr 19 09:31:41 2016 +//http://dev-heaven.net/projects/list_files/mikero-pbodll +//////////////////////////////////////////////////////////////////// #define _ARMA_ -class CfgPatches { - class A3_epoch_server { +//Class C:\arma3server\@epochhive\addons\a3_epoch_server\config.bin{ +class CfgPatches +{ + class A3_epoch_server + { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_epoch_server_core","A3_epoch_config","A3_server_settings"}; - #include "build.hpp" + build = 315; }; }; class cfgFunctions @@ -39,99 +44,111 @@ class CfgServerFunctions { tag = "EPOCH"; file = "\x\addons\a3_epoch_server\compile"; - class epoch_group { - class server_upgradeGroup {}; - class server_updatePlayerGroup {}; - class server_createGroup {}; - class server_deleteGroup {}; - class server_invitePlayer {}; + class epoch_group + { + class server_upgradeGroup{}; + class server_updatePlayerGroup{}; + class server_createGroup{}; + class server_deleteGroup{}; + class server_invitePlayer{}; }; - class epoch_bases { - class saveBuilding {}; - class server_loadBuildings {}; - class server_saveBuilding {}; - class server_upgradeBUILD {}; - class server_removeBUILD {}; - class server_paintBUILD {}; - class server_maintBUILD {}; - class server_simulSwap {}; - class server_simToStatic {}; - class server_unsuppported {}; + class epoch_bases + { + class saveBuilding{}; + class server_loadBuildings{}; + class server_saveBuilding{}; + class server_upgradeBUILD{}; + class server_removeBUILD{}; + class server_paintBUILD{}; + class server_maintBUILD{}; + class server_simulSwap{}; + class server_simToStatic{}; + class server_unsuppported{}; }; - class epoch_looting { - class server_lootContainer {}; - class server_spawnBoatLoot {}; - class server_destroyTrash {}; - class server_knockDownTree {}; - class server_mineRocks {}; - class server_lootAnimal {}; + class epoch_looting + { + class server_lootContainer{}; + class server_spawnBoatLoot{}; + class server_destroyTrash{}; + class server_knockDownTree{}; + class server_mineRocks{}; + class server_lootAnimal{}; }; - class epoch_player { - class fnc_savePlayer {}; - class server_savePlayer {}; - class server_loadPlayer {}; - class server_checkPlayer {}; - // class server_respawnPlayer {}; - class server_onPlayerDisconnect {}; - class server_deadPlayer {}; - class server_revivePlayer {}; - class server_storeCrypto {}; - class server_equippedItem {}; - class server_unpackBackpack {}; + class epoch_player + { + class fnc_savePlayer{}; + class server_savePlayer{}; + class server_loadPlayer{}; + class server_checkPlayer{}; + class server_onPlayerDisconnect{}; + class server_deadPlayer{}; + class server_revivePlayer{}; + class server_storeCrypto{}; + class server_equippedItem{}; + class server_unpackBackpack{}; + class server_deadPlayerDetonate{}; + class server_playerSetVariable{}; }; - class epoch_traders { - class server_loadTraders {}; - class server_spawnTraders {}; + class epoch_traders + { + class server_loadTraders{}; + class server_spawnTraders{}; }; - class epoch_trading { - class server_makeTrade {}; - class server_tradeRequest {}; - class server_makeNPCTrade {}; - class server_takeCrypto {}; + class epoch_trading + { + class server_makeTrade{}; + class server_tradeRequest{}; + class server_makeNPCTrade{}; + class server_takeCrypto{}; }; - class epoch_vehicle { - class server_save_vehicles {}; - class server_save_vehicle {}; - class server_save_killedVehicle {}; - class server_save_killedStorage {}; - class server_save_killedBuilding {}; - class load_vehicles {}; - class load_storage {}; - class server_save_storage {}; - class spawn_vehicles {}; - class server_lockVehicle {}; - class server_fillVehicle {}; - class server_repairVehicle {}; - class server_lockStorage {}; - class server_packStorage {}; - class server_packJack {}; - class spawn_vehicle {}; + class epoch_vehicle + { + class server_save_vehicles{}; + class server_save_vehicle{}; + class server_save_killedVehicle{}; + class server_save_killedStorage{}; + class server_save_killedBuilding{}; + class load_vehicles{}; + class load_storage{}; + class server_save_storage{}; + class spawn_vehicles{}; + class server_lockVehicle{}; + class server_fillVehicle{}; + class server_repairVehicle{}; + class server_lockStorage{}; + class server_packStorage{}; + class server_packJack{}; + class spawn_vehicle{}; }; - class epoch_server { - class weightedArray {}; - class precisionPos {}; - class serverLootObject {}; - class server_vehicleInit {}; - class server_storageInit {}; - class server_buildingInit {}; - class server_traderKilled {}; - class localCleanup {}; - class server_createTeleport {}; - class server_teleportPlayer {}; - class returnConfig {}; - class serverCommand {}; + class epoch_server + { + class weightedArray{}; + class precisionPos{}; + class serverLootObject{}; + class server_vehicleInit{}; + class server_storageInit{}; + class server_buildingInit{}; + class server_traderKilled{}; + class localCleanup{}; + class server_createTeleport{}; + class server_teleportPlayer{}; + class returnConfig{}; + class serverCommand{}; }; - class epoch_missions { - class Server_createObject {}; - class server_airDropCrate {}; - class server_fillContainer {}; - class Server_createAirDrop {}; + class epoch_missions + { + class Server_createObject{}; + class server_airDropCrate{}; + class server_fillContainer{}; + class Server_createAirDrop{}; }; - class epoch_antagonists { - class server_triggerEvent {}; - class server_handle_say3D {}; - class server_handle_switchMove {}; - class server_handle_sapperObjs {}; + class epoch_antagonists + { + class server_triggerEvent{}; + class server_handle_say3D{}; + class server_handle_switchMove{}; + class server_handle_sapperObjs{}; + class server_triggerAntagonist{}; }; }; }; @@ -141,3 +158,9 @@ class CfgServerVersion config = "0.3.8.0"; hive = "0.5.1.7"; }; +class cfgMods +{ + author = ""; + timepacked = "1458312578"; +}; +//}; From ab2a3b60c0ffda7df089aa10786884947be42757 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 25 Apr 2016 21:11:49 -0500 Subject: [PATCH 02/26] re add getoutman EH here --- Sources/epoch_config/Configs/CfgEpochClient.hpp | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index c8162e02..7fb90cb4 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -58,22 +58,24 @@ class CfgEpochClient // Event handler code displayAddEventHandler[] = {"keyDown","keyUp"}; - keyDown = "(_this call EPOCH_KeyDown)"; - keyUp = "(_this call EPOCH_KeyUp)"; - addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating"}; + keyDown = "(_this call EPOCH_KeyDown)"; + keyUp = "(_this call EPOCH_KeyUp)"; + addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating","GetInMan","GetOutMan"}; Respawn = "(_this select 0) call EPOCH_clientRespawn"; Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler"; Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck"; - Fired = "_this call EPOCH_fnc_playerFired;"; - InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};"; + Fired = "_this call EPOCH_fnc_playerFired;"; + InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};"; InventoryOpened = "_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};"; - Killed = "_this call EPOCH_fnc_playerDeath;"; + Killed = "_this call EPOCH_fnc_playerDeath;"; HandleRating = "EPOCH_playerKarma = EPOCH_playerKarma + (_this select 1);0"; HandleDamage = ""; HandleHeal = ""; Dammaged = ""; Hit = ""; HitPart = ""; + GetInMan = ""; + GetOutMan = "_this call EPOCH_antiWall;"; // suppress these units from spawning near Jammer or Traders nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F"}; From eef0e6a49863e07fbce35355b1a82742049c3264 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 25 Apr 2016 21:18:23 -0500 Subject: [PATCH 03/26] revert changes here while keeping new functions --- Sources/epoch_server/config.cpp | 199 ++++++++++++++------------------ 1 file changed, 89 insertions(+), 110 deletions(-) diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index 50605397..17bb7f86 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -1,21 +1,16 @@ -//////////////////////////////////////////////////////////////////// -//DeRap: Produced from mikero's Dos Tools Dll version 4.90 -//Tue Apr 19 09:31:41 2016 : Source 'file' date Tue Apr 19 09:31:41 2016 -//http://dev-heaven.net/projects/list_files/mikero-pbodll -//////////////////////////////////////////////////////////////////// +/**************************************************************************** +Copyright (C) 2015 - ARMA 3 EPOCH MOD [EpochMod.com] (v0.3.0.1) +*****************************************************************************/ #define _ARMA_ -//Class C:\arma3server\@epochhive\addons\a3_epoch_server\config.bin{ -class CfgPatches -{ - class A3_epoch_server - { +class CfgPatches { + class A3_epoch_server { units[] = {}; weapons[] = {}; requiredVersion = 0.1; requiredAddons[] = {"A3_epoch_server_core","A3_epoch_config","A3_server_settings"}; - build = 315; + #include "build.hpp" }; }; class cfgFunctions @@ -44,110 +39,100 @@ class CfgServerFunctions { tag = "EPOCH"; file = "\x\addons\a3_epoch_server\compile"; - class epoch_group - { - class server_upgradeGroup{}; - class server_updatePlayerGroup{}; - class server_createGroup{}; - class server_deleteGroup{}; - class server_invitePlayer{}; + class epoch_group { + class server_upgradeGroup {}; + class server_updatePlayerGroup {}; + class server_createGroup {}; + class server_deleteGroup {}; + class server_invitePlayer {}; }; - class epoch_bases - { - class saveBuilding{}; - class server_loadBuildings{}; - class server_saveBuilding{}; - class server_upgradeBUILD{}; - class server_removeBUILD{}; - class server_paintBUILD{}; - class server_maintBUILD{}; - class server_simulSwap{}; - class server_simToStatic{}; - class server_unsuppported{}; + class epoch_bases { + class saveBuilding {}; + class server_loadBuildings {}; + class server_saveBuilding {}; + class server_upgradeBUILD {}; + class server_removeBUILD {}; + class server_paintBUILD {}; + class server_maintBUILD {}; + class server_simulSwap {}; + class server_simToStatic {}; + class server_unsuppported {}; }; - class epoch_looting - { - class server_lootContainer{}; - class server_spawnBoatLoot{}; - class server_destroyTrash{}; - class server_knockDownTree{}; - class server_mineRocks{}; - class server_lootAnimal{}; + class epoch_looting { + class server_lootContainer {}; + class server_spawnBoatLoot {}; + class server_destroyTrash {}; + class server_knockDownTree {}; + class server_mineRocks {}; + class server_lootAnimal {}; }; - class epoch_player - { - class fnc_savePlayer{}; - class server_savePlayer{}; - class server_loadPlayer{}; - class server_checkPlayer{}; - class server_onPlayerDisconnect{}; - class server_deadPlayer{}; - class server_revivePlayer{}; - class server_storeCrypto{}; - class server_equippedItem{}; - class server_unpackBackpack{}; + class epoch_player { + class fnc_savePlayer {}; + class server_savePlayer {}; + class server_loadPlayer {}; + class server_checkPlayer {}; + class server_onPlayerDisconnect {}; + class server_deadPlayer {}; + class server_revivePlayer {}; + class server_storeCrypto {}; + class server_equippedItem {}; + class server_unpackBackpack {}; class server_deadPlayerDetonate{}; class server_playerSetVariable{}; }; - class epoch_traders - { - class server_loadTraders{}; - class server_spawnTraders{}; + class epoch_traders { + class server_loadTraders {}; + class server_spawnTraders {}; }; - class epoch_trading - { - class server_makeTrade{}; - class server_tradeRequest{}; - class server_makeNPCTrade{}; - class server_takeCrypto{}; + class epoch_trading { + class server_makeTrade {}; + class server_tradeRequest {}; + class server_makeNPCTrade {}; + class server_takeCrypto {}; }; - class epoch_vehicle - { - class server_save_vehicles{}; - class server_save_vehicle{}; - class server_save_killedVehicle{}; - class server_save_killedStorage{}; - class server_save_killedBuilding{}; - class load_vehicles{}; - class load_storage{}; - class server_save_storage{}; - class spawn_vehicles{}; - class server_lockVehicle{}; - class server_fillVehicle{}; - class server_repairVehicle{}; - class server_lockStorage{}; - class server_packStorage{}; - class server_packJack{}; - class spawn_vehicle{}; + class epoch_vehicle { + class server_save_vehicles {}; + class server_save_vehicle {}; + class server_save_killedVehicle {}; + class server_save_killedStorage {}; + class server_save_killedBuilding {}; + class load_vehicles {}; + class load_storage {}; + class server_save_storage {}; + class spawn_vehicles {}; + class server_lockVehicle {}; + class server_fillVehicle {}; + class server_repairVehicle {}; + class server_lockStorage {}; + class server_packStorage {}; + class server_packJack {}; + class spawn_vehicle {}; }; - class epoch_server - { - class weightedArray{}; - class precisionPos{}; - class serverLootObject{}; - class server_vehicleInit{}; - class server_storageInit{}; - class server_buildingInit{}; - class server_traderKilled{}; - class localCleanup{}; - class server_createTeleport{}; - class server_teleportPlayer{}; - class returnConfig{}; - class serverCommand{}; + class epoch_server { + class weightedArray {}; + class precisionPos {}; + class serverLootObject {}; + class server_vehicleInit {}; + class server_storageInit {}; + class server_buildingInit {}; + class server_traderKilled {}; + class localCleanup {}; + class server_createTeleport {}; + class server_teleportPlayer {}; + class returnConfig {}; + class serverCommand {}; }; - class epoch_missions - { - class Server_createObject{}; - class server_airDropCrate{}; - class server_fillContainer{}; - class Server_createAirDrop{}; + class epoch_missions { + class Server_createObject {}; + class server_airDropCrate {}; + class server_fillContainer {}; + class Server_createAirDrop {}; }; - class epoch_antagonists - { - class server_triggerEvent{}; - class server_handle_say3D{}; - class server_handle_switchMove{}; - class server_handle_sapperObjs{}; + class epoch_antagonists { + class server_triggerEvent {}; + class server_handle_say3D {}; + class server_handle_switchMove {}; + class server_handle_sapperObjs {}; class server_triggerAntagonist{}; }; }; @@ -158,9 +143,3 @@ class CfgServerVersion config = "0.3.8.0"; hive = "0.5.1.7"; }; -class cfgMods -{ - author = ""; - timepacked = "1458312578"; -}; -//}; From 1e23e17e98721e85b026dcab4012feea8e93a3f7 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 25 Apr 2016 21:26:30 -0500 Subject: [PATCH 04/26] Update EPOCH_supportCopter.sqf --- Sources/epoch_code/compile/EPOCH_supportCopter.sqf | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf index 50920082..62b3a16b 100644 --- a/Sources/epoch_code/compile/EPOCH_supportCopter.sqf +++ b/Sources/epoch_code/compile/EPOCH_supportCopter.sqf @@ -41,7 +41,7 @@ getNumber (getMissionConfig "CfgEpochUAVSupport" >> "maxGeneral") _units = []; for "_i" from 0 to (_unitCount - 1) do { - _unit = _grp createUnit[(_arrUnits select (floor random count _arrUnits)), _pos, [], 0, "FORM"]; + _unit = _grp createUnit[selectRandom _arrUnits, _pos, [], 0, "FORM"]; _units pushBack _unit; //_unit setSkill 0.6; From b37a425d8c5bcf2643f388129ee040cf04257618 Mon Sep 17 00:00:00 2001 From: vbawol Date: Mon, 25 Apr 2016 21:32:13 -0500 Subject: [PATCH 05/26] cleanup indent from github online editor --- Sources/epoch_config/Configs/CfgEpochClient.hpp | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 7fb90cb4..4bd0dfc3 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -58,14 +58,14 @@ class CfgEpochClient // Event handler code displayAddEventHandler[] = {"keyDown","keyUp"}; - keyDown = "(_this call EPOCH_KeyDown)"; - keyUp = "(_this call EPOCH_KeyUp)"; + keyDown = "(_this call EPOCH_KeyDown)"; + keyUp = "(_this call EPOCH_KeyUp)"; addEventHandler[] = {"Respawn","Put","Take","InventoryClosed","InventoryOpened","Fired","Killed","HandleRating","GetInMan","GetOutMan"}; Respawn = "(_this select 0) call EPOCH_clientRespawn"; Put = "(_this select 1) call EPOCH_interact;_this call EPOCH_PutHandler"; - Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck"; - Fired = "_this call EPOCH_fnc_playerFired;"; - InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};"; + Take = "(_this select 1) call EPOCH_interact;_this call EPOCH_UnisexCheck"; + Fired = "_this call EPOCH_fnc_playerFired;"; + InventoryClosed = "if !(EPOCH_arr_interactedObjs isEqualTo[]) then {[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2]; EPOCH_arr_interactedObjs = [];};"; InventoryOpened = "_this spawn EPOCH_initUI;_container = _this select 1;_lockedNear = false;if (_container isKindOf 'GroundWeaponHolder' || _container isKindOf 'WeaponHolderSimulated') then {{if (locked _x in [2, 3] ||_x getVariable['EPOCH_Locked', false]) exitWith {_lockedNear = true}} forEach (player nearSupplies 10);};if (locked _container in [2, 3] || _container getVariable['EPOCH_Locked', false] || _lockedNear) then {[] spawn {disableSerialization;waitUntil {!isNull findDisplay 602};_display = findDisplay 602;_ctrl_cargo = _display displayCtrl 6401;_ctrl_ground = _display displayCtrl 6321;_ctrl_cargo ctrlEnable false;ctrlSetFocus _ctrl_ground;ctrlActivate _ctrl_ground;};};"; Killed = "_this call EPOCH_fnc_playerDeath;"; HandleRating = "EPOCH_playerKarma = EPOCH_playerKarma + (_this select 1);0"; @@ -74,8 +74,8 @@ class CfgEpochClient Dammaged = ""; Hit = ""; HitPart = ""; - GetInMan = ""; - GetOutMan = "_this call EPOCH_antiWall;"; + GetInMan = ""; + GetOutMan = "_this call EPOCH_antiWall;"; // suppress these units from spawning near Jammer or Traders nonJammerAI[] = {"B_Heli_Transport_01_F","PHANTOM","Epoch_Cloak_F"}; From 98ffecd417593f7329336ec44a388d28b0205fd3 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 09:28:07 -0500 Subject: [PATCH 06/26] re-revert logic here --- Sources/epoch_code/compile/EPOCH_unitSpawn.sqf | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf index a323e17e..d81cd04b 100644 --- a/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf +++ b/Sources/epoch_code/compile/EPOCH_unitSpawn.sqf @@ -39,14 +39,14 @@ _jammers = []; _config = 'CfgEpochClient' call EPOCH_returnConfig; _jammerRange = getNumber(_config >> "buildingJammerRange"); _jammers = nearestObjects[_targetPos, ["PlotPole_EPOCH"], _jammerRange]; -if(count _jammers > 0 && !(_unitClass in _nonJammer))exitWith{ -if(_doVariable)then{["Not allowed near a base - Please respawn !", 5] call Epoch_dynamicText;}; +if(count _jammers > 0 && (_unitClass in _nonJammer))exitWith{ + if(_doVariable)then{["Not allowed near a base - Please respawn !", 5] call Epoch_dynamicText;}; }; _restricted = []; _restricted = nearestObjects [_targetPos, ["ProtectionZone_Invisible_F"], _nonTraderAIRange]; -if(count _restricted > 0 && !(_unitClass in _nonTrader))exitWith{ -if(_doVariable)then{["Not allowed near a trader - Please respawn !", 5] call Epoch_dynamicText;}; +if(count _restricted > 0 && (_unitClass in _nonTrader))exitWith{ + if(_doVariable)then{["Not allowed near a trader - Please respawn !", 5] call Epoch_dynamicText;}; }; _disableAI = { @@ -124,4 +124,4 @@ _trgt setVariable ["EPOCH_antagBomb", _bomb, true]; if !(isNull _unit) then { // send to server [_unit] remoteExec ["EPOCH_localCleanup",2]; -}; \ No newline at end of file +}; From 9a1751177ca3cdbd1a2cd33caca91d3e0c02c8bc Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 10:07:31 -0500 Subject: [PATCH 07/26] invert logic here --- .../addons/a3_epoch_server_settings.pbo | Bin 396996 -> 396995 bytes .../EpochEvents/FastNights.sqf | 2 +- Sources/epoch_server_settings/build.hpp | 2 +- build.txt | 2 +- 4 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index f185956f5162ee0878567f74fc5d848cdea4f839..1cc16141c47a9930c11c4e4d8fc6d52788f2e78f 100644 GIT binary patch delta 165 zcmX>ySK{zoi3uSNDlPKiE({C|Nu`-NDS8+SK`QAi3uSNH(KPvT^JY`l1ejkQuHzk3V>_`xCWHv1#*+~^U^ZY^^(z~ftoi? z`NGP21gLE4Gz k!(?Z>U7Ce$3YW;G=c^ufXYQLY|8!+&xKXLzrEsSp0KVxlr~m)} diff --git a/Sources/epoch_server_settings/EpochEvents/FastNights.sqf b/Sources/epoch_server_settings/EpochEvents/FastNights.sqf index c84a40d1..1c0ba512 100644 --- a/Sources/epoch_server_settings/EpochEvents/FastNights.sqf +++ b/Sources/epoch_server_settings/EpochEvents/FastNights.sqf @@ -1,4 +1,4 @@ -if (sunOrMoon >= 0.99) then { // adjust this lower to change sooner. Note: "0.99 value, the twilight is still quite dark" https://community.bistudio.com/wiki/sunOrMoon +if (sunOrMoon < 0.99) then { // adjust this lower to change sooner. Note: "0.99 value, the twilight is still quite dark" https://community.bistudio.com/wiki/sunOrMoon setTimeMultiplier 13 // adjust this value for slower or faster night cycle ( 24 hours will take 1 hour ) } else { setTimeMultiplier 5 // adjust this value for slower or faster day cycle ( 12 hours will take 1 hour ) diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index 86dbba29..08570015 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=437; +build=438; diff --git a/build.txt b/build.txt index 6609e2fb..2138029c 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -437 +438 From 22bdf9113f237ce3fab97b18b20949eededb8153 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 11:36:26 -0500 Subject: [PATCH 08/26] bump version to 0.3.9 build 439 --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 387235 -> 390216 bytes .../addons/a3_epoch_server_settings.pbo | Bin 396995 -> 396995 bytes .../@epochhive/addons/epoch_server_core.pbo | Bin 12329 -> 12329 bytes Server_Install_Pack/MPMissions/epoch.Napf.pbo | Bin 911248 -> 923455 bytes .../mpmissions/epoch.Altis.pbo | Bin 911281 -> 923488 bytes .../mpmissions/epoch.Australia.pbo | Bin 909509 -> 921716 bytes .../mpmissions/epoch.Bootcamp_ACR.pbo | Bin 910596 -> 922803 bytes .../mpmissions/epoch.Bornholm.pbo | Bin 910443 -> 922650 bytes .../mpmissions/epoch.Chernarus.pbo | Bin 910417 -> 922624 bytes .../mpmissions/epoch.Chernarus_Summer.pbo | Bin 910424 -> 922631 bytes .../mpmissions/epoch.Desert_E.pbo | Bin 910569 -> 922776 bytes .../mpmissions/epoch.Esseker.pbo | Bin 910409 -> 922616 bytes .../mpmissions/epoch.Mountains_ACR.pbo | Bin 910836 -> 923043 bytes .../mpmissions/epoch.Porto.pbo | Bin 910560 -> 922767 bytes .../mpmissions/epoch.ProvingGrounds_PMC.pbo | Bin 910571 -> 922778 bytes Server_Install_Pack/mpmissions/epoch.Sara.pbo | Bin 910833 -> 923040 bytes .../mpmissions/epoch.SaraLite.pbo | Bin 910835 -> 923042 bytes .../mpmissions/epoch.Sara_dbe1.pbo | Bin 910838 -> 923045 bytes .../mpmissions/epoch.Shapur_BAF.pbo | Bin 910563 -> 922770 bytes .../mpmissions/epoch.Stratis.pbo | Bin 910417 -> 922624 bytes .../mpmissions/epoch.Takistan.pbo | Bin 910525 -> 922732 bytes Server_Install_Pack/mpmissions/epoch.VR.pbo | Bin 910409 -> 922616 bytes .../mpmissions/epoch.Woodland_ACR.pbo | Bin 910836 -> 923043 bytes .../mpmissions/epoch.Zargabad.pbo | Bin 910493 -> 922700 bytes Server_Install_Pack/mpmissions/epoch.utes.pbo | Bin 910556 -> 922763 bytes .../epoch_config/Configs/CfgEpochClient.hpp | 2 +- Sources/epoch_config/build.hpp | 2 +- Sources/epoch_server/build.hpp | 2 +- Sources/epoch_server/config.cpp | 4 +-- Sources/epoch_server_core/build.hpp | 2 +- Sources/epoch_server_settings/build.hpp | 2 +- Sources/epoch_server_settings/config.cpp | 2 +- Tools/Build/build_epoch.bat | 30 +++++++++--------- build.txt | 2 +- 34 files changed, 24 insertions(+), 24 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 33ac1a5b2afdcd90afd32cf2e86cd83aab6df77f..f95ae04498767ee8935dc2f2a2e8b1d1024001d2 100644 GIT binary patch delta 3211 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 diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index 1cc16141c47a9930c11c4e4d8fc6d52788f2e78f..124067766dc00a5c0e970f5e43332e6d1aac25ea 100644 GIT binary patch delta 156 zcmX>+SK{zoi3uV0%cjeRyD%^?B$a07r08W76ad)>uoNiE3*;u}=cQ$)>m{Q}FPpw` z@)>&AZ7w$W*}w(V%F_*IoX6* aMSAvy-Yovuva*lyY)_^SLp4`|a0UQT&?^f7 delta 156 zcmX>+SK{zoi3uV0DlPKiE({C|Nu`-NDS8P(Cl&2u^1=W;RvF%u9o12GE_vu>Zu$tJ`q ak|4=a5a?_Ctnub)jSmx9rysMsz6$_vqABqJ diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index 628837bea84951f1c760bdc917df092f45c67db5..b4244c099e290ceaa4b20c8082484a7530b8140a 100644 GIT binary patch delta 76 zcmV-S0JHz8V5wk`MFyvrA6E?klR*L_v2JSu1E`lDliUJA0XefD1Lr9Lx3dQ=#sLO4 iH!w0YGPBbzLID)VIiSnhCsITg#W@{7@bHTKM=R4_!?0F diff --git a/Server_Install_Pack/MPMissions/epoch.Napf.pbo b/Server_Install_Pack/MPMissions/epoch.Napf.pbo index 7952b9ec5ff157227d2d1b83b2a22a1eda23a52a..1db28a942d57d60151331baec44f1f0c4c76ae6e 100644 GIT binary patch delta 9417 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 delta 979 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 diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index f2143ccecaf1814f7dcff9456349ddc080db3ee0..2dce87d5f7fbdbd6b8a401e7bf40e3d912e67f57 100644 GIT binary patch delta 9416 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 delta 978 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 delta 979 zcmX|9VN6?97|nNI`=EX83T1W-s5}Zt+X=LrKoOV;PPRE|6CEvT$oAG2c&@x|rI_fP z#z5#u%;vn&Z|LSAjAh#|$xFQYW6@+PX3;D$TQ-8kM2*vRxG_+4bLv|gxXDS*ch1TA zk}p?1>l?b*@OC}7$#0)(^b`JiyFD~!qh(M*r^s)-&2JAqR-PHZ;EMUg{({ha^@CA0 z==6l^T_{lV`RzLWx{@owGxSZ9jeefX(*wp3|Bdxlu*you4aMrB@fzsac6*4@1&f>B zHTCG98ND35O{WTN^pd#{b1H~MoiO_V(@zouZMK;8Gq;w5!&-a*JA26*`ek0T`fR?b zl5_j*s#Grnmwwt#ziqg~>&J>h-F7Orh;&yIucm$P>-k5MKLls;-f1XOCpY_muiNO^ zR9C0|^h8IB-k;b#cygMZoCc4js6UxsSECWLahH@xbSQGN zU+aAlua63i(1qu(0^){QD6=}l@c|_%uBKeo`1~wXJmg$e#Qtb38rCAR3+XJ>;l){4 zZgo1lWAS*xnUIu7yifFcT&@jXSFP96WHuTMa<`}z$o+feSghGoQ|}U!y-`Ixu%fkS z8Wzt%HJ{C}&N=85aBLXXzI%k^v!8#3M$qkv_wB*;H{gh_OKZi+G)Va2f8fB8n~;ZP zB~XMHZbI|N^Kb$9eKF~kXo7wHJ5&M=+=fq(ExOC?Q!|@Hf<~Hn!b`!IdFn<6rmS7dCMp&X%HQBjm7>^~473+{2_C z*p*U}T8CqYp_N@~CCfmS9R_B6io66^xRq?nb?lV(1qPB1?A=N}z@zP?3SZtvUN3!c zHA6TNm6FjdvJ{K=h%3p=K{4Pb#i+EB&6y*yd(RPKVQXs04q)21Y9X1GDJ4!ca2j+P z^h}BKr@UN!lZgAj(}mG}hBu{##(51n8gexl*wDDK@cV4*X9tBSfR9zaAsph^=%B#q zbfWg~L`raF7@JNB4L~&M-$Q~wYqpOFzN|SsB1E_>O}{0$b1`v3urlG8a2`_L;{x*@ xH@(n?qMq2;M?ac&=cOD=CgxZ&9~9S~9=>)?{tS9}a-++x@tTQZXUlyZ65D`@TOu-ye_f|MiKl{n5i;IUe|PHgMnPloVuJ=oSR2m0p@tZ(m_ZR@xN%VJ%%+rfRcwXVzj z@r9lExc*;VKac`Iwf48&wRW6#vi4f{(eg%ulT~A+)^mf$VyuY6l%y!mZ?~dY7*A!Lk!W6Y(&6AQ?^I}a2Hr5b6;hbTX3UTXd z?lb;>$U_Qw07{P|wZR2yUs6m}S<&dGv$xfhZAWVP-nsj2Q_bh8*~%}&3F~)yw;k^I z78|(S^O@S6vAwm#u|4cBNl)jxeC$CXg5>cZcYN;G1}=Z&AWS&2K6m14?fhi_vmF<# zcbNtKPIdW`x{mki$x7f#Lr9t-2SYQ`Rz8Yv}30)2`BPj=KubKVN|LnW3hzSs6Ek4)zB(9VFrQClGG$ZARKn4iv*y81T(eM6uFy}lphRibTM*r1 zhiN?v{OB1U{n!@M7fOabrCN6LipVFdSX7HX`VVX|8&qK`dEex%q;r94hLT-qKJ3vg zsTYfio&_~{!a1_V{28iKQ_;dvP}PAqq$53P&s>HGyYz;1sNbR*&Da-!tWhKldt@)X zAsv$w33m4l>8DTUG{Z0nh#BWZa1ys0v6Q4$H05AW&EY%MLPvPS=M+(57pP9w+;^vZ z@7TxxAPsG6rB_e>K>B>Bm!$NpNw1L^ljaSxQcFGC$A0lsX?y+Uf00f~>_6U-exn)- zr)@KDhv9G5a8V?@3=EY_bycw`Nv{~i6|iw*<+-`CrokIE7g4P_RU=JnqR8c%kIJbW zI0qfS*}Q`9=FGLt`}6jxlBQIs$>-Hh&FubsYUskzAGsQfO+4j!w6R^u4D()z=4A| z#}kQ^WtEH6^0T2@#H3fts!6kP_SU=7L;DAPq{xvYB$7cWiSXUo{`aKE>hwM7uGG#4 z>WP1o4oka0)tm9ah8LtGM-)vnuF)*fsbUg^tSA;GL*%?h@ry|<|83`X}dzw?2^Or4Au~zWPr;l=jR1ffqlNy6YD{lESW3zVKt|d8y6aZipp*BE9pd zUq@W9gYJ%~s%Y~N>N+Yk2_XTW*x(Im=LrQZXny56*EV9rHp>)kTg?rk3G*YMd2d`i z$QMt*J6w%(ywzyYH^=L}|1G^d@bnazL&jFYEORD!x1m$?6c{45K@{BpuP{kTD_fw> zEX|vgg5hdqimx*T1JtUx$dGN2x~AF%wf@BcxlOA7<4*aY)JY)xkkRAG`p^62Tf5kQ z9+Ic43otEH0OIIBB%>4oti-Oa=fufm*)*wcYZc%O{>uRlm2uCU&Dr8BvzU#<$pvbc zO&tk16jzLFgqI?ddw2002`=rD&0*Fl>nD1Vx5@tnf!vEMgyGF3f1cJzFVFsY)K8FTALf z=F4`NTMmh=s#QycWb2$#a97G!rB2NLAJYz~PD5VlL(`Ulu#tmXart=9iCt#|x-G&p7 zhB+)}Ot26N!qAL7_`FgIqF{iTo-Rb}>eTea#Th_so(>~OI|c-}4c2scBu4l_asZB5 zMC&lx0IDSBJ3@?m8EU|9Fn~is4c-!=t7XE$a1A6J^5ihWJ_@$)>~z+Qu(yu~`l`-m zBOu8%_?1PRz&iqaIhx<_ZWP`%B4E~lL(Q0mq5}yL)mq<97~uSyyv&=1tUzUu>tnB( z?V+86iU!_8T$XN%nolxb=W-t`{z;lsn&eHekU%64YkC}5RmR;qPg#8-C^B1vN`LUTFHcvk78!OJN~B%FCs zCkxxi&IksQL}GD%YJQBY(t?`ND9H>IXyyuJHWdPS5>d2kO2r~8nCNP}o57+Z@?57& zja5hFuOD)@!W2^k1}_iX0nDb zcn4!>r-RdLY+H9=CrjRtI(E8qbX8j(UlO!LX7rfXC4%VdS@Bl;@s?4;$=$f%+wVx$ zaOQ{&o66Tna}VW&TN+PlD&&x&1H+R=PGS-Zrf@VG6AU#xUT`1sT3F*~z7O)8wU0Nw zu&i`WfjK5qUXnlLi6nb7A&2gB=CH381WvFYeW$zYpvxhTeLY=SsPAoh$uU{MHG4Z6*tr8T%Pge(K1^F? zeWUWwOfZo+3$;F4I23L=DVMge6pw^!B~3=M&wI}mM%;LJY@G0bhqB$rt`4_9T1(#T zt8&dip`m2`5+UuI{}u38fP$R!mZrwEOh zU~>vLM&>6To1R<*m|j#&uwN*ac~KL2oTv1#0@ir7L33f?i9;AORtQ2AygIm|PBzMd zdt1|z3rW6YmXnKNOo$2FdZfAa3Z;-^Uub;-dfg1y1GEO7VN!daV9d#BgVzcw7}%PV zdWm-;n-s=IprE)%x+vO7%}(HE5skVy;%>fK{-jhJrL~hqE;l87&9ob-L2PTH8)@Ei z!9g#Xo!}*0gN+s#+Oe^`9Iu1R7`;`re<%eS$)WIs49B`SNnt0(!qywiF;^kTVZn|| zz_oE1)a{x91C2fuwx+<_ffKC$S5*aO2)z)j=Z&&WRv;tHW)#bYG{i%_ZDN*}cXQ-} zx*15t($MC@|Da_MOY;pKeD$VNgu}fpJ@)C_y&opAXlk2ZOgz+ivL4Xkq)f=!*jK#qUo zXW*4KBA^z_ZA`nISHW|RuCc++19EGE%%65T$VYvM`f^7ZVr2ORo#Unh;~g0S}-OiMNaDxpxILMIzTsU zVTs!jq8!R*Rcu3nK|*3g(Ao?TlA&89!r>O=74_L%D<1J)&0`HL+R#miIkxQdHiRpP znlh(npzG$pSps-#vB|1~&f?Jb6i%FYxDBK;B&)flvb7FCIi<+`$_TlQBRi&;kRC+n}8WQn;Ny zj6N1gaD7qk=`IRj2;L-m3N=^lxQL+`N1L2$Lpw|Gh;1v6n@t+{OOPRBL~L%dcpY&! zZxd}J_PLMSqWv4x$fFc{eShG|Tf1ju_ypk72A}r&?wO8n4hK#`9y0h$+obS>xi58e z-x{iPz~?^rbiyZCAF6cieyg>5!P|)XQx`*2l1|oNxfJ?xpvtokZmT?eE-eEFthIKv zVod|syo!Zq({N9iP7d=2ahyrG8oC0{Samp;Ga}W+POXtcT!%I&w<2ir^CqWLW0N9Y zyMiC`7Afb+-$qqd6;;E6af~$W6muR$`wjSN9>8ahP0+8WI&PG+dba-5)1i+7QjpC( z6N*Z~`r0$06Hn7+#;xhBTW|Y(h*KDg6vO2M6M9dqv8+| z4MEtV1Px|!255vOc@XaFAMFXKU zN*t->@Onnoaj6C7vr+-P0EPg2b8s%hgd3=Wn#az+UKPg&lT*whs7u89h!utPFhmuA ziWQ1dvKA)5&}t8U>paTGXf6aO%wpu*jo zZ5UA6>$!?M4`Uy8U*VP^Cl2YH4_fQ!k{iy4b46GYu}-j#WH2j(dvv_na1gux`jyb% zO9S5T1$w&H;Iw#K#Bcirn6L}qmrg>95X_%n+gc*$6F0M31r~U>{H~>e9fGwNiDSpW zC=!JxG6o)CjAIAv3j+oW3(Q4Hd%sl>Zii+I_Fb+bwbU%(zjy#aVD=AI3tqwRgLLOQ z2yA$T+Se#_dbvLWInIZ{4NXG|{HoZwPQt7d#ga2HaYgmujZyO?P!+gvRrsp_L9qJk z;18S!ygGqJ%|BG&yq`e0X}sdUN8sZpo5%4co{t}Q#v8vb;G++T(JEk(_bUSb8~$Pu zaR+e)!A;(RD8J#h5gH>xE*d{z9=^KhqkOm=X^3*LVC$ z_p{p=d9}N*wRquWTdgt(Km9(f7oDvdh1d&0o)GOT&-@1CY lyMFa<&wB%Xi8pi0M`J7Bc?l!#I$j7_H?>Z8qelark9oRjk< zU+&3CU-m-%+g{G=w@x+q34gua8X7axa;TtFCmtRYJ03@&7GVDo%Nkm^Xrm72Co|5sV_;N-RJ|pZoT`F zI$!$dO}kR`{>0vaGt=zMG`I~_wYB2TKx^Ppu~*t35yNu4E7~1>A=0VW?vWCSUGZqL zPw9OIua5`~up7@^0mQW#C^tF6a(_H2E~lK;_*4ce9&#)zVqYW{2`iDP6KMwO@T&|g zwm2MJFmWV?iD?5r*o~xS?h5(>a`k8v`bV9qJ8_Lu~?J4#_JT5J(0M0Xh~~U zG%THgYCfM~9W&4&;MfqXJbsiEv1`9V1E}`Nz58(W4LGXWt+e9VEJ%3zKd|HQO)z44 z8I<7po6z*}ESv}aKumf*l3*8phf2Wy+wcjpIhe&O^Wefuci=_ZeZz#(Jj`R~0?aJM z+x~z6;IV(e#lHL#%1E9T{|zfU}?zN_}4x7g-zUt4{YdO4+X4jH8BJG@L{qB z*kv0@t-`UlpoLv*A&Wrc+cix47w3JrG6u_psp4o9)AbFK-SF3!Pk^X5SQCg_t-cn3!-vI0q@usK7j< xx~JPvR1-7%=qKG?W6HjuWA+98HQUNf##c)+Z@k`cr1kxE-==JX!3~zt{{c~CTUh`A diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index 09654d1884d429ffd2590e885aa91e4db634f2d5..2ec0ad81abde3e2812c4c79b9f812a611c4a993b 100644 GIT binary patch delta 9417 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 iU%TJ)Hv@fN{^nbRaeT>YrY&?_Xbjmi{k~W@J+U delta 979 zcmX|9e@t6d7|nNI`=EX83T1W-s609dZ70y8D`mipxUtQRHc{3x&9c3f2Rv8WQHqJq zpJAaRG0u5ozM-3g;0*eQk-Ws~KZ_=)EQ@5(Y?%uZ6E#lP;l_`NZccq`12;Lz`OY~x zU-IR?I`04WeBGNqZgapsQ6C`uwN`t0#74`YoKBG6d0W69eq=*t{E{o?6TJoDxvKl4 zYS8Hk*F9gL=JPvs`gJ9jL*w){lZ}3n%hMyqF#nD9W~kCiM-9d5qVapsvz_)ZrSldy zy<_Uq?;gGsxj zQw8S^*j34=0GEEkPN(Y@c>PFGxYJI>CXw!M;MKJM9X-?6Gf-xAM&kXkq_~=LRpH(lD1X4Ys)&7ZRE}s7#f5YRHsOUC zSZ;PYJEQSv6d@dR;YMPlMTLFesg(R-p79QlimDPqoh_CcEXBcw|Lu z(ljidg(^OqVePZfF5t)@tbO}9$!EX(2KAsj81FfV>#xIc-9D`q&!$1b_x=M14&8t} zEGvN`oV)>zpU%M~@Q0()^Kycn{{t!j`)|Q#$mU@VuPlNaFD<}}wClPRrA1i8jwP5~ ziMQN_AmE9Az|Fq?6G}*y7W@s>tBoypU|?m)*!b67_?3;_gAYs5Qwuq)WIeF~`{+Tk z0odhIl3Ir&Z$LA<*i4pz#&#K)aT|FSuy8xsk?Uxa4hQ>_4(#4e-o+EGq!ORoL0&Gs ze>FoSAxlYlt0G0?UE)eIb5INhNHNBm$(GEK*xjcHv9LAOWEU{)TQ!l)%2X^)G;kVp z8uTm{=im2oz6KF{ztcs~J68u?na7gIjvNZj=;LgRwX~D{blfpSjc~1$< yd&=~53yOMTW1swFI*^xgESZ>N$$X)7?cQl|q3yAjuzdT2N%z?9YG3ci)BgjR(_Fm( diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index e7de23c4c65b3954b56531539aa57c5771895e13..a7667bffec58cac97524f11a1b3a37b1e8bc98ca 100644 GIT binary patch delta 9417 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 delta 979 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 delta 979 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 delta 977 zcmX|9ZA@Eb7|rwE4`^?@LYW-{Dz_bkwi9U4K@pe^HyBRZL}!bdx!si(t}E?UiiysT z7$zOYxQ{pH5w|%AE}8mA(!|#vE}Bfm_>m=M%UqBcjd4nc8v{j$sCRAPO-^#2b572a zJbB08^DcbVaI~Il_gNv&kr2xxN?}(&7Wy)l1gU&kCB;4;LCL zIhW6xR_ayYG7nnmHw`yMVYDO|u~NB3rn{TObjJIpAl{YyA#kPOctc70%w{j}o9f(m zr+>UJn4-($dj?NWveT2`HdWQu$~*mA{rAd!%D%81ipL^qkNRx5+o<2IBodFt)MUTb z`UGAbks4tap1TZ)8>hf#c7);sv8243a#rJGQ&4e-V^xv+!_ja^i>OYdQ?LoYoPxzx zha(b=#}kf(66=ol$sV`UxzXdS^|+gidYw*<$XbEgzfX-uo82|_PC3~dj>!jCv=&Xn z(rKs`a~ak(4P6qB4#C>jkB~z4^RLhd{N8xqUR*x|NBCV@E1t=Kf^Yo?b{xJ21!yaS z56Lif zAK(W(_7Aw&=YK*O$JI!P5iy`8*Je*0>= zP$H}(!&_A)8t;);lG%fz-$zO@)=D;KkHnT9A;iSi)Q}y(v`^JSvMW=uIMKjq;57&= z78l?4aP>_x9{83Iq3f(@NF5pzHRNf?*PvsE#`MMC=UP90UJ3(vS>=n;VUCRqN*vG2 z+QU;R$(dzrG9@(t(WHM5OTL`hIV^c|=FqUz&E;t3Rmqi)iBpo9NpDE!AmuqJG0#cE v<83Gl#KPYH$*`v&WnVBb`+~90wszan%*>!|`TmYqB68hFTS{I&G5h5I9zR^Y diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index 2687ed0eba900d9b8754ac93ae3ba1dc82221898..98896b17196f3570bd109d258b7ca76744922327 100644 GIT binary patch delta 9417 zcmbtadu&_RdGEcH6j78Sxt8VU>?8US(xFI7@*|dFr_{r;l2~#q*=`~z%oTY^-uUuf z`rb>~tn3j*imAXJZb2XiSkYx(H()DJpoWLB`=d(+xWl?XwxmF_4o!;%ONzB!mZj@Z zU|rCC-#Pd4UQ)8sYzAoYo_o%BzVkhP-{bI~zkTxdpFQ@46M?tbfxD;X$<`p zZ|}gzd;i(>Jt+WGYk%KeYsYD)YOi-6z4wKlr=;GLZ7Z3=qLI>VC2#1pZA1NhO1Spd z{R6ds=;^PK-j3S$A0FTYvz@g!x}!MMHANM>Fhy-x^Nb|cyj)X)jWvW%IB%GxLfpER z`-J}=@{mFvfYMV)ZE%6wmlac0Ry4Zl?7o`Pcchl@oqO0e)qI|st^6{aaPMw!-{Fq0 zvIAFoK2f_nwx^ajzMK6O>FK;DAAeMcAbH|v9iRHG16RI$5GEYCH+S;)+xf}(!_PROn(l5VN|K+!& zWbec2qN=B67p|(BMots9`)}HQdJCdk z>@clofge5NqaWL1`a;RDr&P;sUJ?0-6^m-oNB@y6W`inBCGVTOm2@sr%}}xn&4)d@ zCG}!a(X*fiPdG=mm_I{xYARYd3aZ-wrgWqy?U~CEVVB>O4h>jTqZ#`mkTr^=VUO(g zo6>PPkzn`Vlz#DCPBRRXfS7Sk1SfI35lcy0MN9?z~ zaN0KWb{PI<4Hrei%fL{{R96+7lJtsETmc(5R$iPdYZ|;!a}m{=Q#I1GCW>6H`KX-E zfpgIDTg@x@Zq8iWd^m5PE@?`IntWdE^vteLr>4%&&W!={98|&B$l+nKP*Sezpg3aa z_-Iv<= zKt1uV(qU;QsCqLV*zkgMA(oeRxpNKiGm0 zGyCIzlYZbFas54MUg{9?=d1tXeQBTUA9(qFsk?sh11aoEY_m+!w$yu;Nv$6JjSeQUhl`(M)64m>vn=8&;fFw2|?-fidj@t-O#px?rc$)XQW!SGbAlqnK34c6Di*O1F&Abu;hwFOrc@;l&=+1* zO7mqq%q@pRR@JJdLb7#UDY@8el&B7mWQk**Ybt0cz8#6h6*egp6`s{W2ReioPPPH5 zoFxaB@VgIskse@&U8$Dnd=8?G2a%_NOP(>M7nD+on(4D)a`Ps!A=CMYnG-P8*>1y$ zN5dSJGbUIF1z~7L9(-OY1yL}-Oivdgc6Dlc;?fKtHcy8Uq#XkS+y-kpJQ5@PAUOcX zETVN7Z2(mg^Bp0^y$m(rHyFSnp$2b>(A6^GV7LYn4ta7IVIKtBcXT>yM%ddY0{vBI zvk{PF8vM#4PT(DZy&TPNcsB~~8WAvSz@cVLL(zeRh-$5GCk$}@OK&Q?prcN|#2I&>O0K1t5d0 zExCj2PFm_e8gq{araygQe)61EM&JJzP8PYAQ3mT;*GCIy~?&%;^^br(S#FYdV25w@r zr z*cz&)`d|V4+6P7x{rKk13ww4170<*)LQ5|+qzgW<>@883nBJ%u2N`i1_LbLL_O7MQARE8P6)6GSSRX*%`q=l1MDhPtA{!Ra#Ip8YP(n1)8}EnN5X2oB*o3MRT5?`E**h&S>c@pxAs#o#w*sL9G>!~6ftjo! z4Bo*Q+Uel*8tdy0>|n{8QpXN=j;?CU<4b~;$c&!!x}UY3`w%bW7t&O@$m%bYOV0$Vp6M!4!^0V}hZE#|!R5UJGj+&G%8Bv-b0* z7nYUIDKN)m$}95wJdtGIPspK%oH^`^1$nQ$B*^tN2?I04UF<7KdE43Z4@mYfk-)61 z=w)RM3~N>-CLApNcY%}aC*SDqI_Pr9V_#2K7V3MOUUp1YaLwM126k+R%rXnR|tP-rMwzl4dZ^J)YN61OynLBRkyZ&s8ojyAY*$;_o$D6oAboYLYtcIXtIrc5hy4gkS>aLQnM4dSwy2Qj<}m|mOm-gMrrM2k;_d9Uo-7SY7pC+=ti0k zTyW4!W+!+F*I=UshPH1kFURZPGDdF|?H@{kMsg@TA;YmQPEy#3v9R?9bIer;a#*nA z5^!x?26ek;z(Au9g{>*@cHji7|5a6i8A2}v>v^MWlNHDavl+#*Ar0|RuTRYK@@|fN zP&WgqSQ^?~_#d}o5$ElxPR!3gJ)N3^w-YY^d|H7$hV{1g*^gAsMH7y!zTcrHu$vHcg=KsWjJsO@{qyj+a`r4%zdt- zdwr#f%61#ctj&t3{qNjg=3^>XO*fhx~FxUKT=xwH%zu-4ku ziZu;j^C}jeO~XB5IyuZA#BnC!YUnCFW7XkY&WKbOJGDj*aUI&A+=`&d&zqc1jZKPp z?FxR#Tcn&Pe;ZXte1HbK9h>bOzP>e>3U&xJk+NI^FD zd?+df>ub-4PD<^;MY#N9FQ!9d191Il(HoOkG-1y$couIW0DUr{NQi$Q=fm}h7eZN} zQ~zovbhNV?G-*zwH~2Lf2s9ZVfz&aP5PU*J0>g&*1fEb*urrJuV(xa3Zc!na4DN`= zkMDH2Py(wima(M`cZWDm;T9Yg8RdMzCMDCz00hR#({PhvlB!-VuE1YFFT5*NP`n6c z3NImv#k-Z@_A_NQOUZd)204USa~>MrBk|)=aEqW0jx<@oOGh}t2(mv75xGJ*kBUP? zGz4Lb5;T~_8K4nb%|Pjbc$^XI?Sf*v3;3}`O$dzPCb(Gv75g!|NGU$E6mS&q@XG0vH19&B3`06K~FX8Ox4JWxLk09efjjqBK4~RKS zABo3F6@#T=!d;nG!P9{l02JKw9pC(X3iJwE4_Ks{hHNI_th$BY#8Kd^P5i@zf(mzU zwqZbNujeZ6JdAzVeT7?woH(R&K4`6@OKvzH&J|%r#5%z`lEJJD?$PmP!$Iu&8&^Z$ zkq&sj7wG9)gVW+|5x?yhV8SkbS2_hPLNI@RZEJ~~Pu$FE6b_mv9B#s>e zqev8*$QXElF^(OuFANwkEHD=(?fq6kxE-1;*mt>#)KasA|Kb4zf!RM;EqDdL57M3M zAh6*TYG0?&>E-?iHUCh7^L`THrtymZ9)XXaY97a%cs_o@8E^c$fR7#%qgB8n?^gu=H~hsS z;tt{zw%~D7=QjaOW4^0@K7PD0*S+CyqU&7bi!o_@{dO@_zg_Is&$dP-ri23n_3eM& z{X!ojuXXqLwgg1>!8f~~;(dZnw@<)Q_3p=^cMiW+NsCIsDIuXo5E%qZz1scQ`nCJr j^=tQgmPr4fo?AaN_qXfS?_B!fV8;G|di&eo{PO<-TGnQ( delta 979 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 diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index ab1b3ce69e17598062437a883c0b81639c19399e..467c41e81ae461fcd99105da4db01b471a52b801 100644 GIT binary patch delta 9417 zcmbtae{37qeeWG5MHHpju4Vb>>?it1NQWXR$(CX%c1r!QtR$8kOSYQ`3Vk9U$%~J7 z^xaXmDtkncVh*saZb2XqXtAYEw|_bmsNtbZ|JdRJZvR+;Eg8@(L%RXNl3;0j+e)S|Z=`fv$s2lgOJ6si60Ux~ zyQlgOUENi(sjd2xhkH1|Yz$+adBs$fC5^5-dvjIUe5jh=H1n`+s`)%MoB3rp;m++%n-8{q zi|xD6^_lAJkzLiq(VgsXNmu(F`RJoU1j(Uaw0-W6_Fee1{V?IsotfdUwepkwdJ8VN z(|-IhscmRDIdJUAos%cd-C!S|l6u*@BZ2KKc{k9?61p5>Mp6z|-!OY#{LK$)zxjcb z-1Km|sOqWdxl5|1k>iBz{9(%63SqYfTel8Ah(Z~r&##oIB?#c-xKY+^ck2TWT3A%B;#M=|VmQkF z8t%Q&)xr6WZ?HI}0`vJ)CQ~+*%t|;KbJjfiiEHKx$|d@#7L+K>dJCc( z>@cZkfge5NqaWK~`drDdCsfOBToL(%74vG*NB@xxW`inBCGVTOk#x>d%}}y)jfXwF zA@yQW(X*fiPdJA*m_J2zYARYd3aZ-smUO5q?U_p-VdvkH4)j=5qZ#`wkTr^=ZjbEd zThdWEkzn`Ul797EPBRRXfS7Sk1SfI35lcy0MNc+tTMln@CE}n)C{pGHKp0SE{Lt-RyV2lD5>o{cqASiT&rh(jQl1 z;k0e$?J)e!8ZL^27lEOYsV*xvCFv!jxCAzCEWI#O)--sd<|3*!qiUpKO%%CY^-(#V z1LvTl*Be*x-JH3$`EcGoUec5mYVvv2<5N36pPD#5Ju?E#b5I3iBM1A*TuHg2gW`yx zlY;|sGGUNq2lGbA!NGVqMuc)S#j@Z#ZUcY3GcAs?>+ea*USQrg>M+99iYwV(HL!R8 z_0dEkWm)ASwftByd5A1QL^5Q$_EN+NuBwV$r^oMx+k^r zfm-6Lve&>=rNELp(q`V%ra+!cN;oIPk|v~8${6!@CuWZw6X>2 z%+kC`DHyI+ruaHjFhH$}iwxO1sVk~oP-|b@C$~tof8HkVm)Z%0A2K+Uto^n}zOkMC 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 delta 979 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 delta 979 zcmX|9ZA@Eb7|rwE-V5z*S17Y%K;_awXgh&+Iw%4&!Hs=Mo9Nb}X4&paq1Tn(trQcT zA2BR+B*tyNS)QT$fUzZ0|A>vg`{AM)D#nj2F;3&eYr= zQ+gdwxX5f#s!-Uh<5!ej37n&^8Ljlwe1Yya1ch%bw*u7`I-)O4Weit=XPa$7N@vY3 zde_*^KQVMUaGQ=5Tj?cJG3Hegb86J&1x!Cq^t9P*;;-GB4-9DWKJ18)W%Toc=G2pg z#wyO`v!&#E1-SGU8~wK7j=&F>1iNfhYLV#9CLxvfzQqdosh zlti!A`z&4`5*uL$UYG>L)l*PmafH;qSVCG#IcxCgDX4tFv7|`7;b=IdMHDB}DOihN zO~HJt!_gI0)wm-r$2!#>$>Vl9S9_dw9(R+;pw}y1l2)Mf?op!AW_NA9Q%Xd_F=_vz z)}m=xIt?{KF2g#ep+m&s0a$+Y5GiCo{|b$u+pYHO#+5hVkZy<8if7Xx;pIE<679ZWK{*2%?3{z? z#dzBv;0HYN54hMDe?l3_(W1YhcB!%LF7z)BSsVYl2fwh<1$d_%-D@C^m8~RJVDCOi zRsp+GPLeBd_zh@fms-g@(AZWzGi)Hw0Typ0oAT}3k)xUFQU2^1z6oAx}fT20c44VkrJT*ZRrJVi>^7s$LZja%`wy z-Q4L3v;0 diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index 259e5f27fb296725c23c639578560dc3fa896083..8bfe0b28559f5c87a0d58afaa6ec5ff53f5a7817 100644 GIT binary patch delta 9416 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 delta 978 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 delta 979 zcmX|9ZA?>V7|rwE-V5z*EfiM~=(toEZ5`0+q-B6hm_wbTP5fxt2hnROaA#@tQkHD) zBL+hyS?2W3@{Fky!c4>;W~7O)f6SJ+jm^xEEE+Y8EE&smR;CCWo6c?5Ht;4VInOyK z=SiNtM@N0r-+4c*<=XtVu{u8yZnoG$LsnV_<#devCRqKp&@-zt<5ygqBxOG!aBS( z2@6dQM@KXsR~@PxYmawJ9=FrE+T*P8xa&;@y@XCF7n|9u|pgae2*gg+a zi}B_^AOLveA8@g6{)7^er3HUO^-^Q=1L#{EGB*D85PoGNk6^SE-D@C+m8>LIU}v5r ztAJfCCCL>y^Z_)ni6*iDG`2<03@?z^0Sh;hO}X~%^4>si!j4@V$uT_ALMri%P2}Cu z$5+#b)rg#kY*6HAyi;0CW)6x0KPkpo6Iq`*5_`Cf5Hnj=O|}5jzEva1tW3t@L<6Tm zr-5g&xbT^WtF4!C-w(Plx=stmVEPl{e3n)L4>(VsP221H-h>>m)@xhze;FS>G3Jt10{__25alAhxt z^Bgz6(u@*MtnBljjl1%a_IV?-&zoM8mS0xZ2Ahvf9Jn=o_Ilvb`BC+$zHR>l(2QO* diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index 379d9f2a8910658ef0072eba34bd982d83f90df5..bcc020e26d61453efa505a3589fac7ad74952396 100644 GIT binary patch delta 9417 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 delta 979 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 delta 979 zcmX|9e@t6d7|nNI`=EX83T1W-s609dZ70x@(H4Q3u#Ig_+C;Y&HDr4$52!1BTPY@U z{)l0rBQZ|AF`u~2L2wKDm*g3*|B#tXMU7^O*)kU-CTg6n;Ko3in^WJ~z)enazH?5_ zmwdVNlY!~4{BQU;IcT413=;l&yFD^yqZLp|r^xTTEohHy*_0hW<4XDDk)p^#&4W=j z==6l^T`W=y`Q1AGhO#T+N&2eEMnBEx=`mx3|HgVVTy3S}hEjFO_&w;^ZhM5%MT?u> zHTCG97`+_6MW>2w^pd$4^D2o&oiGOgGuw!PHe1a4Yd2TILt1aZd z@ieGEKejJT?@t^UJUheA&Va{KT~{aW4Q&rSD)vc-WHG8Fx??@D7vwIpale#I?n}f{ z{aWv{czsl8gif5k3W%F$p~C8nDg%j>xR!F&;M22E`H*u>5&Px19MvK*7t&d1z^`Xv zrPb-|jw?#inUoS;N}uTUxLljPt~#%$$!s(jV%?%v5bHk_i^rQiwLX`a>Xj4Xu~n@_ z)39_7YWQ4+b<9DBfMY|j{;iXwkp1!-G=lD+(svLy-hh+3POTNsWkAAr{{sgO&qD!L zltBqzoQLL*7vLiBhvU*wImy2K1F8TAZowzW7GVLeE`b{_--Z`y&kZX|OR$7p%P_YZ zZ~GHMfFu8an|<*Yl#v`Q`WtH38r$x|;OdaI@y+d-_86FP2YC*#cqiGF@7OCH4h^In*t?UQ!jX1TjnD5QFPA^K znjxB$rIfrqCdHK=aW$DeD29Th6cepvYxYR&-cy8F*t%M>2blJ)T1a+fI-w8^oCci+ zJxeJ3dtT1hB;t|pbWwCq@}~6hab827hI|bMc6{7e{6ntw!b^e-5MWiW2q!o;Iw){D zov1xLlNMZA#%9ujABZOXdqN22%=Td+kTZvdg)S~fGp`Bmd`zAZtW0=Yn1;0Xw7|Tl wP0zHUs3$h|;ZLRm1!>2!i8+?dK5_kyxm1<^==t;YA8k9;Inv2^@y><+0eP2PZ~y=R diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index 799690ba973f86b132c14874c8699fb9d08deff3..91d6feda47599da332e1a2bf867b7b52efe2131d 100644 GIT binary patch delta 9417 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 delta 979 zcmX|9e@t6d7|nNI`=EX83T1W-s5}aUwg|M#21Q^dY_iQso9Nb}X4&3KfhXm?trQcT zKVn$uNQ~ROF`ww>Ah7&~T)l>kT?58iRzt-tLTyI%pYG&&r9ad9IjG>@SGS)Z8C6 zlfg*1p1A@opWkLMt|_?^K1E-(IOwOjJUw8J@L$3F5{kq{cZyYU(bUCTmBGTPWyp|5UZR8(H{usWN_eMjJc5-6?_zmlP z>-~Q1=SOy?=)LhhgC{20iAnI;s_N>*9ih#khs8drHzr0^rAzLXUx;;D&AX*UVy7Y} z`}N*u@cM|*2)pp?RY0tsf-<{1stzbgaV6!c!KbF6;sN)HBKF7Pv8W!AJxHfu1AaLL zi>+>VS6o#S?u4Xts(qs0=kZkgJ#~Ixlhtf8$z7seAousm@p!YZw%#Kqdt!=sU|DO? zH7uTn8a|t09n;Vu;OG#ne)BNNXTSUgjbPZT_U*;BH{h^gm)?pe(;(ry|A7mKZ$ciH zl|T`my9v!7&A>U}_r;~>V+nTQ52yqjxCI|0n}Zp=IuBmFd>dY*-8bwg&BHu)F2MA1 zyzNg20UrGayzGm=poC;;!QW83(%7~HgUdt4#yfZ6S2lhRJ}5=sI>=!qYl#EchYyl+ zU{^{>Y7LIQ4z27`D_I1pY&S9UqvTn@!YyQLu4{+1FEo&JVb2!w4jyeMRruUi@^b0@ ztC^ySn3RldmZiAbEiNZB2gOj36r<8gHfD~*?mkI~jjgIB+kxrds)b}$rWBRv;B**t z7@4B-@An6mLl#9OHH5=*ZP!Vh6{}h2LjeKY2-r0R&j(E5ad;jSLE$ z!651nkEaArhOx<%&;Uf2{yiiFvu69S5XhQC!$K#QrRmoMZ!RW|3w9>FC7gwn|Cqr1 y$1G2`p=cxycKRpFp1hQ6!NOb%*3U{;pZ0{#|1fJ`s-C+TDBpDE%=EWIi~j@vhhLlk diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index edb6fac2c4c0dadbc58c1251eca172b4b5355c08..eac42ab84e2c9664c4306d2eb893013b44395b81 100644 GIT binary patch delta 9417 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 delta 979 zcmX|9ZA@Eb81;E?d!fDU3S|}sR4yHawi9RuvY?%v^C2E{o!Ht2U%sKDcz?+=pJm;L8 zCwcOYed3@0&i8ITCkO1~4FSU6Y_o?)Y_uFI=s3B>+XD7*-RjKvC0D{H_7#L@svnK2 zL8m8N&uoF3&u`Z03rnwt&eFF{Hu`xkPxl+c{3Yw1P?eRA8cNhTehTy zCFc&3dX{oZ$v*N+s3yX;hK7U`}=UQPRt>G>y__4SUle3si}8~$)2bz?qAZH zH4RIqpqkHSSo;*T3pg?eE8jmt^4YJyLj&k`E4{mM)onPU+o`qUnKVdv>LECAXd3dc zycCM@;xsg!pMi_O?~O~ZMicCtKcEt@|1NxrY!+tl+8ns?$~}0UcHg$5GzW9oIS*4y z@zy^f2zc~gaI>%ff>M&D1^+Of9cx44wd92A2AQi5^|S)Vx)yT6SP3tLe`wgA(BX7Fv@Gl(U7abzz&QWi+;+se)fhC1@N=Vw}gWn8y*li zolevqo=gd@3}X{1!3RW>{yQiHvS!;H&GUHt$6 diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index 6c7b62b7a7c7c26720966c2251146ec587df7c4f..a6f56df919671a1b51fc439902312e08f44d88e4 100644 GIT binary patch delta 9416 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 delta 978 zcmX|9e@t6d7|nNI--GtGE0o!F(8{BO&~^gtvOy8p5}a&v(k41v)GXUuc|cw18>N`& z{1L-KM`E1w#(d(&2I3O*4u_VB%+0B9ZQv#+Io~-a z=S#lasd4}Cw{>sVa*2RrqCP-`xmHJb#7fJcoKBG61#7?&-n=0@e#w;xiJqeHeAR<7 zt=I8{>slyE7Ye&{{5t#P&^Ud=Xr*7|3-qudEKFH$hAJ&|R9})_H2efS+vNyTx?uLu zyT(rb$)QW3TXe!^r58;$%qu76^q9#Hn0buoX`|W1Pv2Y)4QTN`Z0jOx=vM`e>8A>f z6`UvFNXxZR;4)7*==XKE1%9MB+~J^7lSKD52n`0NanKjd0fq+TVaM6^iMjdTXK;CC~y z-0X67#8frmO33kcwOjIe-R_M(ca6{6U^3|S(GE!~i1r?g#$t`$>RPvy>{8;=;T5e( z)39U~s)SsIwar4Ch$92A_T6Kokp1!-)PwGT+I;}mUx#D5y;>`t$$*Tf{sSit-hcuu zvqLdnxB-oy&%*@}4#nh`lmz?c52yg_y9H;FExT zu*;<+wGKz#f@XHHnJfd1@76QJLV6zoenv1Xl=pyJD7mTSRqk@J!4fz`M?8vCW_H(ZF{Hvk@;Aa)Di$^&&)Gu;6 zouoY+PKoX;W0NVd4u~fGdsGbM%+^8CpECyr#da=7GjEEXd`t|B7AC$Yo`aO{q{w_H wjnB29#1kv~^qO&hLCU#gWX>g%Ra(2PXUg98+0{?(od1ARorQDLXKg?J57)q5ApigX diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index 76994349486f50b29e2a49793ef3d9c0fea9f768..5150549733d86490f6dcf3411f81ffd379f6299d 100644 GIT binary patch delta 9417 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 delta 979 zcmX|9e{54#7|nNI-`m>P(yhZX*44e0Eo+P0S^`_=HZ&8*5Z5Nc+NmM%=(@Jjy+YTS zDE^2USy?n7-k8tvbIT+F|1d61y#66kgE}=55(B|yEF@~2QYMT}hal>s&32QMobQ~I z^Ce&In`b>&zioWGfs1&p6HQ(s%ywD>qh?wORdj;byEoBkRT9n)IUS>2Dovn|#DrSnE7 zy{ixNPmf&k-=Y(xW_r<3iUn1~m>xHH05eYzEp0Ix_^F$V{vkC!fZY+Yf__!hl76OG zU(Gqa*0kIZ1upZHm0oDPE%2jdfnF<>S|z%(Sx9F*M|t6qC+oMAZ%FY zTJQ3te}1ehMemRA8ay@0PECT#SW{mwZTD^RJu3CddqPq$uJlI3(U(I#2Hj3Mk?2yQ z$$qu>d7K>)n_vf?y8?)7r=ikh55@)+{VFP|Q z4U27ddv7crPuLT((i88K+%AV>t=m!Wb~PJxT5YsfQVXK}d!n&ei>t1|AtfUrMcTil zwW=CgW}sHcXIS?Pbc;AT1S{V?Op4hrzd;jdcE|g6Kj36v{{`hFPfPxWy5+|9yD+#ky4FDfD_>2_z&?1G ztO0hpf}~dA=pkrh7u(1pP-Ux@>7FDn0G4hh9fh{-@?PIS(uR@E4m8~mj3~uv|W?{ diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 4bd0dfc3..5cf1c020 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -13,7 +13,7 @@ */ class CfgEpochClient { - epochVersion = "0.3.8.0"; + epochVersion = "0.3.9.0"; sapperRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = 1% - 55% if soiled (+ 2% if in city) chance to spawn sapper droneRngChance = 100; // increase number to reduce chances and reduce to increase. Default 100 = // 2% chance (+ 4% chance if in city) (1% - 2% Half if using silencer) to spawn drone if shot fired buildingNearbyMilitary = 0; //1 to allow building nearby diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index 557a4034..d19191ba 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=436; +build=439; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index 557a4034..d19191ba 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=436; +build=439; diff --git a/Sources/epoch_server/config.cpp b/Sources/epoch_server/config.cpp index 17bb7f86..89309c60 100644 --- a/Sources/epoch_server/config.cpp +++ b/Sources/epoch_server/config.cpp @@ -139,7 +139,7 @@ class CfgServerFunctions }; class CfgServerVersion { - client = "0.3.8.0"; - config = "0.3.8.0"; + client = "0.3.9.0"; + config = "0.3.9.0"; hive = "0.5.1.7"; }; diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index 557a4034..d19191ba 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=436; +build=439; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index 08570015..d19191ba 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=438; +build=439; diff --git a/Sources/epoch_server_settings/config.cpp b/Sources/epoch_server_settings/config.cpp index d2e5559b..18bd1168 100644 --- a/Sources/epoch_server_settings/config.cpp +++ b/Sources/epoch_server_settings/config.cpp @@ -20,7 +20,7 @@ class CfgPatches { units[] = {}; weapons[] = {}; requiredVersion = 0.1; - epochVersion = "0.3.8.0"; + epochVersion = "0.3.9.0"; requiredAddons[] = {}; #include "build.hpp" }; diff --git a/Tools/Build/build_epoch.bat b/Tools/Build/build_epoch.bat index 743b4dde..366fff6e 100644 --- a/Tools/Build/build_epoch.bat +++ b/Tools/Build/build_epoch.bat @@ -81,9 +81,9 @@ echo build=%BUILDNUMBER%; > !serverBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=x\addons\a3_epoch_server -rd /s/q p:\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" p:\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\packing\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :settings ) else ( @@ -95,9 +95,9 @@ echo build=%BUILDNUMBER%; > !settingsBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server_settings SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=a3_epoch_server_settings -rd /s/q p:\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" p:\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -packonly -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\packing\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -packonly -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :core ) else ( @@ -109,9 +109,9 @@ echo build=%BUILDNUMBER%; > !coreBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server_core SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=epoch_server_core -rd /s/q p:\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" p:\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\packing\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :allmaps ) else ( @@ -125,13 +125,13 @@ SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\MPMissions for /f "tokens=*" %%G in ('dir /b /s /a:d "!SOURCE_PATH!\mpmissions\epoch.*"') do ( SET MISSION=%%~nxG echo building !MISSION! pbo - rd /s/q p:\!MISSION! + rd /s/q p:\packing_missions\!MISSION! rem Moving files into temp folder - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\mpmissions\!MISSION!" p:\!MISSION! - xcopy /s/y/q/i/f "!SOURCE_PATH!\description.ext" p:\!MISSION! - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_code" p:\!MISSION!\epoch_code - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_config" p:\!MISSION!\epoch_config - START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!MISSION!" "!OUTPUT_PATH!" -clear -prefix=\ -project=P:\ -include=!AB_includes_path! + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\mpmissions\!MISSION!" P:\packing\!MISSION! + xcopy /s/y/q/i/f "!SOURCE_PATH!\description.ext" P:\packing\!MISSION! + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_code" P:\packing\!MISSION!\epoch_code + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_config" P:\packing\!MISSION!\epoch_config + START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!MISSION!" "!OUTPUT_PATH!" -clear -prefix=\ -project=P:\packing\ -include=!AB_includes_path! ) goto end :end diff --git a/build.txt b/build.txt index 2138029c..b9310c76 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -438 +439 From 2b699cea89b0f24dffa7997694a6cba32ca42802 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 12:02:58 -0500 Subject: [PATCH 09/26] allow blank class for deleteVehicle http://epochmod.com/forum/index.php?/topic/41933-players-kicked-for-moving-safes/&do=findComment&comment=275340 --- Server_Install_Pack/sc/BattlEye/deleteVehicle.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/BattlEye/deleteVehicle.txt b/Server_Install_Pack/sc/BattlEye/deleteVehicle.txt index fbd50b20..04d1965c 100644 --- a/Server_Install_Pack/sc/BattlEye/deleteVehicle.txt +++ b/Server_Install_Pack/sc/BattlEye/deleteVehicle.txt @@ -1 +1 @@ -5 "" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|SapperB|Cloak|Female_CamoRed)_F$" !" (Land_MPS|Bobber|Rabbit)_EPOCH$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp)_EPOCH$" !" (SapperHead|Jack|SolarGen)_SIM_EPOCH$" !" (Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH$" !" Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH$" !" (Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH$" !" (Hesco3|Metal|WoodWall[1-4])_(Ghost|SIM)_EPOCH$" !" (Spike|Metal)_TRAP_SIM_EPOCH$" !" (WoodFoundation|Foundation)_Ghost_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" B_Heli_Transport_01_F" !" Land_Cages_F$" +5 "" !="[0-9]:[0-9]{1,4}" !" GroundWeaponHolder$" !" WeaponHolderSimulated$" !" Epoch_(Sapper|SapperB|Cloak|Female_CamoRed)_F$" !" (Land_MPS|Bobber|Rabbit)_EPOCH$" !" (Sheep|Goat|Snake|Snake2|Hen|Cock|Fin|Alsatian)_random_EPOCH$" !" (Bed|locker|Filing|Chair|ChairRed|wardrobe|cooker|Couch|Table|Pelican|Fridge|Shelf|ToolRack|Shoebox|Bunk|Cabinet|Freezer|Tarp)_EPOCH$" !" (SapperHead|Jack|SolarGen)_SIM_EPOCH$" !" (Tipi|Workbench|StorageShelf|CinderWallHalf|Foundation|Wood(Floor|LargeWall|Stairs|Ramp|Foundation|Ladder|Tower))_Ghost_EPOCH$" !" Wood(Floor|LargeWall|LargeWallCor|LargeWallDoor|LargeWallDoorL|LargeWallDoorway|Stairs|Stairs2|Ramp|Ladder|Tower)_SIM_EPOCH$" !" (Safe|Workbench|LockBox|CinderWall|CinderWallGarage|CinderWallHalf|PlotPole|Tipi|StorageShelf|Fireplace|TankTrap)_SIM_EPOCH$" !" (Hesco3|Metal|WoodWall[1-4])_(Ghost|SIM)_EPOCH$" !" (Spike|Metal)_TRAP_SIM_EPOCH$" !" (WoodFoundation|Foundation)_Ghost_EPOCH$" !" I_(Soldier[1-3]|Soldier)_EPOCH$" !" I_(helipilot|helicrew)_F$" !" I_UAV_01_F$" !" (I|B|O)_UAV_AI$" !" I_Boat_Armed_01_minigun_F" !" B_Heli_Transport_01_F" !" Land_Cages_F$" From eb18c6f0f77b7b75279add974242c4cfa40937b2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 12:07:56 -0500 Subject: [PATCH 10/26] changelog --- Changelogs/0.3.9.0.txt | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 Changelogs/0.3.9.0.txt diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt new file mode 100644 index 00000000..c7bb960e --- /dev/null +++ b/Changelogs/0.3.9.0.txt @@ -0,0 +1,3 @@ +[Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. +[Info] Removed old .bikey and added new one for 0390. +[Info] Requires Arma 3 1.58 or higher. From 127165dd0a9d748356a5888f842395a30815da86 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 15:32:40 -0500 Subject: [PATCH 11/26] Small Epoch AH update Adds ability to kick and log cfgpatches check now kicks by default = 2 with message removed whitelisted variable check system minor cleanup --- Changelogs/0.3.9.0.txt | 1 + Server_Install_Pack/@epochhive/epochah.hpp | 17 ++- .../init/server_securityfunctions.sqf | 138 ++++++------------ 3 files changed, 55 insertions(+), 101 deletions(-) diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt index c7bb960e..1365e9e0 100644 --- a/Changelogs/0.3.9.0.txt +++ b/Changelogs/0.3.9.0.txt @@ -1,3 +1,4 @@ +[New] from Axeman TBA [Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. [Info] Removed old .bikey and added new one for 0390. [Info] Requires Arma 3 1.58 or higher. diff --git a/Server_Install_Pack/@epochhive/epochah.hpp b/Server_Install_Pack/@epochhive/epochah.hpp index 9e2e337f..d701f031 100644 --- a/Server_Install_Pack/@epochhive/epochah.hpp +++ b/Server_Install_Pack/@epochhive/epochah.hpp @@ -2,11 +2,18 @@ antihack_Enabled = true; // built-in Anti-Hack antihack_cfgPatchesCheck = true; // cfgPatches (AddOn Check) antihack_PVSPrefix = "EPAH_"; // used to help whitelist pveh variables in BE without BEC and watchdog, leave blank to use no prefix. -antihack_cfgPatchesCfg[] = {0}; // 0 == BAN - 1 = LOG +antihack_cfgPatchesCfg[] = {2}; // 0 == BAN - 1 = LOG, 2 = KICK antihack_ahInitAuthCfg[] = {0,180}; // 0 == BAN - 1 = LOG, 60 = ban or log if anti hack is not started in 180 seconds antihack_whitelistedCfgPatches[] = {"A3Data","A3_BaseConfig_F","A3_Dubbing_Radio_F","A3_Functions_F","A3_Functions_F_EPA","A3_Functions_F_EPC","A3_Language_F_MP_Mark","A3_LanguageMissions_F_MP_Mark","Map_VR","A3_Map_VR_Scenes","CUP_A10_Data","CUP_Afghan_Data","CUP_Air2_Data","CUP_Air3_Data","CUP_Air_Data","CUP_Air_d_baf_Data","CUP_Air_e_Data","CUP_Air_pmc_Data","CUP_CA_animals2","CA_animals2","CUP_Animations_Data","CUP_Animations_Config","CUP_Bohemia_Data","CUP_Bootcamp_acr_Data","CUP_Buildings2_Data","CUP_Buildings2_Ind_Cementworks_Data","CUP_Buildings_Data","CUP_Ca_acr_Data","CUP_CA_Config","CAData","CUP_Ca_e_Data","CUP_Ca_pmc_Data","CUP_Characters2_Data","CUP_Chernarus_Data","CUP_Chernarus_Summer_Data","CUP_Cti_buildings_Data","CUP_CA_Data","CUP_CAData_ParticleEffects","CAData_ParticleEffects","CUP_Data_baf_Data","CUP_dbe1_data","CUP_Desert2_Data","CUP_Desert2_Objects","Desert2_Objects","CUP_Desert_Data","CUP_Desert_e_Data","CUP_Hotfix_Data","CUP_L39_Data","CUP_CALanguage","CALanguage","CUP_CALanguage_ACR","CALanguage_ACR","CUP_CALanguage_missions","CALanguage_missions","CUP_CALanguage_missions_e","CALanguage_missions_e","CUP_Misc3_Data","CUP_CAMisc","CUP_Misc_Data","CAMisc","CUP_Misc_acr_Data","CUP_Misc_e_Data","CUP_CA_MPA","CA_MPA","CUP_CA_Plants2_Clutter","CA_Plants2_Clutter","CUP_CAPlants","CAPlants","CUP_CA_Plants_E_Clutter","CA_Plants_E_Clutter","CUP_Provinggrounds_pmc_Data","CUP_CARoads2","CARoads2","CUP_CARoads2Dam","CARoads2Dam","CUP_CARoads","CARoads","CUP_CARoads_E","CARoads_E","CUP_CARoads_PMC","CARoads_PMC","CUP_CARocks2","CARocks2","CUP_CARocks","CARocks","CUP_CARocks_E","CARocks_E","CUP_Sara_Data","CUP_Saralite_Data","CUP_Shapur_baf_Data","CUP_CASigns","CASigns","CUP_CASigns_E","CASigns_E","CUP_Sounds_Data","CUP_Sounds_Config","CASounds","CUP_Sounds_e_Data","CUP_Structures_Data","CUP_pond_test","pond_test","CUP_Structures_e_Data","CUP_Structures_pmc_Data","CUP_Takistan_Data","CUP_Tracked2_Data","CUP_Tracked_Data","CUP_Tracked_e_Data","CUP_CAFonts","CAFonts","CUP_Utes_Data","CUP_Water2_Data","CUP_Water_Data","CUP_Weapons2_Data","CUP_Weapons_Data","CUP_Weapons_e_Data","CUP_Weapons_pmc_Data","CUP_Wheeled2_Data","CUP_Wheeled_Data","CUP_Wheeled_e_Data","CUP_Zargabad_Data","CUP_A1AlwaysDummy","CAVideo2_PMC","CA_AnimsHotfix","CA_CutSceneAnims","CAIntroAnims","CAUSMCD","CAVoice","CAweapons3_aks74pso","CAWeapons3_ammocrates","CAweapons3_ksvk","CAweapons3_m107","CAweapons3_m16a4_acg_gl","CAweapons3_m16a4_acg","CAweapons3_m16a4_gl","CAweapons3_m16a4","CAWeapons3","CTI_buildingsBmp2_hq","CTI_buildingsM113_hq","DSHkM_Mini","M2HD_Mini","MK19_Tripod","Warfare","WarfareBuildings_Stinger_Twice_static","WarfareBuildings_T72_RACS","WarfareBuildings_TOW_Tripod","CUP_AiA_compat","AiA_A1AlwaysDummy","AiA_Afghan_Config","AiA_Afghan_Data","AiA_BaseConfig_F","AiA_Bohemia_Config","AiA_Bohemia_Data","AiA_Bootcamp_acr_Config","AiA_Bootcamp_acr_Data","AiA_Buildings_Config","AiA_Buildings_Data","AiA_Buildings2_Config","AiA_Buildings2_Data","AiA_Buildings2_Ind_Cementworks_Config","AiA_Buildings2_Ind_Cementworks_Data","AiA_Ca_acr_Config","AiA_Ca_acr_Data","AiA_CA_Config","AiA_CA_Config_Data_ParticleEffects","AiA_CA_Data","AiA_Ca_e_Config","AiA_Ca_e_Data","AiA_Ca_pmc_Config","AiA_Ca_pmc_Data","AiA_CBA_A2_xeh_Dummy","AiA_CBA_OA_xeh_Dummy","AiA_cba_xeh_a2_Dummy","AiA_cba_xeh_oa_Dummy","AiA_Chernarus_Config","AiA_Chernarus_Data","AiA_Chernarus_Summer_Config","AiA_Chernarus_Summer_Data","AiA_Core","AiA_Cti_buildings_Config","AiA_Cti_buildings_Data","AiA_Data_baf_Config","AiA_Data_baf_Data","AiA_Desert_Config","AiA_Desert_Data","AiA_Desert_e_Config","AiA_Desert_e_Data","AiA_Desert2_Config","AiA_Desert2_Data","AiA_Hotfix_Config","AiA_Hotfix_Data","AiA_Language_acr_Config","AiA_Language_acr_Data","AiA_Language_baf_Config","AiA_Language_baf_Data","AiA_Language_e_Config","AiA_Language_e_Data","AiA_Language_pmc_Config","AiA_Language_pmc_Data","AiA_Languagemissions_acr_Config","AiA_Languagemissions_acr_Data","AiA_Languagemissions_baf_Config","AiA_Languagemissions_baf_Data","AiA_Languagemissions_pmc_Config","AiA_Languagemissions_pmc_Data","AiA_Misc_acr_Config","AiA_Misc_acr_Data","AiA_Misc_Config","AiA_Misc_Data","AiA_Misc_e_Config","AiA_Misc_e_Data","AiA_Misc2_Config","AiA_Misc2_Data","AiA_Misc3_Config","AiA_Misc3_Data","AiA_Models_DBE1_Config","AiA_Models_DBE1_Data","AiA_Plants_Config","AiA_Plants_Data","AiA_Plants_e_Config","AiA_Plants_e_Data","AiA_Plants_e2_Config","AiA_Plants_e2_Data","AiA_Plants_pmc_Config","AiA_Plants_pmc_Data","AiA_Plants2_Bush_Config","AiA_Plants2_Bush_Data","AiA_Plants2_Clutter_Config","AiA_Plants2_Clutter_Data","AiA_Plants2_Misc_Config","AiA_Plants2_Misc_Data","AiA_Plants2_Plant_Config","AiA_Plants2_Plant_Data","AiA_Plants2_Tree_Config","AiA_Plants2_Tree_Data","AiA_Provinggrounds_pmc_Config","AiA_Provinggrounds_pmc_Data","AiA_Roads_Config","AiA_Roads_Data","AiA_Roads_e_Config","AiA_Roads_e_Data","AiA_Roads_pmc_Config","AiA_Roads_pmc_Data","AiA_Roads2_Config","AiA_Roads2_Data","AiA_Rocks_Config","AiA_Rocks_Data","AiA_Rocks_e_Config","AiA_Rocks_e_Data","AiA_Rocks2_Config","AiA_Rocks2_Data","AiA_Sara_Config","AiA_Sara_Data","AiA_Sara_dbe1_Config","AiA_Sara_dbe1_Data","AiA_Saralite_Config","AiA_Saralite_Data","AiA_Shapur_baf_Config","AiA_Shapur_baf_Data","AiA_Signs_Config","AiA_Signs_Data","AiA_Signs_e_Config","AiA_Signs_e_Data","AiA_Signs2_Config","AiA_Signs2_Data","AiA_Sounds_Config","AiA_Sounds_Data","AiA_StandaloneTerrainPack_Core","AiA_StandaloneTerrains_Core","AiA_Structures_Config","AiA_Structures_Data","AiA_Structures_e_Config","AiA_Structures_e_Data","AiA_Structures_pmc_Config","AiA_Structures_pmc_Data","AiA_Takistan_Config","AiA_Takistan_Data","AiA_Ui_Config","AiA_Ui_Data","AiA_Utes_Config","AiA_Utes_Data","AiA_Water_Config","AiA_Water_Data","AiA_Water2_Config","AiA_Water2_Data","AiA_Weapons_Config","AiA_Weapons_Data","AiA_Weapons_e_Config","AiA_Weapons_e_Data","AiA_Weapons_pmc_Config","AiA_Weapons_pmc_Data","AiA_Weapons2_Config","AiA_Weapons2_Data","AiA_Wheeled_Config","AiA_Wheeled_Data","AiA_Wheeled_e_Config","AiA_Wheeled_e_Data","AiA_Wheeled2_Config","AiA_Wheeled2_Data","AiA_Worlds","AiA_Worlds_Ambient","AiA_Worlds_Author","AiA_Worlds_Clutter","AiA_Worlds_ClutterDist","AiA_Worlds_Delete","AiA_Worlds_DisableInfiniteTerrain","AiA_Worlds_DustEffects","AiA_Worlds_EnvSounds","AiA_Worlds_FullDetailDist","AiA_Worlds_Grid","AiA_Worlds_Intros","AiA_Worlds_Lighting","AiA_Worlds_Lighting_Chernarus","AiA_Worlds_Lighting_Desert","AiA_Worlds_MapSize","AiA_Worlds_MidDetailTexture","AiA_Worlds_NoDetailDist","AiA_Worlds_Seabed","AiA_Worlds_SkyTexture","AiA_Worlds_StreetLamp","AiA_Worlds_Surfaces","AiA_Worlds_Water","AiA_Zargabad_Config","AiA_Zargabad_Data","CUP_StandaloneTerrains_Dummy","CA_ACR","CA_Animals2_Anim_Config","CA_Anims_Char","CA_Anims_E_Wmn","CA_E","CA_PMC","CAAir","CACharacters","CATracked","CAWater","CAWater2","CAWater2_seafox","CAWeapons","CAWeapons_Warfare_weapons","CAWheeled","CAWheeled_E","CAWheeled2","6G30_DBE1","Arma2_Ka52","BI_SRRS","CA_AH64D","CA_AIR_E_MQ9PredatorB","CA_AIR_E_Su25","CA_AIR2_Su25","CA_Animals_E","CA_Animals2_Chicken","CA_Animals2_Cow","CA_Animals2_Dogs","CA_Animals2_Dogs_Fin","CA_Animals2_Dogs_Pastor","CA_Animals2_Goat","CA_Animals2_Rabbit","CA_Animals2_Sheep","CA_Animals2_WildBoar","CA_Anims","CA_Anims_E","CA_Anims_E_Sdr","CA_Anims_Sdr","CA_Anims_Wmn","CA_CommunityConfigurationProject_E","CA_CruiseMissile","CA_Dubbing","CA_Dubbing_Baf","CA_Dubbing_Counterattack","CA_Dubbing_E","CA_Dubbing_PMC","CA_DubbingRadio_E","CA_DubbingRadio_PMC","CA_E_ParticleEffects","CA_Editor","CA_HC_Sounds","CA_Heads","CA_HighCommand","CA_L39","CA_Missions","CA_Missions_AlternativeInjurySimulation","CA_Missions_AmbientCombat","CA_Missions_Armory1","CA_Missions_Armory2","CA_Missions_BAF","CA_Missions_BAF_2","CA_Missions_BAF_Templates_SecOps","CA_Missions_BattlefieldClearance","CA_Missions_E","CA_Missions_E_Armory2","CA_Missions_E_SecOps","CA_Missions_E_Templates_SecOps","CA_Missions_FirstAidSystem","CA_Missions_GarbageCollector","CA_Missions_PMC","CA_Missions_SecOps","CA_Missions_Templates_SecOps","CA_Missions2_PMC","CA_Modules","CA_Modules_Alice","CA_Modules_Animals","CA_Modules_ARTY","CA_Modules_clouds","CA_Modules_Coin","CA_Modules_DynO","CA_Modules_E","CA_Modules_E_DynO","CA_Modules_E_Jukebox","CA_Modules_E_OO","CA_Modules_E_UAV","CA_Modules_E_UAV_Heli","CA_Modules_E_Weather","CA_Modules_Functions","CA_Modules_Marta","CA_Modules_PMC","CA_Modules_PMC_SimpleFIrstAid","CA_Modules_Silvie","CA_Modules_StratLayer","CA_Modules_UAV","CA_Modules_ZoRA","CA_MPA_Challenges","CA_MPA_Core","CA_MPA_MP","CA_MPA_Scenarios","CA_Sounds_Baf","CA_SoundsMissions_E","CA_Support","CAA10","CAAir_BAF","CAAir_BAF_CH_47F","CAAir_E","CAAir_E_A10","CAAir_E_AH64D","CAAir_E_AH6J","CAAir_E_An2","CAAir_E_C130J","CAAir_E_CH_47F","CAAir_E_Halo","CAAir_E_Mi24","CAAir_E_MI8","CAAir_E_UH1H_EP1","CAAir_E_UH60M","CAAir_PMC","CAAir_PMC_KA137","CAAir_PMC_KA60","CAAir2","CAAir2_C130J","CAAir2_ChukarTarget","CAAir2_F35B","CAAir2_MQ9PredatorB","CAAir2_MV22","CAAir2_Pchela1T","CAAir2_UH1Y","CAAir3","CAAir3_Su34","CAAnimals","CACharacters_BAF","CACharacters_BAF_Head","CACharacters_E","CACharacters_E_Head","CACharacters_PMC","CACharacters_PMC_Head","CACharacters_W_BAF","CACharacters2","CAMisc_fix","CAMisc_fix_A2FREE","CAMisc_fix_air","CAMisc_fix_Ch2","CAMisc_fix_Str","CAMisc_fix_Weap","CAMusic","CAMusic_E","CAMusic_PMC","CASounds_E","CASounds_Missions","CATracked_BAF","CATracked_E","CATracked_E_BMP2","CATracked_E_M1_Abrams","CATracked_E_M113","CATracked_E_M2A2_Bradley","CATracked_E_T34","CATracked_E_T55","CATracked_E_T72","CATracked_E_us_m270mlrs","CATracked_E_ZSU","CATracked_W_BAF","CATracked2","CATracked2_2S6M_Tunguska","CATracked2_AAV","CATracked2_BMP3","CATracked2_T34","CATracked2_T90","CATracked2_us_m270mlrs","CAWater2_Destroyer","CAWater2_fishing_boat","CAWater2_Fregata","CAWater2_smallboat_1","CAWeapons_2b14_82mm_Mortar","CAWeapons_AK","CAWeapons_AmmoBoxes","CAWeapons_BAF","CAWeapons_bizon","CAWeapons_Colt1911","CAWeapons_DMR","CAWeapons_E","CAWeapons_E_AGS","CAWeapons_E_AK","CAWeapons_E_AmmoBoxes","CAWeapons_E_Colt1911","CAWeapons_E_D30","CAWeapons_E_DSHKM","CAWeapons_E_FIM92_static","CAWeapons_E_fnfal","CAWeapons_E_G36","CAWeapons_E_GrenadeLauncher","CAWeapons_E_Igla","CAWeapons_E_Javelin","CAWeapons_E_KORD","CAWeapons_E_ksvk","CAWeapons_E_LeeEnfield","CAweapons_E_m107","CAWeapons_E_M110","CAWeapons_E_M119_Howitzer","CAWeapons_E_M136","CAWeapons_E_M14","CAWeapons_E_M16","CAWeapons_E_M240","CAWeapons_E_M252_81mm_Mortar","CAWeapons_E_M2StaticMG","CAWeapons_E_M47","CAWeapons_E_M9","CAWeapons_E_MAAWS","CAWeapons_E_Makarov","CAWeapons_E_Metis","CAWeapons_E_Mk19_MiniTriPod","CAWeapons_E_PK","CAWeapons_E_Podnos_2b14_82mm","CAWeapons_E_RPG18","CAWeapons_E_RPG7","CAWeapons_E_scar","CAWeapons_E_Searchlight","CAWeapons_E_SPG9","CAWeapons_E_STATIC","CAWeapons_E_Stinger","CAWeapons_E_Strela","CAWeapons_E_TOW","CAWeapons_E_ZU23","CAWeapons_Kord","CAweapons_ksvk","CAWeapons_M1014","CAweapons_m107","CAWeapons_M252_81mm_Mortar","CAWeapons_Metis_AT_13","CAWeapons_PMC","CAWeapons_PMC_AA_12","CAWeapons_PMC_AS50","CAWeapons_PMC_XM8","CAWeapons_Saiga12K","CAWeapons_SPG9","CAWeapons_VSS_vintorez","CAWeapons_ZU23","CAWeapons2","CAWeapons2_HuntingRifle","CAWeapons2_RPG18","CAWeapons2_SMAW","CAWheeled_D_BAF","CAWheeled_E_ATV","CAWheeled_E_BRDM2","CAWheeled_E_BTR40","CAWheeled_E_BTR60","CAWheeled_E_HMMWV","CAWheeled_E_Ikarus","CAWheeled_E_LADA","CAWheeled_E_LandRover","CAWheeled_E_M1030","CAWheeled_E_MTVR","CAWheeled_E_Offroad","CAWheeled_E_Old_bike","CAWheeled_E_Old_moto","CAWheeled_E_Pickup","CAWheeled_E_s1203","CAWheeled_E_SCUD","CAWheeled_E_stryker","CAWheeled_E_SUV","CAWheeled_E_TT650","CAWheeled_E_UAZ","CAWheeled_E_Ural","CAWheeled_E_V3S","CAWheeled_E_Volha","CAWheeled_Offroad","CAWheeled_Pickup","CAWheeled_PMC","CAWheeled_PMC_ArmoredSUV","CAWheeled_W_BAF","CAWheeled2_BTR90","CAWheeled2_GAZ39371","CAWheeled2_HMMWV_Ambulance","CAWheeled2_HMMWV_BASE","CAWheeled2_Ikarus","CAWheeled2_Kamaz","CAWheeled2_LADA","CAWheeled2_LAV25","CAWheeled2_M1114_Armored","CAWheeled2_M998A2_Avenger","CAWheeled2_MMT","CAWheeled2_MTVR","CAWheeled2_TowingTractor","CAWheeled2_V3S","CAWheeled2_VWGolf","CAWheeled3","CAWheeled3_M1030","CAWheeled3_TT650","Datsun_armed_DBE1","DBE1","DBE1_UI","DC3_DBE1","HALO_Test","Hilux_armed_DBE1","Warfare2","Warfare2_E","Warfare2Vehicles","CUP_Models_DBE1_Data","CUP_Anims_DBE1","Anims_DBE1","CUP_HMMWV_DBE1","HMMWV_DBE1","CUP_Mercenary_DBE1","Mercenary_DBE1","CUP_Misc_DBE1","Misc_DBE1","CUP_Music_DBE1","Music_DBE1","CUP_NPCs_DBE1","NPCs_DBE1","CUP_ploty_DBE1","ploty_DBE1","CUP_Prisoners_DBE1","Prisoners_DBE1","CUP_Roads_DBE1","Roads_DBE1","CUP_UH60Desert","UH60Desert","CUP_Sara_dbe1_Data","CUP_TKOH_Dummy","HSim_Data_H","HSim_Data_H_data_ParticleEffects","HSim_Data_H_data_ParticleEffects_rotor_blades","HSim_Dubbing_H","HSim_DubbingRadio_H","HSim_Editor_H","Intro_Island_H","HSim_Missions_H","HSim_ModulesCore_H","HSim_ModulesCore_H_AmbientCombat","HSim_ModulesCore_H_DynO","HSim_ModulesCore_H_Functions","HSim_ModulesCore_H_GarbageCollector","HSim_ModulesCore_H_Functions_E","HSim_ModulesCore_H_OO","HSim_ModulesCore_H_Functions_PMC","HSim_Music_H","HSim_Sounds_H","South_Asia_H","HSim_UIFonts_H","United_States_H","HSim_Animals_H","HSim_Animals_H_Anim_Config","HSim_Animals_H_Dog","HSim_Characters_H_Faces","HSim_Characters_H_Heads","HSim_Modules_H","HSim_UI_H","HSim_Weapons_H","HSim_Weapons_H_AK47","HSim_Weapons_H_DShKM","HSim_Weapons_H_Glock","HSim_Weapons_H_HandItems","HSim_Weapons_H_M16","HSim_Weapons_US_H","HSim_Characters_H","HSim_Characters_US_H","HSim_Missions_H_FreeFlight","HSim_Functions_Base_H","HSim_Water_H","HSim_Water_H_Civ_FishingBoat_Large","HSim_Water_H_Civ_Jetboat","HSim_Water_H_Civ_Yacht","HSim_Water_H_Container_Ship","HSim_Water_H_Cruise_Ship","HSim_Water_H_Destroyer","HSim_Water_H_Fishing_Boat","HSim_Water_H_Fregata","HSim_Water_H_LHD","HSim_Water_H_Oil_tanker","HSim_Water_H_Rubber_Boat","HSim_Water_H_Whales","HSim_Water_H_Whales_GreyWhale","HSim_Water_H_Whales_Whale1","HSim_Weapons_H_IGLA","HSim_Weapons_US_H_M2","HSim_Wheeled_H","HSim_Wheeled_H_Ambulance","HSim_Wheeled_H_FireTruck","HSim_Wheeled_H_Hatchback","HSim_Wheeled_H_Military_Offroad_LR","HSim_Wheeled_H_Military_Pickup_DSHKM","HSim_Wheeled_H_Offroad","HSim_Wheeled_H_Police_Car","HSim_Wheeled_H_TowingTractor","HSim_Wheeled_H_Tractor","HSim_Wheeled_H_Trailers","HSim_Wheeled_H_Truck_Light_Transport","HSim_Wheeled_H_Ural","HSim_Wheeled_H_Van_Passenger","HSim_Wheeled_US_H","HSim_Wheeled_US_H_Military_Offroad","HSim_Wheeled_US_H_Military_Truck","HSim_Wheeled_US_H_Pickup_01","HSim_Wheeled_US_H_Pickup_02","HSim_Wheeled_US_H_SUV","HSim_Wheeled_US_H_Truck_US_Type","HSim_Air_H","HSim_Air_H_Aircraft_A","HSim_Air_H_Aircraft_C","HSim_Air_H_Aircraft_D","HSim_Air_H_Aircraft_E_H","HSim_Air_H_Airliner_A","HSim_Air_H_Airliner_B","HSim_Air_H_Parachute","HSim_Air_US_H","HSim_Air_US_H_Helicopters_Heavy","HSim_Air_US_H_Helicopters_Light","HSim_Air_US_H_Helicopters_Medium","HSim_Misc_H","HSim_Misc_H_Antena","HSim_Misc_H_Barels","HSim_Misc_H_Bleacher","HSim_Misc_H_BoardsPack","HSim_Misc_H_CncBlock","HSim_Misc_H_Doghouse","HSim_Misc_H_Engine_Crane","HSim_Misc_H_Fence","HSim_Misc_H_Fire_Extinguisher","HSim_Misc_H_Fire_Suppression","HSim_Misc_H_First_Aid","HSim_Misc_H_Flagpole","HSim_Misc_H_Folding_Ladder","HSim_Misc_H_FuelCan","HSim_Misc_H_Heliport_Furniture","HSim_Misc_H_Helicopter_Parts","HSim_Misc_H_Helipads","HSim_Misc_H_Heliport_Objects","HSim_Misc_H_Helpers","HSim_Misc_H_Info_Board","HSim_Misc_H_Infostands","HSim_Misc_H_Inspection_Visuals","HSim_Misc_H_Interior","HSim_Misc_H_Loudspeakers","HSim_Misc_H_Market","HSim_Misc_H_Office_Objects","HSim_Misc_H_Perimeter_Ligh","HSim_Misc_H_Pike","HSim_Misc_H_Platform_Cart","HSim_Misc_H_Portable_Generator","HSim_Misc_H_Props","HSim_Misc_H_SawHorse","HSim_Misc_H_Shooting_Range","HSim_Misc_H_Signs","HSim_Misc_H_Sink","HSim_Misc_H_Targets","HSim_Misc_H_Tent","HSim_Misc_H_Toilet","HSim_Misc_H_Tools","HSim_Misc_H_Tools_Racking","HSim_Misc_H_Trash","HSim_Misc_H_Weather_Station","HSim_Misc_H_Weld_Gastank","HSim_Misc_H_Wheel_Chocks","HSim_Misc_H_Wheeled_Scaffolding","HSim_Misc_H_wheeled_tool_cart","HSim_Misc_H_Wheeled_Whiteboard","HSim_Misc_H_Winch","HSim_Misc_H_Windsock","HSim_Misc_H_Workbench","HSim_Misc_H_Wrecks","HSim_Structures_H","HSim_Structures_H_Airport_Papi","HSim_Structures_H_Harbour","HSim_Structures_H_Heliports_Heliport_Big","HSim_Structures_H_Heliports_Heliport_Small","HSim_Structures_H_Industrial_A_CraneCon","HSim_Structures_H_Industrial_Rooftop_Objects","HSim_Structures_US_H","HSim_Structures_US_H_Bld_US","HSim_Structures_US_H_Landmarks_Space_Needle","HSim_Tracked_H","HSim_Tracked_H_BMP2","HSim_Tracked_US_H","HSim_Tracked_US_H_M1A2","HSim_Tracked_US_H_MLRS","HSim_Data_H_EditorGroups","HSim_Anims_H","HSim_Anims_H_config_sdr","HSim_Anims_H_config_wmn","CUP_Hsim_Language_H","Hsim_Language_H","CUP_Hsim_Language_missions_H","Hsim_Language_missions_H","Enhanced_Epoch_AiASupport","A3_epoch_assets_1","epoch_objects","A3_epoch_assets_3","Underground_Epoch","A3_epoch_vehicles","a3_epoch_weapons","A3_Data_F","A3_Data_F_Hook","A3_Data_F_ParticleEffects","A3_Data_F_Bootcamp","A3_Data_F_Exp_A","A3_Data_F_Kart_ParticleEffects","A3_Data_F_Mark","A3_Editor_F","A3_Functions_F_Bootcamp","A3_Functions_F_Curator","A3_Functions_F_Exp_A","A3_Functions_F_Heli","A3_Functions_F_Mark","A3_Functions_F_MP_Mark","A3_Language_F","A3_Language_F_Beta","A3_Language_F_Curator","A3_Language_F_EPA","A3_Language_F_EPB","A3_Language_F_EPC","A3_Language_F_Gamma","A3_Language_F_Heli","A3_Language_F_Kart","A3_Language_F_Mark","A3_LanguageMissions_F","A3_LanguageMissions_F_Beta","A3_LanguageMissions_F_Gamma","A3_LanguageMissions_F_Kart","A3_Misc_F","A3_Misc_F_Helpers","A3_Modules_F","A3_Modules_F_DynO","A3_Modules_F_Effects","A3_Modules_F_Events","A3_Modules_F_GroupModifiers","A3_Modules_F_HC","A3_Modules_F_Intel","A3_Modules_F_LiveFeed","A3_Modules_F_Marta","A3_Modules_F_Misc","A3_Modules_F_Multiplayer","A3_Modules_F_ObjectModifiers","A3_Modules_F_Sites","A3_Modules_F_Skirmish","A3_Modules_F_StrategicMap","A3_Modules_F_Supports","A3_Modules_F_UAV","A3_Modules_F_Beta","A3_Modules_F_Beta_FiringDrills","A3_Modules_F_EPB","A3_Modules_F_EPB_Misc","A3_Modules_F_Heli","A3_Modules_F_Heli_SpawnAi","A3_Modules_F_Mark","A3_Modules_F_Mark_FiringDrills","A3_Modules_F_MP_Mark","A3_Modules_F_Mark_Objectives","A3_Music_F","A3_Music_F_Bootcamp","A3_Music_F_EPA","A3_Music_F_EPB","A3_Music_F_EPC","A3_Music_F_Heli","A3_Music_F_Mark","A3_Roads_F","A3_Rocks_F","A3_Sounds_F","A3_Sounds_F_Bootcamp","A3_Sounds_F_EPB","A3_Sounds_F_EPC","A3_Sounds_F_Exp_A","A3_Structures_F","A3_Structures_F_Bridges","A3_Structures_F_Civ","A3_Structures_F_Civ_Accessories","A3_Structures_F_Civ_Ancient","A3_Structures_F_Civ_BellTowers","A3_Structures_F_Civ_Calvaries","A3_Structures_F_Civ_Camping","A3_Structures_F_Civ_Chapels","A3_Structures_F_Civ_Constructions","A3_Structures_F_Civ_Dead","A3_Structures_F_Civ_Garbage","A3_Structures_F_Civ_Graffiti","A3_Structures_F_Civ_InfoBoards","A3_Structures_F_Civ_Kiosks","A3_Structures_F_Civ_Lamps","A3_Structures_F_Civ_Market","A3_Structures_F_Civ_Offices","A3_Structures_F_Civ_Pavements","A3_Structures_F_Civ_PlayGround","A3_Structures_F_Civ_SportsGrounds","A3_Structures_F_Civ_Statues","A3_Structures_F_Civ_Tourism","A3_Structures_F_Dominants","A3_Structures_F_Dominants_Amphitheater","A3_Structures_F_Dominants_Castle","A3_Structures_F_Dominants_Church","A3_Structures_F_Dominants_Hospital","A3_Structures_F_Dominants_Lighthouse","A3_Structures_F_Dominants_WIP","A3_Structures_F_Furniture","A3_Structures_F_Households","A3_Structures_F_Households_Addons","A3_Structures_F_Households_House_Big01","A3_Structures_F_Households_House_Big02","A3_Structures_F_Households_House_Shop01","A3_Structures_F_Households_House_Shop02","A3_Structures_F_Households_House_Small01","A3_Structures_F_Households_House_Small02","A3_Structures_F_Households_House_Small03","A3_Structures_F_Households_Slum","A3_Structures_F_Households_Stone_Big","A3_Structures_F_Households_Stone_Shed","A3_Structures_F_Households_Stone_Small","A3_Structures_F_Households_WIP","A3_Structures_F_Ind","A3_Structures_F_Ind_AirPort","A3_Structures_F_Ind_Cargo","A3_Structures_F_Ind_CarService","A3_Structures_F_Ind_ConcreteMixingPlant","A3_Structures_F_Ind_Crane","A3_Structures_F_Ind_DieselPowerPlant","A3_Structures_F_Ind_Factory","A3_Structures_F_Ind_FuelStation","A3_Structures_F_Ind_FuelStation_Small","A3_Structures_F_Ind_Pipes","A3_Structures_F_Ind_PowerLines","A3_Structures_F_Ind_ReservoirTank","A3_Structures_F_Ind_Shed","A3_Structures_F_Ind_SolarPowerPlant","A3_Structures_F_Ind_Tank","A3_Structures_F_Ind_Transmitter_Tower","A3_Structures_F_Ind_WavePowerPlant","A3_Structures_F_Ind_Windmill","A3_Structures_F_Ind_WindPowerPlant","A3_Structures_F_Items","A3_Structures_F_Items_Documents","A3_Structures_F_Items_Electronics","A3_Structures_F_Items_Cans","A3_Structures_F_Items_Gadgets","A3_Structures_F_Items_Luggage","A3_Structures_F_Items_Medical","A3_Structures_F_Items_Military","A3_Structures_F_Items_Stationery","A3_Structures_F_Items_Tools","A3_Structures_F_Items_Valuables","A3_Structures_F_Items_Vessels","A3_Structures_F_Mil","A3_Structures_F_Mil_BagBunker","A3_Structures_F_Mil_BagFence","A3_Structures_F_Mil_Barracks","A3_Structures_F_Mil_Bunker","A3_Structures_F_Mil_Cargo","A3_Structures_F_Mil_Flags","A3_Structures_F_Mil_Fortification","A3_Structures_F_Mil_Helipads","A3_Structures_F_Mil_Offices","A3_Structures_F_Mil_Radar","A3_Structures_F_Mil_Shelters","A3_Structures_F_Mil_TentHangar","A3_Structures_F_Naval","A3_Structures_F_Naval_Buoys","A3_Structures_F_Naval_Fishing","A3_Structures_F_Naval_Piers","A3_Structures_F_Naval_RowBoats","A3_Structures_F_Research","A3_Structures_F_System","A3_Structures_F_Training","A3_Structures_F_Training_InvisibleTarget","A3_Structures_F_Walls","A3_Structures_F_Bootcamp_Ind_Cargo","A3_Structures_F_Bootcamp_Items_Sport","A3_Structures_F_Bootcamp_System","A3_Structures_F_Bootcamp_Training","A3_Structures_F_Bootcamp_VR_Blocks","A3_Structures_F_Bootcamp_VR_CoverObjects","A3_Structures_F_Bootcamp_VR_Helpers","A3_Structures_F_EPA_Civ_Camping","A3_Structures_F_EPA_Civ_Constructions","A3_Structures_F_EPA_Items_Electronics","A3_Structures_F_EPA_Items_Food","A3_Structures_F_EPA_Items_Medical","A3_Structures_F_EPA_Items_Tools","A3_Structures_F_EPA_Items_Vessels","A3_Structures_F_EPA_Walls","A3_Structures_F_EPB_Civ_Accessories","A3_Structures_F_EPB_Civ_Camping","A3_Structures_F_EPB_Civ_Dead","A3_Structures_F_EPB_Civ_Garbage","A3_Structures_F_EPB_Civ_Graffiti","A3_Structures_F_EPB_Civ_PlayGround","A3_Structures_F_EPB_Furniture","A3_Structures_F_EPB_Items_Documents","A3_Structures_F_EPB_Items_Luggage","A3_Structures_F_EPB_Items_Military","A3_Structures_F_EPB_Items_Vessels","A3_Structures_F_EPB_Naval_Fishing","A3_Structures_F_EPC_Civ_Accessories","A3_Structures_F_EPC_Civ_Camping","A3_Structures_F_EPC_Civ_Garbage","A3_Structures_F_EPC_Civ_InfoBoards","A3_Structures_F_EPC_Civ_Kiosks","A3_Structures_F_EPC_Civ_PlayGround","A3_Structures_F_EPC_Civ_Tourism","A3_Structures_F_EPC_Dominants_GhostHotel","A3_Structures_F_EPC_Dominants_Stadium","A3_Structures_F_EPC_Furniture","A3_Structures_F_EPC_Items_Documents","A3_Structures_F_EPC_Items_Electronics","A3_Structures_F_EPC_Walls","A3_Structures_F_Exp_A","A3_Structures_F_Exp_A_VR_Blocks","A3_Structures_F_Exp_A_VR_Helpers","A3_Structures_F_Heli_Civ_Accessories","A3_Structures_F_Heli_Civ_Constructions","A3_Structures_F_Heli_Civ_Garbage","A3_Structures_F_Heli_Civ_Market","A3_Structures_F_Heli_Furniture","A3_Structures_F_Heli_Ind_AirPort","A3_Structures_F_Heli_Ind_Cargo","A3_Structures_F_Heli_Ind_Machines","A3_Structures_F_Heli_Items_Airport","A3_Structures_F_Heli_Items_Luggage","A3_Structures_F_Heli_Items_Sport","A3_Structures_F_Heli_Items_Tools","A3_Structures_F_Heli_VR_Helpers","A3_Structures_F_Kart_Civ_SportsGrounds","A3_Structures_F_Kart_Mil_Flags","A3_Structures_F_Mark_Items_Military","A3_Structures_F_Mark_Items_Sport","A3_Structures_F_Mark_Mil_Flags","A3_Structures_F_Mark_Training","A3_Structures_F_Mark_VR_Helpers","A3_Structures_F_Mark_VR_Shapes","A3_Structures_F_Mark_VR_Targets","A3_UIFonts_F","CUP_Buildings_Config","CABuildings","CUP_CABuildings_Misc","CABuildings_Misc","CUP_Desert2_Buildings","Desert2_Buildings","CUP_CA_desert2_Characters","CA_desert2_Characters","CUP_Desert_Config","Desert","CUP_DBE1_Hotfix","DBE1_Hotfix","CUP_CALanguage_e","CALanguage_e","CUP_CALanguage_PMC","CALanguage_PMC","CUP_CALanguage_missions_PMC","CALanguage_missions_PMC","CUP_CAWater2_seafox_EP1","CAWater2_seafox_EP1","CUP_CA_Plants2","CA_Plants2","CUP_CA_Plants2_Plant","CA_Plants2_Plant","CUP_CA_Plants2_Tree","CA_Plants2_Tree","CUP_CA_Plants_E2","CA_Plants_E2","CUP_CA_Plants_E","CA_Plants_E","CUP_CA_Plants_E_Misc","CA_Plants_E_Misc","CUP_CA_Plants_E_Plant","CA_Plants_E_Plant","CUP_CA_Plants_E_Tree","CA_Plants_E_Tree","CUP_Sara_Config","Sara","CUP_Saralite_Config","SaraLite","CUP_CASigns2","CASigns2","CUP_Structures_Config","CAStructures","CUP_CAStructures_A_BuildingWIP","CAStructures_A_BuildingWIP","CUP_CAStructures_A_CraneCon","CAStructures_A_CraneCon","CUP_CAStructuresLand_A_MunicipalOffice","CAStructuresLand_A_MunicipalOffice","CUP_CAStructuresBarn_W","CAStructuresBarn_W","CUP_CAStructures_Castle","CAStructures_Castle","CUP_CAStructuresHouse","CAStructuresHouse","CUP_CAStructuresHouse_A_FuelStation","CAStructuresHouse_A_FuelStation","CUP_CAStructuresHouse_A_Hospital","CAStructuresHouse_A_Hospital","CUP_CAStructuresHouse_A_Office01","CAStructuresHouse_A_Office01","CUP_CAStructuresHouse_A_Office02","CAStructuresHouse_A_Office02","CUP_CAStructuresHouse_a_stationhouse","CAStructuresHouse_a_stationhouse","CUP_CAStructuresHouse_Church_02","CAStructuresHouse_Church_02","CUP_CAStructuresHouse_Church_03","CAStructuresHouse_Church_03","CUP_CAStructuresHouse_Church_05R","CAStructuresHouse_Church_05R","CUP_CAStructuresHouse_HouseBT","CAStructuresHouse_HouseBT","CUP_CAStructuresHouse_HouseV2","CAStructuresHouse_HouseV2","CUP_CAStructuresHouse_HouseV","CAStructuresHouse_HouseV","CUP_CAStructuresLand_Ind_Stack_Big","CAStructuresLand_Ind_Stack_Big","CUP_CAStructures_IndPipe1","CAStructures_IndPipe1","CUP_CAStructuresInd_Quarry","CAStructuresInd_Quarry","CUP_Ind_SawMill","Ind_SawMill","CUP_CAStructures_Mil","CAStructures_Mil","CUP_CAStructures_Misc","CAStructures_Misc","CUP_CAStructures_Misc_Armory","CAStructures_Misc_Armory","CUP_CAStructures_Misc_Armory_Armor_Popuptarget","CAStructures_Misc_Armory_Armor_Popuptarget","CUP_CAStructures_Misc_Powerlines","CAStructures_Misc_Powerlines","CUP_CAStructures_Nav","CAStructures_Nav","CUP_CAStructuresLand_Nav_Boathouse","CAStructuresLand_Nav_Boathouse","CUP_CAStructures_Proxy_BuildingParts","CAStructures_Proxy_BuildingParts","CUP_CAStructures_Proxy_Ruins","CAStructures_Proxy_Ruins","CUP_CAStructures_Rail","CAStructures_Rail","CUP_CAStructuresHouse_rail_station_big","CAStructuresHouse_rail_station_big","CUP_CAStructures_Ruins","CAStructures_Ruins","CUP_CAStructuresShed_Small","CAStructuresShed_Small","CUP_CAStructuresHouse_Shed_Ind","CAStructuresHouse_Shed_Ind","CUP_CAStructures_Wall","CAStructures_Wall","CUP_CAUI","CAUI","CUP_CAWater2_LHD","CAWater2_LHD","CUP_Models_DBE1_Config","Models_DBE1","CUP_Kamenolom_DBE1","Kamenolom_DBE1","CUP_Pila_DBE1","Pila_DBE1","CUP_UI_DBE1","UI_DBE1","CUP_Vysilac_DBE1","Vysilac_DBE1","CUP_Zakladna_DBE1","Zakladna_DBE1","CUP_Sara_dbe1_Config","Sara_dbe1","a3_epoch_structures","A3_Animals_F","A3_Animals_F_AnimConfig","A3_Animals_F_Fishes","A3_Animals_F_Kestrel","A3_Animals_F_Rabbit","A3_Animals_F_Seagull","A3_Animals_F_Snakes","A3_Animals_F_Turtle","A3_Animals_F_Chicken","A3_Animals_F_Dog","A3_Animals_F_Goat","A3_Animals_F_Sheep","A3_Anims_F","A3_Anims_F_Config_Sdr","A3_Anims_F_EPA","A3_Anims_F_EPC","A3_Anims_F_Exp_A","A3_Anims_F_Kart","A3_Anims_F_Mark_Deployment","A3_Language_F_Bootcamp","A3_Language_F_Exp_A","A3_Map_Data","A3_Map_Stratis","A3_Map_Stratis_Scenes","A3_Plants_F_Bush","A3_Props_F_Exp_A","A3_Props_F_Exp_A_Military","A3_Signs_F","A3_Signs_F_AD","A3_Structures_F_Signs_Companies","A3_Structures_F_Bootcamp_Civ_Camping","A3_Structures_F_Bootcamp_Civ_SportsGrounds","A3_Structures_F_Bootcamp_Items_Electronics","A3_Structures_F_Bootcamp_Items_Food","A3_Structures_F_Heli_Items_Electronics","A3_Structures_F_Heli_Items_Food","A3_Structures_F_Kart_Signs_Companies","A3_UI_F","A3_UI_F_Curator","A3_UI_F_Kart","A3_UI_F_Mark","A3_UI_F_MP_Mark","A3_Weapons_F","A3_Weapons_F_NATO","A3_Weapons_F_CSAT","A3_Weapons_F_AAF","A3_weapons_F_FIA","A3_Weapons_F_ItemHolders","A3_Weapons_F_Headgear","A3_Weapons_F_Uniforms","A3_Weapons_F_Vests","A3_Weapons_F_Ammoboxes","A3_Weapons_F_DummyWeapons","A3_Weapons_F_Explosives","A3_Weapons_F_Items","A3_Weapons_F_Launchers_NLAW","A3_Weapons_F_Launchers_LAW","A3_Weapons_F_Launchers_Titan","A3_Weapons_F_EPA_LongRangeRifles_DMR_01","A3_Weapons_F_EBR","A3_Weapons_F_LongRangeRifles_GM6","A3_Weapons_F_LongRangeRifles_M320","A3_Weapons_F_Machineguns_M200","A3_Weapons_F_Machineguns_Zafir","A3_Weapons_F_Pistols_ACPC2","A3_Weapons_F_Pistols_P07","A3_Weapons_F_Pistols_Pistol_heavy_01","A3_Weapons_F_Pistols_Pistol_heavy_02","A3_Weapons_F_Pistols_Rook40","A3_Weapons_F_Rifles_Khaybar","A3_Weapons_F_Rifles_Mk20","A3_Weapons_F_Rifles_MX","A3_Weapons_F_EPB_Rifles_MX_Black","A3_Weapons_F_Rifles_SDAR","A3_Weapons_F_Rifles_TRG20","A3_Weapons_F_Pistols_PDW2000","A3_Weapons_F_Rifles_Vector","a3_weapons_f_rifles_SMG_02","A3_Weapons_F_beta","A3_Weapons_F_Beta_Ammoboxes","A3_Weapons_F_beta_EBR","A3_Weapons_F_EPA_LongRangeRifles_GM6","A3_Weapons_F_EPB_LongRangeRifles_M320","A3_Weapons_F_beta_Rifles_Khaybar","A3_Weapons_F_beta_Rifles_MX","A3_Weapons_F_beta_Rifles_TRG20","A3_Weapons_F_Bootcamp_LongRangeRifles_GM6","A3_Weapons_F_Bootcamp_LongRangeRifles_M320","A3_Weapons_F_EPB_LongRangeRifles_GM3","A3_Weapons_F_gamma","A3_Weapons_F_Gamma_Ammoboxes","A3_Weapons_F_EPA_EBR","A3_Weapons_F_EPA_Rifles_MX","A3_Weapons_F_Kart_Pistols_Pistol_Signal_F","A3_Weapons_F_Mark_LongRangeRifles_DMR_01","A3_Weapons_F_Mark_EBR","A3_Weapons_F_Mark_LongRangeRifles_GM6","A3_Weapons_F_Mark_LongRangeRifles_GM6_camo","A3_Weapons_F_Mark_LongRangeRifles_M320","A3_Weapons_F_Mark_LongRangeRifles_M320_camo","A3_Weapons_F_Mark_Machineguns_M200","A3_Weapons_F_Mark_Machineguns_Zafir","A3_Weapons_F_Mark_Rifles_Khaybar","A3_Weapons_F_Mark_Rifles_Mk20","A3_Weapons_F_Mark_Rifles_MX","A3_Weapons_F_Mark_Rifles_SDAR","A3_Weapons_F_Mark_Rifles_TRG20","CUP_Buildings2_Config","CABuildings2","CUP_A_Crane_02","A_Crane_02","CUP_A_GeneralStore_01","A_GeneralStore_01","CUP_CABuildings2_A_Pub","CABuildings2_A_Pub","CUP_A_statue","A_statue","CUP_Barn_Metal","Barn_Metal","CUP_CABuildingParts","CABuildingParts","CUP_CABuildingParts_Signs","CABuildingParts_Signs","CUP_CATEC","CATEC","CUP_Church_01","Church_01","CUP_Farm_Cowshed","Farm_Cowshed","CUP_Farm_WTower","Farm_WTower","CUP_CAHouseBlock_A","CAHouseBlock_A","CUP_CAHouseBlock_B","CAHouseBlock_B","CUP_CAHouseBlock_C","CAHouseBlock_C","CUP_CAHouseBlock_D","CAHouseBlock_D","CUP_HouseRuins","HouseRuins","CUP_Ind_Dopravnik","Ind_Dopravnik","CUP_Ind_Expedice","Ind_Expedice","CUP_Ind_MalyKomin","Ind_MalyKomin","CUP_Ind_Mlyn","Ind_Mlyn","CUP_Ind_Pec","Ind_Pec","CUP_ind_silomale","ind_silomale","CUP_Ind_SiloVelke","Ind_SiloVelke","CUP_Ind_Vysypka","Ind_Vysypka","CUP_Ind_Garage01","Ind_Garage01","CUP_CAStructures_IndPipe1_todo_delete","CAStructures_IndPipe1_todo_delete","CUP_IndPipe2","IndPipe2","CUP_Ind_Shed_01","Ind_Shed_01","CUP_Ind_Shed_02","Ind_Shed_02","CUP_Ind_Tank","Ind_Tank","CUP_Ind_Workshop01","Ind_Workshop01","CUP_CABuildings2_Misc_Cargo","CABuildings2_Misc_Cargo","CUP_Misc_PowerStation","Misc_PowerStation","CUP_Misc_WaterStation","Misc_WaterStation","CUP_Rail_House_01","Rail_House_01","CUP_Shed_small","Shed_small","CUP_Shed_wooden","Shed_wooden","CUP_particle_effects","particle_effects","CUP_Chernarus_Config","Chernarus","CUP_Chernarus_Summer_Config","Chernarus_Summer","CUP_Desert2_Config","Porto","CUP_Hotfix_Config","CA_Hotfix","CUP_CA_QGClutterHotfix","CA_QGClutterHotfix","CUP_CA_Hotfix_vez_ropa","CA_Hotfix_vez_ropa","CUP_CAMisc2","CAMisc2","CUP_Misc3_Config","CAMisc3","CUP_WarfareBuildings","WarfareBuildings","CUP_Misc_e_Config","CAMisc_E","CUP_CAMisc_E_WF","CAMisc_E_WF","CUP_CAMP_Armory_Misc","CAMP_Armory_Misc","CUP_CAMP_Armory_Misc_Concrete_Wall","CAMP_Armory_Misc_Concrete_Wall","CUP_CAMP_Armory_Misc_Entrance_Gate","CAMP_Armory_Misc_Entrance_Gate","CUP_CAMP_Armory_Misc_Info_Board","CAMP_Armory_Misc_Info_Board","CUP_CAMP_Armory_Misc_Infostands","CAMP_Armory_Misc_Infostands","CUP_CAMP_Armory_Misc_Laptop","CAMP_Armory_Misc_Laptop","CUP_CAMP_Armory_Misc_Loudspeakers","CAMP_Armory_Misc_Loudspeakers","CUP_CAMP_Armory_Misc_Plasticpole","CAMP_Armory_Misc_Plasticpole","CUP_CAMP_Armory_Misc_Red_Light","CAMP_Armory_Misc_Red_Light","CUP_CAMP_Armory_Misc_Sign_Armex","CAMP_Armory_Misc_Sign_Armex","CUP_CAMP_Armory_Misc_Sign_Direction","CAMP_Armory_Misc_Sign_Direction","CUP_CA_Plants2_Bush","CA_Plants2_Bush","CUP_CA_Plants2_Misc","CA_Plants2_Misc","CUP_CA_Plants_E_Bush","CA_Plants_E_Bush","CUP_CA_Plants_PMC","CA_Plants_PMC","CUP_CARoads2Bridge","CARoads2Bridge","CUP_CARoads_PMC_Bridge","CARoads_PMC_Bridge","CUP_A_TVTower","A_TVTower","CUP_CAStructures_Nav_pier","CAStructures_Nav_pier","CUP_CAStructures_Railway","CAStructures_Railway","CUP_Structures_e_Config","CAStructures_E","CUP_CAStructures_E_HouseA","CAStructures_E_HouseA","CUP_CAStructures_E_HouseA_A_BuildingWIP","CAStructures_E_HouseA_A_BuildingWIP","CUP_CAStructures_E_HouseA_A_CityGate1","CAStructures_E_HouseA_A_CityGate1","CUP_CAStructures_E_HouseA_A_Minaret","CAStructures_E_HouseA_A_Minaret","CUP_CAStructures_E_HouseA_A_Minaret_Porto","CAStructures_E_HouseA_A_Minaret_Porto","CUP_CAStructures_E_HouseA_A_Mosque_big","CAStructures_E_HouseA_A_Mosque_big","CUP_CAStructures_E_HouseA_A_Mosque_small","CAStructures_E_HouseA_A_Mosque_small","CUP_CAStructures_E_HouseA_A_Office01","CAStructures_E_HouseA_A_Office01","CUP_CAStructures_E_HouseA_a_stationhouse","CAStructures_E_HouseA_a_stationhouse","CUP_CAStructures_E_HouseA_A_Statue","CAStructures_E_HouseA_A_Statue","CUP_CAStructures_E_HouseA_A_Villa","CAStructures_E_HouseA_A_Villa","CUP_CAStructures_E_HouseC","CAStructures_E_HouseC","CUP_CAStructures_E_HouseK","CAStructures_E_HouseK","CUP_CAStructures_E_HouseL","CAStructures_E_HouseL","CUP_CAStructures_E_Ind","CAStructures_E_Ind","CUP_CAStructures_E_Ind_Ind_Coltan_Mine","CAStructures_E_Ind_Ind_Coltan_Mine","CUP_CAStructures_E_Ind_Ind_FuelStation","CAStructures_E_Ind_Ind_FuelStation","CUP_CAStructures_E_Ind_Ind_Garage01","CAStructures_E_Ind_Ind_Garage01","CUP_CAStructures_E_Ind_Oil_Mine","CAStructures_E_Ind_Oil_Mine","CUP_CAStructures_E_Ind_IndPipes","CAStructures_E_Ind_IndPipes","CUP_CAStructures_E_Ind_Misc_PowerStation","CAStructures_E_Ind_Misc_PowerStation","CUP_CAStructures_E_Ind_Ind_Shed","CAStructures_E_Ind_Ind_Shed","CUP_CAStructures_E_Mil","CAStructures_E_Mil","CUP_CAStructures_E_Misc","CAStructures_E_Misc","CUP_CAStructures_E_Misc_Misc_cables","CAStructures_E_Misc_Misc_cables","CUP_CAStructures_E_Misc_Misc_Construction","CAStructures_E_Misc_Misc_Construction","CUP_CAStructures_E_Misc_Misc_Garbage","CAStructures_E_Misc_Misc_Garbage","CUP_CAStructures_E_Misc_Misc_Interier","CAStructures_E_Misc_Misc_Interier","CUP_CAStructures_E_Misc_Misc_Lamp","CAStructures_E_Misc_Misc_Lamp","CUP_CAStructures_E_Misc_Misc_Market","CAStructures_E_Misc_Misc_Market","CUP_CAStructures_E_Misc_Misc_powerline","CAStructures_E_Misc_Misc_powerline","CUP_CAStructures_E_Misc_Misc_Water","CAStructures_E_Misc_Misc_Water","CUP_CAStructures_E_Misc_Misc_Well","CAStructures_E_Misc_Misc_Well","CUP_CAStructures_E_Wall","CAStructures_E_Wall","CUP_CAStructures_E_Wall_Wall_L","CAStructures_E_Wall_Wall_L","CUP_Structures_pmc_Config","CAStructures_PMC","CUP_CAStructures_PMC_Buildings","CAStructures_PMC_Buildings","CUP_CAStructures_PMC_Buildings_Bunker","CAStructures_PMC_Buildings_Bunker","CUP_CAStructures_PMC_Buildings_GeneralStore_PMC","CAStructures_PMC_Buildings_GeneralStore_PMC","CUP_CAStructures_PMC_Buildings_Ruin_Cowshed","CAStructures_PMC_Buildings_Ruin_Cowshed","CUP_CAStructures_PMC_Ind","CAStructures_PMC_Ind","CUP_CAStructures_PMC_FuelStation","CAStructures_PMC_FuelStation","CUP_CAStructures_PMC_Misc","CAStructures_PMC_Misc","CUP_CAStructures_PMC_Misc_Shed","CAStructures_PMC_Misc_Shed","CUP_CAStructures_PMC_Ruins","CAStructures_PMC_Ruins","CUP_CAStructures_PMC_Walls","CAStructures_PMC_Walls","CUP_Takistan_Config","Takistan","CUP_Utes_Config","Utes","CUP_Zargabad_Config","zargabad","CUP_ibr_plants","ibr_plants","a2_epoch_weapons","A3_epoch_assets","A3_Anims_F_Heli","A3_Characters_F","A3_Characters_F_BLUFOR","A3_Characters_F_Civil","A3_Characters_F_Heads","A3_Characters_F_OPFOR","A3_Characters_F_Proxies","A3_Characters_F_Beta","A3_Characters_F_INDEP","A3_Characters_F_Bootcamp","A3_Characters_F_EPB_Heads","A3_Characters_F_Gamma","A3_Characters_F_Mark","A3_Data_F_Curator","A3_Data_F_Curator_Eagle","A3_Data_F_Curator_Intel","A3_Data_F_Curator_Misc","A3_Data_F_Curator_Respawn","3DEN","A3_Data_F_Kart","A3_UAV_F_Characters_F_Gamma","A3_UAV_F_Weapons_F_Gamma_Ammoboxes","A3_Weapons_F_gamma_Items","A3_Map_Altis","A3_Map_Altis_Scenes","A3_Missions_F","A3_Missions_F_Beta","A3_Missions_F_Gamma","A3_Missions_F_Kart","A3_Modules_F_Bootcamp","A3_Modules_F_Curator","A3_Modules_F_Curator_Animals","A3_Modules_F_Curator_CAS","A3_Modules_F_Curator_Curator","A3_Modules_F_Curator_Effects","A3_Modules_F_Curator_Environment","A3_Modules_F_Curator_Flares","A3_Modules_F_Curator_Intel","A3_Modules_F_Curator_Lightning","A3_Modules_F_Curator_Mines","A3_Modules_F_Curator_Misc","A3_Modules_F_Curator_Multiplayer","A3_Modules_F_Curator_Objectives","A3_Modules_F_Curator_Ordnance","A3_Modules_F_Curator_Respawn","A3_Modules_F_Curator_Smokeshells","A3_Modules_F_Exp_A","A3_Modules_F_Kart","A3_Modules_F_Kart_TimeTrials","A3_Props_F_Exp_A_Military_Equipment","A3_Static_F","A3_Static_F_Mortar_01","A3_Static_F_Beta_Mortar_01","A3_Static_F_Gamma","A3_Static_F_Gamma_Mortar_01","A3_Static_F_Mark_Designator_01","A3_Static_F_Mark_Designator_02","A3_Supplies_F_Heli","A3_Supplies_F_Heli_Bladders","A3_Supplies_F_Heli_CargoNets","A3_Supplies_F_Heli_Fuel","A3_Supplies_F_Heli_Slingload","A3_Supplies_F_Mark","A3_UI_F_Bootcamp","A3_UI_F_Exp_A","A3_UI_F_Heli","A3_Weapons_F_Acc","A3_Weapons_F_Beta_Acc","A3_Weapons_F_Bootcamp_Ammoboxes","A3_Weapons_F_EPA","A3_Weapons_F_EPA_Acc","A3_Weapons_F_EPA_Ammoboxes","A3_Weapons_F_EPB","A3_Weapons_F_EPB_Acc","A3_Weapons_F_EPB_Ammoboxes","A3_Weapons_F_EPC","A3_Weapons_F_gamma_Acc","A3_Weapons_F_Kart","A3_Weapons_F_Mark_Acc","CUP_Afghan_Config","Mountains_ACR","CUP_Bohemia_Config","Woodland_ACR","CUP_Bootcamp_acr_Config","Bootcamp_ACR","CUP_Data_baf_Config","CA_BAF","CUP_Desert_e_Config","Desert_E","CUP_CALanguage_Baf","CALanguage_Baf","CUP_CALanguageMissions_baf","CALanguageMissions_baf","CUP_Misc_acr_Config","CAMisc_ACR","CUP_CAMisc_ACR_3DMarkers","CAMisc_ACR_3DMarkers","CUP_CAMisc_ACR_Container","CAMisc_ACR_Container","CUP_CAMisc_ACR_Dog","CAMisc_ACR_Dog","CUP_CAMisc_ACR_Helpers","CAMisc_ACR_Helpers","CUP_CAMisc_ACR_PBX","CAMisc_ACR_PBX","CUP_CAMisc_ACR_ScaffoldingSmall","CAMisc_ACR_ScaffoldingSmall","CUP_CAMisc_ACR_Shooting_range","CAMisc_ACR_Shooting_range","CUP_CAMisc_ACR_Sign_Mines","CAMisc_ACR_Sign_Mines","CUP_CAMisc_ACR_Targets","CAMisc_ACR_Targets","CUP_CAMisc_ACR_Targets_InvisibleTarget","CAMisc_ACR_Targets_InvisibleTarget","CUP_CAMisc_ACR_TestSphere","CAMisc_ACR_TestSphere","CUP_CAMisc_BAF","CAMisc_BAF","CUP_Provinggrounds_pmc_Config","ProvingGrounds_PMC","CUP_Shapur_baf_Config","Shapur_BAF","CUP_BaseConfig_F","A3_Air_F","A3_Air_F_Heli_Light_01","A3_Air_F_Heli_Light_02","A3_Air_F_Beta","A3_Air_F_Beta_Heli_Attack_01","A3_Air_F_Beta_Heli_Attack_02","A3_Air_F_Beta_Heli_Transport_01","A3_Air_F_Beta_Heli_Transport_02","A3_Air_F_Beta_Parachute_01","A3_Air_F_Beta_Parachute_02","A3_Air_F_EPB_Heli_Light_03","A3_Air_F_EPC_Plane_CAS_01","A3_Air_F_EPC_Plane_CAS_02","A3_Air_F_Gamma_Plane_Fighter_03","A3_Air_F_Heli","A3_Air_F_Heli_Heli_Attack_01","A3_Air_F_Heli_Heli_Attack_02","A3_Air_F_Heli_Heli_Light_01","A3_Air_F_Heli_Heli_Light_02","A3_Air_F_Heli_Heli_Light_03","A3_Air_F_Heli_Heli_Transport_01","A3_Air_F_Heli_Heli_Transport_02","A3_Air_F_Heli_Heli_Transport_03","A3_Air_F_Heli_Heli_Transport_04","A3_Armor_F","A3_armor_f_beta","A3_Armor_F_Panther","A3_armor_f_beta_APC_Tracked_02","A3_Armor_F_EPB_APC_tracked_03","A3_Armor_F_EPB_MBT_03","A3_Armor_F_Slammer","A3_Armor_F_T100K","A3_Boat_F","A3_Boat_F_Boat_Armed_01","A3_Boat_F_Boat_Transport_01","A3_Boat_F_Beta_Boat_Armed_01","A3_Boat_F_Beta_Boat_Transport_01","A3_Boat_F_SDV_01","A3_Boat_F_EPC_Submarine_01_F","A3_Boat_F_Civilian_Boat","A3_Boat_F_Trawler","A3_Boat_F_Gamma_Boat_Transport_01","A3_Boat_F_Heli_Boat_Armed_01","A3_Boat_F_Heli_SDV_01","A3_Characters_F_Common","A3_Characters_F_Bootcamp_Common","A3_Characters_F_EPA","A3_Characters_F_EPB","A3_Characters_F_EPC","A3_Characters_F_Kart","A3_Data_F_Curator_Characters","A3_Data_F_Curator_Virtual","A3_Data_F_Exp_A_Virtual","A3_Data_F_Heli","A3_Air_F_Gamma_UAV_01","A3_Air_F_Gamma_UAV_02","A3_Missions_F_Bootcamp","A3_Missions_F_Curator","A3_Missions_F_EPA","A3_Missions_F_EPB","A3_Missions_F_EPC","A3_Missions_F_Exp_A","A3_Missions_F_Heli","A3_Missions_F_Mark","A3_Missions_F_MP_Mark","A3_Modules_F_Bootcamp_Misc","A3_Modules_F_Curator_Chemlights","A3_Soft_F","A3_Soft_F_MRAP_01","A3_Soft_F_MRAP_02","A3_Soft_F_Offroad_01","A3_Soft_F_Quadbike","A3_Soft_F_MRAP_03","A3_Soft_F_Beta_Quadbike","A3_Soft_F_HEMTT","A3_Soft_F_TruckHeavy","A3_Soft_F_EPC_Truck_03","A3_Soft_F_Car","A3_Soft_F_Gamma_Offroad","A3_Soft_F_Gamma_Quadbike","A3_Soft_F_SUV","A3_Soft_F_Gamma_HEMTT","A3_Soft_F_Gamma_TruckHeavy","A3_Soft_F_Truck","A3_Soft_F_Heli_Car","A3_Soft_F_Heli_MRAP_01","A3_Soft_F_Heli_MRAP_02","A3_Soft_F_Heli_MRAP_03","A3_Soft_F_Heli_Quadbike","A3_Soft_F_Heli_SUV","A3_Soft_F_Heli_Truck","A3_Soft_F_Kart_Kart_01","A3_Static_F_Gamma_AA","A3_Static_F_Gamma_AT","A3_Structures_F_Mil_Scrapyard","A3_Structures_F_Wrecks","A3_Structures_F_EPA_Mil_Scrapyard","A3_Weapons_F_Bootcamp","A3_Weapons_F_Mark","A3_Weapons_F_Mark_LongRangeRifles_DMR_02","A3_Weapons_F_Mark_LongRangeRifles_DMR_03","A3_Weapons_F_Mark_LongRangeRifles_DMR_04","A3_Weapons_F_Mark_LongRangeRifles_DMR_05","A3_Weapons_F_Mark_LongRangeRifles_DMR_06","A3_Weapons_F_Mark_Machineguns_MMG_01","A3_Weapons_F_Mark_Machineguns_MMG_02","A3_epoch_language","A3_epoch_vehicles_1","A3_Air_F_EPC_Plane_Fighter_03","A3_Armor_F_AMV","A3_Armor_F_Marid","A3_Armor_F_EPC_MBT_01","A3_Armor_F_APC_Wheeled_03","A3_CargoPoses_F","A3_CargoPoses_F_Heli","A3_Soft_F_Crusher_UGV","A3_Soft_F_Bootcamp_Offroad_01","A3_Soft_F_Bootcamp_Quadbike","A3_Soft_F_Bootcamp_Truck","A3_Soft_F_Heli_Crusher_UGV","CUP_Core","CUP_StandaloneTerrains_Core","CUP_StandaloneTerrains_Core_Faction","CUP_StandaloneTerrains_Core_VehicleClass","CUP_Worlds","CUP_Worlds_Ambient","CUP_Worlds_Author","CUP_Worlds_Clutter","CUP_Worlds_ClutterDist","CUP_Worlds_Delete","CUP_Worlds_DisableInfiniteTerrain","CUP_Worlds_DustEffects","CUP_Worlds_EnvSounds","CUP_Worlds_FullDetailDist","CUP_Worlds_Grid","CUP_Worlds_Intros","CUP_Worlds_Lighting","CUP_Worlds_Lighting_Chernarus","CUP_Worlds_Lighting_Desert","CUP_Worlds_MapSize","CUP_Worlds_MidDetailTexture","CUP_Worlds_NoDetailDist","CUP_Worlds_PictureMap","CUP_Worlds_PictureShot","CUP_Worlds_Seabed","CUP_Worlds_SkyTexture","CUP_Worlds_StreetLamp","CUP_Worlds_Surfaces","CUP_Worlds_Water","A3_epoch_config","CUP_A1_EditorObjects","CUP_A2_EditorObjects","A3_epoch_code","A3_epoch_functions"}; //whitelisted cfgPatches for CUP terrains -antihack_InvOpenCheck[] = {}; // blank array disables, enable with {6} distance in meters disallows gear access if another player is within this range also disables gear access in vehicles. -antihack_banReason = "EpochMod.com Autoban"; +antihack_banReason = "EpochMod Autoban"; +antihack_kickReason = "EpochMod Autokick"; +antihack_banReasons[] = { + "Mod mismatch, check that the mods you have enabled match server." +}; +antihack_banDuration = 5; // Default 5 minute ban. -1 = permanent ban. +antihack_kickReasons[] = { + "Mod mismatch, check that the mods you have enabled match server." +}; antihack_checkFiles[] = { //script check, leave it blank to disable it {"epoch_code\compile\setup\EPOCH_clientInit.sqf", "EPOCH_clientInit"}, {"epoch_code\compile\EPOCH_onEachFrame.sqf", "EPOCH_onEachFrame"}, @@ -16,10 +23,6 @@ antihack_checkFiles[] = { //script check, leave it blank to disable it {"epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf", "EPOCH_KeyDown"} }; antihack_addActionCheck = true; // false to disable addAction checks -antihack_customVariablesCheck = false; // true enables variable scanning on missionNamespace -antihack_customVariables[] = {}; //Add global variables from custom scripts, example: {"MyOwnVar","CP_KK"} //Global Variables begin without "_" !! -antihack_customVariablesCheckMode = 0; // 0 = Ban, 1 = Log, 2 == learning mode (only enable with trusted players in a passwored server to profile your variables keep disabled for normal operation) - adminMenu_Owner[] = {}; adminMenu_OwnerSetting[] = { "ESP-PLAYER", diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index bda3c35b..02064d20 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -75,7 +75,17 @@ _skn_whitelist_cfgPatches = [_serverSettingsConfig, "antihack_whitelistedCfgPatc _skn_adminsOwner = [_serverSettingsConfig, "adminMenu_Owner", []] call EPOCH_fnc_returnConfigEntry; _skn_adminsHigh = [_serverSettingsConfig, "adminMenu_High", []] call EPOCH_fnc_returnConfigEntry; _skn_adminsLow = [_serverSettingsConfig, "adminMenu_Low", []] call EPOCH_fnc_returnConfigEntry; +_banReasons = [ + "Mod mismatch, check that the mods you have enabled match server." +]; _skn_banReason = [_serverSettingsConfig, "antihack_banReason", "EpochMod.com Autoban"] call EPOCH_fnc_returnConfigEntry; +_antihack_banDuration = [_serverSettingsConfig, "antihack_banDuration", 5] call EPOCH_fnc_returnConfigEntry; +_epoch_banReasons = [_serverSettingsConfig, "antihack_banReasons", _banReasons] call EPOCH_fnc_returnConfigEntry; +_kickReasons = [ + "Mod mismatch, check that mods enabled match server." +]; +_epoch_kickReason = [_serverSettingsConfig, "antihack_kickReason", "EpochMod.com Autokick"] call EPOCH_fnc_returnConfigEntry; +_epoch_kickReasons = [_serverSettingsConfig, "antihack_kickReasons", _kickReasons] call EPOCH_fnc_returnConfigEntry; _ownerSettings = ["ESP-PLAYER","ESP-VEHICLE","ESP-LOOT","OLD-ESP","OLD-MAP","PLAYER-TELEPORT","MAP-TELEPORT","INFRONT-TELEPORT","MAP-PLAYER","MAP-CORPSE","MAP-LOOT","MAP-VEHICLE","MAP-AI","MAP-BASEBUILDING","TARGET-HEAL","TARGET-AMMO","TARGET-KILL","TARGET-CRYPTO","TARGET-VEHICLEREPAIR","VEHICLEFLIP","BANPANNEL","SPAWN-MENU","FREE-CAM","INVISIBLE","SPAWNLOOT","GODMODE","HEAL","VEHICLEREPAIR"]; _skn_adminMenuOwnerSetting = [_serverSettingsConfig, "adminMenu_OwnerSetting", _ownerSettings] call EPOCH_fnc_returnConfigEntry; _adminSettings = ["PLAYER-TELEPORT","MAP-TELEPORT","TARGET-HEAL","TARGET-AMMO","TARGET-KILL","VEHICLEFLIP","BANPANNEL"]; @@ -88,28 +98,12 @@ _skn_adminMenuBanReasons = [_serverSettingsConfig, "adminMenu_BanReasons", ["Tra _skn_adminMenuCryproCfg = [_serverSettingsConfig, "adminMenu_cryptoCfg", [2500,1000,500,100,50,-1000]] call EPOCH_fnc_returnConfigEntry; _skn_cfgPatchesCfg = [_serverSettingsConfig, "antihack_cfgPatchesCfg", [0]] call EPOCH_fnc_returnConfigEntry; _skn_PVSPrefix = [_serverSettingsConfig, "antihack_PVSPrefix", "EPAH_"] call EPOCH_fnc_returnConfigEntry; -_skn_customVariablesCheck = [_serverSettingsConfig, "antihack_customVariablesCheck", true] call EPOCH_fnc_returnConfigEntry; -_skn_customVariables = [_serverSettingsConfig, "antihack_customVariables", []] call EPOCH_fnc_returnConfigEntry; // build array with X number of random strings _rndVAR_Count = 84; // 85 = number of (_skn_rndVA deleteAt 0) _skn_rndVA = call compile('epochserver' callExtension format['810|%1', _rndVAR_Count]); EPOCH_hiveWhitelistVarsArray = []; -if (_skn_customVariablesCheck) then{ - _whitelistConfig = _cfg_variablesConfig >> "whitelist"; - _skn_customVariables append(getArray(_whitelistConfig >> "bis")); //BIS Variables - _skn_customVariables append(getArray(_whitelistConfig >> "epoch")); //Epoch Variables - _skn_customVariables append(getArray(_whitelistConfig >> "custom")); //Custom Variables - // Get any automatically added whitelist vars from Learning feature. - _response = ["AH-WhitelistVars", (call EPOCH_fn_InstanceID)] call EPOCH_fnc_server_hiveGETRANGE; - if ((_response select 0) == 1 && (_response select 1) isEqualType []) then{ - if !((_response select 1) isEqualTo[]) then{ - EPOCH_hiveWhitelistVarsArray = _response select 1; - _skn_customVariables append EPOCH_hiveWhitelistVarsArray; - }; - }; -}; // For client PVC _skn_PVC_INDEX = _skn_rndVA deleteAt 0; @@ -150,7 +144,6 @@ if (!_skn_enableAntihack) exitWith { EPOCH_server_isPAdmin = compileFinal ("false"); EPOCH_server_Authed = compileFinal ("true"); EPOCH_server_disconnect = compileFinal("true"); - EPOCH_server_kickToLobby = compileFinal("true"); }; // Check AH init code @@ -250,21 +243,6 @@ _skn_t3 = _skn_rndVA deleteAt 0; _skn_t4 = _skn_rndVA deleteAt 0; _skn_t5 = _skn_rndVA deleteAt 0; -_skn_kickToLobby = _skn_rndVA deleteAt 0; -_skn_whitelistVars = _skn_rndVA deleteAt 0; - -if (_skn_customVariablesCheck) then{ - // Gather all random global vars from AH for whitelist var checks - _skn_customVariables append [_skn_PVC_INDEX,_skn_whitelistVars,_skn_kickToLobby,toLower(_skn_doKickBan),toLower(_skn_doTokenAuth)]; - _skn_customVariables append [_skn_AH_Init,_skn_AH_Code,_skn_AH_Code_CA,_skn_AH_Code_CB,_skn_AH_Ban,_skn_antiTeleportPVC,_skn_Admin_Init]; - _skn_customVariables append [toLower("FW"+_skn_AH_rndVar),toLower("FA"+_skn_AH_rndVar),toLower("FWC"+_skn_AH_rndVar)]; - - // Globally brodcast whitelist vars array - missionNamespace setVariable [_skn_whitelistVars,_skn_customVariables,true]; -}; - -EPOCH_server_kickToLobby = compileFinal ("if !(isNull _this) then {"+_skn_kickToLobby+" = true;(owner _this) publicVariableClient '"+_skn_kickToLobby+"';};"); - _skn_AH_rndVarAHInitCheckToken = _skn_t1+_skn_t2+_skn_t3+_skn_t4+_skn_t5; EPOCH_server_Authed = compileFinal("_this in "+_skn_AH_rndVarAHInitCheck); EPOCH_server_disconnect = compileFinal(" @@ -547,19 +525,9 @@ _sknBanANDSleepQuick = _skn_AH_Ban+"; uiSleep 1"; _sknPatches = []; "_sknPatches pushBack (configName _x)" configClasses (configFile >> "CfgPatches"); {_sknPatches pushBackUnique _x}forEach _skn_whitelist_cfgPatches; -_skn_addonCheckCode = if (_skn_check_addons) then {"[] spawn{_config = '!(configName _x in "+str _sknPatches+")' configClasses (configFile >> 'CfgPatches');if !(_config isEqualTo []) then {[format['Disallowed Addon %1',_config],"+str (_skn_cfgPatchesCfg select 0)+"] call "+_skn_AH_Ban+"}};"} else {""}; +_skn_addonCheckCode = if (_skn_check_addons) then {"[] spawn{_config = '!(configName _x in "+str _sknPatches+")' configClasses (configFile >> 'CfgPatches');if !(_config isEqualTo []) then {[format['Disallowed Addon %1',_config],["+str (_skn_cfgPatchesCfg select 0)+",0]] call "+_skn_AH_Ban+"}};"} else {""}; _skn_fileCheckCode = if (_skn_check_files isEqualTo []) then {""} else {"{if (str(compile preprocessFileLineNumbers (_x select 0)) != str(missionNamespace getVariable [_x select 1,'']))exitWith{[format['Modified File %1 (%2/%3)',_x select 1,count toArray str (compile preprocessFileLineNumbers (_x select 0)),count toArray str(missionNamespace getVariable [_x select 1,''])],0] call "+_skn_AH_Ban+"}} forEach "+str _skn_check_files+";"}; -_sknCustomVarCheckModeCode = [_serverSettingsConfig, "antihack_customVariablesCheckMode", 0] call EPOCH_fnc_returnConfigEntry; -_sknCustomVarCheckCode = if (_skn_customVariablesCheck) then {" -{ - if !(_x in (missionNamespace getVariable ["+str _skn_whitelistVars+",[]])) then{ - [format['(WIP) Unknown Variable (missionNamespace): %1', _x], ["+str _sknCustomVarCheckModeCode+",[toArray(_x)]]] call "+_sknBanANDSleepQuick+"; - } -}forEach(allVariables missionNamespace); -"} else {""}; - - _sknAddActionCheck = if ([_serverSettingsConfig, "antihack_addActionCheck", true] call EPOCH_fnc_returnConfigEntry) then{ " if (player == _ActionVehicle) then[{_ActionCount = _ActionCount + 1}, { _ActionVehicle = player; _ActionCount = 0 }]; _addCase = player addAction['', '', [], -5, false, true, '', 'false']; @@ -604,66 +572,52 @@ call compile("'"+_skn_doTokenAuth+"' addPublicVariableEventHandler { }; };"); - -//[[_case,_time,_name,_uid,_save],[1, 0, 0, 1]] call compile ("'"+_skn_doKickBan+"' addPublicVariableEventHandler { _array = _this select 1; - _player =_array select 2; - if !([_player,_array select 3] call EPOCH_server_getPToken) exitWith { + _array params ['_text','_mode','_player','_token']; + if !([_player,_token] call EPOCH_server_getPToken) exitWith { ['ahe', format['Token is different [%1,%2] %3',if (!isNull _player) then { _player getVariable ['"+_skn_AH_rndVarPlayer+"','']}else{'PlayerObj NULL'}, _array select 3, _array]] call EPOCH_fnc_server_hiveLog; }; - _text = toString(_array select 0); - - _mode = _array select 1; - _data = []; + _text = toString(_text); + _reasonIndex = -1; if (_mode isEqualType []) then{ - _mode = (_array select 1) select 0; - _data = (_array select 1) select 1; + _mode = _mode select 0; + _reasonIndex = _mode select 1; }; - - if (_mode == 0) then{ - ['ahb', format['%1 (%2): %3', name _player, getPlayerUID _player, _text]] call EPOCH_fnc_server_hiveLog; - "+_skn_pv_hackerLog+" pushBack [[0,call "+_skn_server_getRealTime+",name _player,getPlayerUID _player,_text],[1, 0, 0, 1]]; - 'epochserver' callExtension format['820|%1|"+_skn_banReason+"',getPlayerUID _player]; - } else { - if (_mode == 2) then{ - _unknownVar = toString(_data select 0); - _safeVars = missionNamespace getVariable ["+str _skn_whitelistVars+",[]]; - _trusted = "+_str_learningModeCheck+"; - if !(_unknownVar in _safeVars) then{ - if (_trusted) then { - - _safeVars pushBack _unknownVar; - missionNamespace setVariable ["+str _skn_whitelistVars+",_safeVars,true]; - - if !(_unknownVar in EPOCH_hiveWhitelistVarsArray) then{ - EPOCH_hiveWhitelistVarsArray pushBack _unknownVar; - ['AH-WhitelistVars', (call EPOCH_fn_InstanceID), EPOCH_hiveWhitelistVarsArray] call EPOCH_fnc_server_hiveSET; - }; - - ['ahl', format['LEARNING: %1 (%2): %3', name _player, getPlayerUID _player, _text]] call EPOCH_fnc_server_hiveLog; - "+_skn_pv_hackerLog+" pushBack[[1, call "+_skn_server_getRealTime+", name _player, getPlayerUID _player, format['LEARNING: %1',_text]], []]; - } else { - ['ahb', format['%1 (%2): %3', name _player, getPlayerUID _player, _text]] call EPOCH_fnc_server_hiveLog; - "+_skn_pv_hackerLog+" pushBack [[0,call "+_skn_server_getRealTime+",name _player,getPlayerUID _player,_text],[1, 0, 0, 1]]; - _banID = 1; - 'epochserver' callExtension format['820|%1|"+_skn_banReason+" #V%2',getPlayerUID _player,_banID]; - }; + _reason = ''; + _logName = 'ahl'; + _logMode = 1; + _logColor = [1,1,1,1]; + switch _mode do { + case 0: { + _logName = 'ahb'; + _logColor = [1,0,0,1]; + _logMode = 0; + if (_reasonIndex != -1) then { + _reason = "+str(_epoch_banReasons)+" select _reasonIndex; }; - }else { - ['ahl', format['%1 (%2): %3', name _player, getPlayerUID _player, _text]] call EPOCH_fnc_server_hiveLog; - "+_skn_pv_hackerLog+" pushBack[[1, call "+_skn_server_getRealTime+", name _player, getPlayerUID _player, _text], []]; + ['ban', _player , format['"+_skn_banReason+" %1',_reason], "+str(_antihack_banDuration)+"] call EPOCH_serverCommand; + }; + case 2: { + _logName = 'ahk'; + _logColor = [0,0,1,1]; + if (_reasonIndex != -1) then { + _reason = "+str(_epoch_kickReasons)+" select _reasonIndex; + }; + ['kick', _player , format['"+_epoch_kickReason+" %1',_reason]] call EPOCH_serverCommand; }; }; + "+_skn_pv_hackerLog+" pushBack[[_logMode, call "+_skn_server_getRealTime+", name _player, getPlayerUID _player, _text], _logColor]; + [_logName, format['%1 (%2): %3', name _player, getPlayerUID _player, _text]] call EPOCH_fnc_server_hiveLog; { if (_x call EPOCH_server_isPAdmin) then { (owner _x) publicVariableClient '"+_skn_pv_hackerLog+"'; }; - }forEach playableUnits; + }forEach allPlayers; };"); //0 = BAN //1 = LOG -//[2,varname] = Self-learning vars from trusted users. +//2 = KICK _skn_code_ban = compileFinal (" _this set [0,toArray (_this select 0)]; @@ -679,7 +633,7 @@ _skn_code_init = compileFinal (" _start = diag_tickTime; waitUntil {!isNil '"+_skn_AH_Code+"' || (diag_tickTime-_start > 20)}; if (isNil '"+_skn_AH_Code+"') exitWith { - "+_skn_doKickBan+" = [format['Cannot Load AH [%1,%2]',!isNil '"+_skn_AH_Code_CA+"',!isNil '"+_skn_AH_Code_CB+"'],1,player,Epoch_personalToken]; + "+_skn_doKickBan+" = [format['Cannot Load AH [%1,%2]',!isNil '"+_skn_AH_Code_CA+"',!isNil '"+_skn_AH_Code_CB+"'],2,player,Epoch_personalToken]; publicVariableServer '"+_skn_doKickBan+"'; (findDisplay 46) closeDisplay 0 }; @@ -694,7 +648,7 @@ _skn_code_init = compileFinal (" }; uiSleep 5; if ((isNil '"+_skn_AH_Code_CA+"') || (isNil '"+_skn_AH_Code_CB+"')) then { - "+_skn_doKickBan+" = [format['Cannot Load AH [%1,%2]',!isNil '"+_skn_AH_Code_CA+"',!isNil '"+_skn_AH_Code_CB+"'],1,player,Epoch_personalToken]; + "+_skn_doKickBan+" = [format['Cannot Load AH [%1,%2]',!isNil '"+_skn_AH_Code_CA+"',!isNil '"+_skn_AH_Code_CB+"'],2,player,Epoch_personalToken]; publicVariableServer '"+_skn_doKickBan+"'; (findDisplay 46) closeDisplay 0 }; @@ -964,7 +918,6 @@ _skn_code_antihack = compileFinal (" [format['Changed %1 >> onUnload >> %2', _display, getText(configFile>>_display>>'onUnload')],0] call "+_sknBanANDSleep+"; } }forEach "+str _cfg_displayArray+"; - "+_sknCustomVarCheckCode+" uiSleep ((random 10)+10); }; }; @@ -972,9 +925,6 @@ _skn_code_antihack = compileFinal (" "+_skn_doTokenAuth+" = [_t,player,Epoch_personalToken]; publicVariableServer '"+_skn_doTokenAuth+"'; "+_skn_doTokenAuth+" = nil; - '"+_skn_kickToLobby+"' addPublicVariableEventHandler { - [] spawn {waitUntil {(findDisplay 46) closeDisplay 0; false}} - }; "+_skn_AH_Code_CB+" = true; true "); @@ -1006,7 +956,7 @@ call compile (" if (_x call EPOCH_server_isPAdmin) then { (owner _x) publicVariableClient '"+_skn_pv_adminLog+"'; }; - }forEach playableUnits; + }forEach allPlayers; true }; "); From f525a279927924da906142f3c05ebe62e7563048 Mon Sep 17 00:00:00 2001 From: vbawol Date: Tue, 26 Apr 2016 15:41:16 -0500 Subject: [PATCH 12/26] Force change in var name to make sure we fallback to default --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 390216 -> 390512 bytes Server_Install_Pack/@epochhive/epochah.hpp | 2 +- Sources/epoch_server/build.hpp | 2 +- .../init/server_securityfunctions.sqf | 4 +++- build.txt | 2 +- 5 files changed, 6 insertions(+), 4 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index f95ae04498767ee8935dc2f2a2e8b1d1024001d2..25aa93c835e152b904097e1563e7cf744f5c0528 100644 GIT binary patch delta 4527 zcma)9U2NRO5zdJ#RVPyQCD{U;s&R8VDY2?wTb3M0P_HX;?~V|U zyplZ0LXaGcKDfzC>998+%pS3LhsFJ!?NhKPURLc|pNc_6-ZZCFewYt$9Co8F!?O66TD)Aj~p znr#)05xSQA^tsdvb1-X~HL=?lH%qhV`OjU^?G^ zR_S_CT3V$#7^<3d)6IcUxFg^>%cxMSlQ0kK)G_F)$=tk57JqzH>3%^PvkY^IIwFuJ zW13y5P)o-GX~L7LtZHlJP;}NOdd<+*V#a)#2#oY1Ohjs9>n$+PgPIdD71HF1F0nm! zXZ+30v!qWDZQ2`geETd(jiN>vGNugwPqDBv!d{=WijHl07nun@Iv(ip+YgkKf)Cce zmEKFz60}l4b-oz3!~D|1yu*sd6_j!;eJOXLkhg0V+7bH;OfKe^@`cIS@rjoJ_{oQ) zTWpd@kS_7?yH*lqFL$mmX&IpzSmtA$6D$k)oHQLGV=-imTCo+nLdCI$#OU@Eq$nl< z9lg%@(J9jTEvZypFJO%_XW9-U22610L;S;c0`IT3lY;|NQMYrLt(cl_U$oblm8*Gp zcJf@3bY-NpkZq0+wIu<3?oXt9A5f~PMG%F-a%*%U@ zDTRubR#>PqO|BQKI`voqbb05eBpEtUfpZ9L#VP@M)tm`nsgBq@97@bVVTrmM26XIB zS$!3*Ep2Tl>{jW9*b227CQcv=aTrlN(AQa$G{SIPn7d?m<<$4+BA!dI4X2%?D-5-0 z8r3CMHZ<{0kXCdU%hQUCM~Bw&!UNo2#pCsnS^t9cOD|S-6!y?5D>YRIEL}J< z<{aIh7BDuzJiAni$N~VO^{YTS2Us&{0PNtQ9vBmjUEB-<1xayJi=@Wv?WP1I1287G zi%O8%#T{U!N;7EyfrACSVVhz_P_vzCG$sX-W{k@KT5qnR0Hp@F$8Qgklo(h<*x@MT zg#(axDvaWE_=Fl9k4;{mA+3JNdJfzilUA5Fedk;t0kpzgjaJ$D8Vru&_Q7!}cpn-- zk0_o;i<9HK!P(r*M1a=)6CWqanix?;F^dGw+lJ-kVJHp8O7R2}OMLW!D#^``FPMzU zWXF*6H8>lBxT6bSY#?R^oK|>YT$12-zCVn`?v0$T=fup6;?f-CPiJ_2OIpR+h+RGc zkhi~-5|rSZCcx-Gy_M0>6t4~7BtId!?SBbkPdR4axHqnTFD zs$#ZLy)yOS7gM45Ty@i~sb#v(RDWOsagHn8m1n*YOe_482g)=2?3mKt8#$NGs^J`Cy?tNFd_Ojw{7=t?*AI0TC1Yl6rzdcl0(MToxT(T*Y2)j(@Vz6NqWIkh%G1LAzDONPSS>_L44~2fFXhR$ zB-n#IsmsGW_aEg3|NU3Wy~YP$E5B@S{JfQXw4eW>m2`<7YILT^!12T~ADJLWlcL@CYvb$5e)zOrv*Mi z6wJzCStR-ST+4I(r}N~CK9oN?+L46I3#ZOWOJ`Sr<>N#Ax97>py08QJHsK>c9Yo!o zl1&mrDDf)(3haTYOh&9tyM$kf2+*<_V#o?$La_icdE2xd0G5Zc@KetY35Wg5QT6xI zZS@s&1V0Sb!EgJEBq~Q6tcnf5*=Cc2*}=e~|0>ws4=iaE)qy4+4)fMN@>o5L8T?8g zgRiZD9rL#39zB+pEX6Hg% zmJY8#N&4IF)n~Bv*4_StTz$8-eG&H){QK+-@6FEIUhD{NLU!U@@a+`oc{mGEwf~tW&7v;<3cyCw& zqLP+no$$NMiG%$1OXLE-b(y@Hq;gE;gD;b(+J_<6Q&_J`s&QhU-TdNyfSy| PcMHcNtbGshd>>-dO$ zm))J4Rv}8G39VX%MCYlGRK(P6@TFf6LY0va`w062T0S5^2x%ZqAOxuUFvJJOc-}kP zv6Hl06h(ROeeU`5dw##?x%+?bdhc&t-<$T|fuGFIbo$?c@((&o0qfEy`BR}LAE9CClk ze;%H%e620;e6+m%yGZ2^Uk&{C7mz#`Xn`;PFW}t!HR)|RoX)Mt397($3rRraFv&st z^MPPETe2OqxX3J>Ef=_*&hzXlY=07nz}j3udZh6duFVBb3AZHF^cJ)yd{2To7ibMN znsfN>cwhj&bC~?=jGm)0)m}B!rWdQ>;?&7=V zPTzS+G)%(A9tU5SucLhD$8FFv<$Dz7j*ve1QQ6eh#aby=4QAPCXubrNi%^NL(W+g zk)jqeG(=^kU@o&l15Bw&nlr6t1Zh_2!+ro)wyFfAid*@G#k4v#``pCW6YjAoU++;v zO$i69UFVi36U{u20E{yuzW4bH<|;Q*B_|)x?32M_Rm9C{q$brVLwCH0cu1QXZ#t;y z)SmNr{fsFj;P@*fyj6Xq6?Mb)w?F*e=(UREvrBTn3js#A3=R9WTb6t_^{~sOboF*@ z_gxVgJ0QB~_6*6sY?)e?*-mq}Y|6wKKwH?kLB6OQ(1AVkDB)NoF8pu0F&;!o6iL=B zuIUASRyU9|F&XH$f;~~M%7(7?%V;Wmj>gP&0|}=(dEJITDx|NY$t*g$IV#61_xs5C z0eEJHoTz9sI?=w}0o~m+alP>^tYq+od||joNVin?0c@Id4j%A^ zH-YJf9BSP_w1lW*>J_RRGzPP`f{`sn?zbJxUJTtP6#M0blF7t(N4TV*XmAQC(b&?| zg*aU>Rt+q@KC@`7sN1$~8ndj3BZp;q{0u!Y98FO5N(T4SZlHSF>3lDWu2#E<=$O^{ zekGpCz|K19K6kN%g6Vfx!zQ*5lbB%Hd<+GS;CZ`^?u(2~mNzLc;Mm)cWzq9WYL0BR z42N2Wh7?6bN}*I7y@-De%r~KybPa{TF7r%68BWlo`#X$Dyt_cO*jj;I#U_ubF7K$# z3q0%45%lX}s;Hg?{Ok>K8s1nW|2)%VnT(?;8mmQYAu^}g&#>^LYRqAHrDWjt5*fDZvH?s*Qv*Lkz=eHdW>4dFu?@iEiE_zKfOmD^G6fqngAd+rQ{Pw$Z)_=ZAK0dy#6a@;?hfRApIu*Z>)UnD0_?0-)PUv;S?w4V{=fSb?w zJ0QS=kGqts`8$|)EgtRQ{a=w|A$6Gc?> zU=s7ZkQ*q}KDF?o`t?<13N7K6jy+hp@Dllp-!}}WZxC9USIJ=Q0C-re{D+YbV?Evu zY#4|*55*qnm*MxXk>7Mgt4p$BrN9RZ> "CfgSecConf"); if (isClass _config) then {diag_log "Loading config..."}; @@ -96,7 +98,7 @@ _skn_adminMenuMenuKey = [_serverSettingsConfig, "adminMenu_menuKey", 0x3B] call _skn_adminMenuInfrontTeleport = [_serverSettingsConfig, "adminMenu_infrontTeleport", 0x06] call EPOCH_fnc_returnConfigEntry; _skn_adminMenuBanReasons = [_serverSettingsConfig, "adminMenu_BanReasons", ["Traderzone","Hacking","Glitch","Combat Log"]] call EPOCH_fnc_returnConfigEntry; _skn_adminMenuCryproCfg = [_serverSettingsConfig, "adminMenu_cryptoCfg", [2500,1000,500,100,50,-1000]] call EPOCH_fnc_returnConfigEntry; -_skn_cfgPatchesCfg = [_serverSettingsConfig, "antihack_cfgPatchesCfg", [0]] call EPOCH_fnc_returnConfigEntry; +_skn_cfgPatchesCfg = [_serverSettingsConfig, "antihack_cfgPatchesMode", [2]] call EPOCH_fnc_returnConfigEntry; _skn_PVSPrefix = [_serverSettingsConfig, "antihack_PVSPrefix", "EPAH_"] call EPOCH_fnc_returnConfigEntry; // build array with X number of random strings diff --git a/build.txt b/build.txt index b9310c76..8de9a580 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -439 +440 From 9fe72396713af099707afcca850552e9e4b6e95f Mon Sep 17 00:00:00 2001 From: vbawol Date: Wed, 27 Apr 2016 13:13:32 -0500 Subject: [PATCH 13/26] fixed missing textures on some objects since 0.3.8 --- Changelogs/0.3.9.0.txt | 1 + 1 file changed, 1 insertion(+) diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt index 1365e9e0..85d52ff4 100644 --- a/Changelogs/0.3.9.0.txt +++ b/Changelogs/0.3.9.0.txt @@ -1,4 +1,5 @@ [New] from Axeman TBA +[Fixed] Missing texture issues with some base building objects since 0.3.8. [Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. [Info] Removed old .bikey and added new one for 0390. [Info] Requires Arma 3 1.58 or higher. From fb7db5b804f42e2b20f6c07e8896c03ae1d019a7 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 10:44:53 -0500 Subject: [PATCH 14/26] Fixes for Group System thanks to He-Man http://epochmod.com/forum/topic/41893-group-menu-broken-kick-invite-for-admin-not-possible/?do=findComment&comment=275429 --- .../gui/scripts/group/EPOCH_Group_update.sqf | 1 + Sources/epoch_code/init/client_init.sqf | 2 +- .../epoch_group/EPOCH_server_updatePlayerGroup.sqf | 10 ++++++++++ 3 files changed, 12 insertions(+), 1 deletion(-) diff --git a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_update.sqf b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_update.sqf index 9adbf7a2..a06c072f 100644 --- a/Sources/epoch_code/gui/scripts/group/EPOCH_Group_update.sqf +++ b/Sources/epoch_code/gui/scripts/group/EPOCH_Group_update.sqf @@ -14,5 +14,6 @@ */ if (!isNull (findDisplay -1300)) then { (findDisplay -1300) closeDisplay 0; + uisleep 0.2; createDialog "Epoch_myGroup"; }; diff --git a/Sources/epoch_code/init/client_init.sqf b/Sources/epoch_code/init/client_init.sqf index fb3900a0..4ced50b4 100644 --- a/Sources/epoch_code/init/client_init.sqf +++ b/Sources/epoch_code/init/client_init.sqf @@ -20,7 +20,7 @@ EPOCH_ESPGROUPCOLORS = []; EPOCH_ESP_PLAYER = false; EPOCH_ESP_VEHICLES = false; EPOCH_ESP_VEHICLEPLAYER = []; -EPOCH_group_level_img = ["x\addons\a3_epoch_code\Data\owner.paa", "x\addons\a3_epoch_code\Data\mod.paa", "x\addons\a3_epoch_code\Data\member.paa"]; +EPOCH_group_level_img = ["x\addons\a3_epoch_code\data\owner.paa", "x\addons\a3_epoch_code\data\mod.paa", "x\addons\a3_epoch_code\data\member.paa"]; if (isNil 'EPOCH_diag_fps') then { EPOCH_diag_fps = 0; }; diff --git a/Sources/epoch_server/compile/epoch_group/EPOCH_server_updatePlayerGroup.sqf b/Sources/epoch_server/compile/epoch_group/EPOCH_server_updatePlayerGroup.sqf index aa6a3242..61c1a4d8 100644 --- a/Sources/epoch_server/compile/epoch_group/EPOCH_server_updatePlayerGroup.sqf +++ b/Sources/epoch_server/compile/epoch_group/EPOCH_server_updatePlayerGroup.sqf @@ -58,6 +58,16 @@ if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { }; } forEach (allPlayers select {getPlayerUID _x == _selectedPlayerUID}); + // find player name from DB + if (_selectedPlayerName == "Dead Player") then { + _memberrange = ["PlayerData", _selectedPlayerUID] call EPOCH_fnc_server_hiveGETRANGE; + if (count (_memberrange select 1) > 0) then { + if (typename (_memberrange select 1 select 0) == "STRING") then { + _selectedPlayerName = _memberrange select 1 select 0; + }; + }; + }; + _removePlayerArray = _contentArray select _modOrMemberRevert; { From 8e3d6265dfbdec11e5566d859f4c4b0b5f3ecd9e Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 10:48:39 -0500 Subject: [PATCH 15/26] 0.3.9.0441 --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 390512 -> 390889 bytes .../addons/a3_epoch_server_settings.pbo | Bin 396995 -> 396995 bytes .../@epochhive/addons/epoch_server_core.pbo | Bin 12329 -> 12329 bytes Server_Install_Pack/MPMissions/epoch.Napf.pbo | Bin 923455 -> 923471 bytes .../mpmissions/epoch.Altis.pbo | Bin 923488 -> 923504 bytes .../mpmissions/epoch.Australia.pbo | Bin 921716 -> 921732 bytes .../mpmissions/epoch.Bootcamp_ACR.pbo | Bin 922803 -> 922819 bytes .../mpmissions/epoch.Bornholm.pbo | Bin 922650 -> 922666 bytes .../mpmissions/epoch.Chernarus.pbo | Bin 922624 -> 922640 bytes .../mpmissions/epoch.Chernarus_Summer.pbo | Bin 922631 -> 922647 bytes .../mpmissions/epoch.Desert_E.pbo | Bin 922776 -> 922792 bytes .../mpmissions/epoch.Esseker.pbo | Bin 922616 -> 922632 bytes .../mpmissions/epoch.Mountains_ACR.pbo | Bin 923043 -> 923059 bytes .../mpmissions/epoch.Porto.pbo | Bin 922767 -> 922783 bytes .../mpmissions/epoch.ProvingGrounds_PMC.pbo | Bin 922778 -> 922794 bytes Server_Install_Pack/mpmissions/epoch.Sara.pbo | Bin 923040 -> 923056 bytes .../mpmissions/epoch.SaraLite.pbo | Bin 923042 -> 923058 bytes .../mpmissions/epoch.Sara_dbe1.pbo | Bin 923045 -> 923061 bytes .../mpmissions/epoch.Shapur_BAF.pbo | Bin 922770 -> 922786 bytes .../mpmissions/epoch.Stratis.pbo | Bin 922624 -> 922640 bytes .../mpmissions/epoch.Takistan.pbo | Bin 922732 -> 922748 bytes Server_Install_Pack/mpmissions/epoch.VR.pbo | Bin 922616 -> 922632 bytes .../mpmissions/epoch.Woodland_ACR.pbo | Bin 923043 -> 923059 bytes .../mpmissions/epoch.Zargabad.pbo | Bin 922700 -> 922716 bytes Server_Install_Pack/mpmissions/epoch.utes.pbo | Bin 922763 -> 922779 bytes Sources/epoch_config/build.hpp | 2 +- Sources/epoch_server/build.hpp | 2 +- Sources/epoch_server_core/build.hpp | 2 +- Sources/epoch_server_settings/build.hpp | 2 +- build.txt | 2 +- 30 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 25aa93c835e152b904097e1563e7cf744f5c0528..268bfdaf306c8ef5c5237f36253d581c0abce1b4 100644 GIT binary patch delta 400 zcmezHO8n(p@d-Z6dIm}x{im|BsT(MTpXQ%DpH+1;KU_>YnOdZfmzbNXkXDqRtKj0q%f-o=nWmr-U!0ngnp~2a z5&%}?2U22dtDxkPnwX*h5mVAsD9K38Q>X^%;f&8s%}q)zDoV^t2dY$vR)Q#UNi0cJ z(osM$ZhDCtqkb~TmgM}>yb_>g$a*0bD;R1j*eMvGSOIoeNo7GQ*umI!DL}OYb=ula z_u0%OG5PWaF>WLqrW?#<5}$s?k&$b9{A5PH=1-g2KW$>%{%I4_R3FBj+dKXmy+ zm>3wFnlj|^Fo412hlauJ4&2N@%(C5qn^oqO$h06MnNuaTYc5M%$~eWgVU^#H*((8a C1&31r delta 118 zcmV-+0Ez$U?HBOs7m!Q?JklSrPn87*hwcJbQVx@!1tqf&28<8`KGGkvo)&ij128)v zmthV9RkLjvg_?tFw1;c70k>YcLvQW!vFvP diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index 124067766dc00a5c0e970f5e43332e6d1aac25ea..ede4fd9294f6de927243a286071948f7fb49a5fa 100644 GIT binary patch delta 151 zcmX>+SK{zoi3uSNmIg}UE({C|Nu`-NDS83wF87f)xa@7Jc*eF{Q6T{|G_V!YCMj&PaVrC#_0b>^n=uM~wn T`+nqPw;4w{`#s|?;g&`KVv{GW delta 151 zcmX>+SK{zoi3uSN%cjeRyD%^?B$a07r08W76ad)>uoNiE3*;u}=cQ$)>m{Q}12u1) za*9pd%-q1p*g(mem#Y?t!A9Ad7+W@%vbUGAGXgOa5HkZY3lOtzFJ))5Vi)Pz7kab! TW6R1u#^Jw7R{Z?2WQy&+-OD!KdI|vPfKNUE delta 198 zcmX@V&SL*MiwS1TH>S&Pw3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}Ry?{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXFOqsYrONyi(x&b+K=k_g`Krd%i-a{8AwR=f+P@ diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index 59bb3d72897134746c6eef2360b2a8e1ad1b3561..6dc1980a01dd7f13ffdeb08f2a6c6885f953c7a1 100644 GIT binary patch delta 203 zcmaE`&f>#5iwS1T4hBjaEhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^_<)W-QwE=-y!6LIwIVGYH2DFEd(OcekC delta 198 zcmeyc&f>v3iwS1TYp2U^w3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}S9G{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXJ*gsYsimZ%)O(=5XHRNlh(KFwiry zR@lzr&03Pkm@>U~4XXx_TDFE&jWK2W*)^;#Usy~GtreyhUSdg}uC;=Vr@dt%8xXSt tF$WNH0x=g5a|1EY_Lhabck)DdkA}WlaiK`1H-`DC!$r?G_tqZ%1ps!@OWptg delta 198 zcmZo!Xz^u%#RN0vP1EH!T1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22FfuV}er(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jh^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}R$6{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXEE0SR^9UpFbz=+P(R=8dq`EEIn4X=iV^@ua{4t diff --git a/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo b/Server_Install_Pack/mpmissions/epoch.Bornholm.pbo index aa371aee7d9c22b1b0a2b08770848d04cde4f955..52a137c3d586e0401122bbb0e08969cfb7ded025 100644 GIT binary patch delta 203 zcmbQW!eZ45iwS1TK?X`2EhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}S38{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXHl_NJRg3TCA2%(%d^U*FNvO{bzM>#^z%Hm@!aC diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index 2ec0ad81abde3e2812c4c79b9f812a611c4a993b..44cbcdf6b8ca2cd86fc8738cbadbead0459c8d13 100644 GIT binary patch delta 203 zcmZozVKD)S%$Oq#lr~yQ>a%I-DTV)LocvKma`FLv;px+TSOqpu(XV7>=FwByEMV%# z$ZTt%v^mkNhLg?0#K73nsQIyd`(t}XAZ7w$W*}zS{@9*XgPXTBvp6R;wLrl@&&XO~ zJBK%GNg`v)^x8G78bE5<8df#Nl5ki74;7)$eQD!FHnieObq|^_&IeCuRZwFa$~~ delta 198 zcmbQR!lGe?#RN0v1JmUM-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22Ffui3er(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jh%=`_+hsP#Mx+7&UY|_V diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index a7667bffec58cac97524f11a1b3a37b1e8bc98ca..5676068a34e3531d8128bbe1c2bb3b184afadf39 100644 GIT binary patch delta 203 zcmZo)VKIG$#RN0vI0L1PmXi8xT6#+1zZoZgRFRx~Kwo(JbRSlM%~SL%S($nClr{^P z`Y|%w8Ypc}G^^ocvoJ9*wzOz|Y~TLao)L(dfS4JGS++m6XVu{5EzK;>Nlh(KFwiry zR@lzr&03Pkm@>U~4XXx_TDFE&jWK2W*)^;#Usy~GtreyhUSdg}uC;=Vr@dt%8xXSt tF$WNH0x=g5a|1EY_Lhab`9&g+r}fSGd#3DT9Z#lc-s1`BdV4140RUHaO4a}X delta 198 zcmbQf!lHeJ#RN0vqtoR#T1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22Ffuc2er(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jhhEKiwLK7E1QGMfL7h?$kg>_Ex diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index 0d1686063ff04f0235072293ddd250939f41a80a..e3937ae51a6e7bdcdfc0b6afce5d905733f514a3 100644 GIT binary patch delta 202 zcmbQS(qhF*iwS1T$p%UrEhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^4tqw3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}R?2{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o i5c4dbvXHk}+X diff --git a/Server_Install_Pack/mpmissions/epoch.Esseker.pbo b/Server_Install_Pack/mpmissions/epoch.Esseker.pbo index 5264224734e652d242b641fa0895ab5ccec17871..bf3e75bf7edcb928212dfa00cb203a6091583264 100644 GIT binary patch delta 203 zcmeyd+@fQJ#RN0vOarBjmXi8xT6#+1zZoZgRFRx~Kwo(JbRSlM%~SL%S($nClr{^P z`Y|%w8Ypc}G^^ocvoJ9*F|cfYY~TLao)L(dfS4JGS++m6XVu{5EzK;>Nlh(KFwiry zR@lzr&03Pkm@>U~4XXx_TDFE&jWK2W*)^;#Usy~GtreyhUSdg}uC;=Vr@dt%8xXSt sF$WNH0x=g5a|1EY_Lhab2}L4LSN~jM?$_qSrW-5ws%m1?6b|<|0Fi%4-~a#s delta 198 zcmeBJVewM-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22Ffuo2er(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jhtIF*6XeY=30Ws>#h;npvEanp&V>pl4*Q zu${x3wIq=-WqR!zRt+GvYz?a#W6JikYgk>ru$UNHD@-rE#F9K+YXuumd&@#LAZ7<* r4j|?PVlE)&24bG=Eem^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!cb9U}WC>$iDrNJtGh^0WmWWvuuB4&#KA2UD}(qFmZaqYBtvC z6W6e+Kv=uhuquIB+aIoBb@;+!Y-z19z3>uC@^q^eY&`8#7P0{`I}mdKF((jn0Wmia i^K758ke9neq`u|V=JeYPmG83VZgvlp+IjGNlh(KFwiry zR@lzr&03Pkm@>U~4XXx_TDFE&jWK2W*)^;#Usy~GtreyhUSdg}uC;=Vr@dt%8xXSt tF$WNH0x=g5a|1EY_Lhab--|@Hp6fjkS~NAqck3ZjT8}0|0lCN_zkR delta 198 zcmbQg(xQK*#RN0vJJaPiT1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22FtRXder(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jhF%+&dQltr1Ww diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index fab591c3ab88fb0c0adaef7101edffe76fbf8c36..ce7da38a6a974cfa21c1d0bfbf8d58b2a352bdcf 100644 GIT binary patch delta 203 zcmbQW(qh$0iwS1T4F*aZEhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^*uMR-JtGh^0WmWWvuuBC&#J-ATbfy%lbTwfV4!DY zt+1WLo3$j7F=cw~8deP;wQLQm8e_`#vujvgzOa}WS}RO1yu^|`U26p!PkYNkHXvpP tVh$kY1Y#~A<_2P(?JWy=nTkc$-P7fH>hL@D7Uw?Q0~78o4QXx-2LN-uN;v=k delta 198 zcmZ3r(qh(1iwS1T52wp-w3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}Rz0{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXGalScETe;<04=vr4`yzaCA9J!p08khBp1q#8}~ diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index 467c41e81ae461fcd99105da4db01b471a52b801..0fd69a868eb4e71316ef46a4a5c5ed7ace54806d 100644 GIT binary patch delta 203 zcmZ3m+G4|MiwS1TZ3apkEhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^p88>4FHs$OD6yT delta 198 zcmdn6+G4?KiwS1T&!)?7w3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}S01{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXGafM1*J2=>v-r$~^ji{n>HjWtOhwBE1d($`wzj diff --git a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo index 012bad0e2fe4b6a5eee7d81049eac122bc987043..a23b92b5a5d594eac38ff09247ad11d591602f1f 100644 GIT binary patch delta 203 zcmZ3q+G5jciwS1TJqAh}EhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^qYnbUcO%ZrWw0eV|WVE_OC delta 198 zcmdnA+G5daiwS1Tucymzw3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U}S08{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXGanM5M%1^}{mbXEvL5pJ$X*3Fwx*;?xfSy(>+b diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index 8bfe0b28559f5c87a0d58afaa6ec5ff53f5a7817..a31909912612ba8e7a6b40a48148666d69342312 100644 GIT binary patch delta 203 zcmZ3w+G6W!iwS1T6AhF$T1x7(Y3V72|7M*0QAKj{0e#`=(|uS4Hc!#7WM$^jQ`#(G z>c_}zYoN3_(X57(&BDaM#Kf}sv3>hvdqyB;0%B$$X4(GOo>haJw=}ajCpEP|!9dT* zT46hfH)}~EW6Jc}HLMyyYS|iAHO7?fXVy4DIdp7xf7Y(UHo t#2i4(3B+7L%nigm+gld$@|K7k4>3!exMXE<$?}=vdu>i#Y_Kq@005F*NuB@z delta 198 zcmdnG+G6QyiwS1TAEwK1w3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U~FL0{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXGazL?lt-nfdy!+XR^Axo`jUzU diff --git a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo index 91b062c730658d43e5a14c3fbe3f2052a32e6962..b37aecaa209556e2998bc607f96dc612a01b9362 100644 GIT binary patch delta 203 zcmbQV(qhp{iwS1T(+!k1T1x7(Y3V72|7M*0QAKj{0e#`=(|uS4Hc!#7WM$^jQ`#(G z>c_}zYoN3_(X57(&BDaM#MHF;v3>hvdqyB;0%B$$X4(GOo>haJw=}ajCpEP|!9dT* zT46hfH)}~EW6Jc}HLMyyYS|iAHO7?fXVy4DIdp7xf7Y(UHo t#2i4(3B+7L%nigm+gld${wfmjsmT_rzI1?T{_>1F9p1sW`~K{*2LOcKO9TJ_ delta 198 zcmZ3q(qhs|iwS1TU#H7&w3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U~FL7{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXJ*zk;p^a-MfV?t_T2wCzp_ diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index bcc020e26d61453efa505a3589fac7ad74952396..224b80873b7afe0634388563850f2cc09beb7963 100644 GIT binary patch delta 203 zcmZozVKD)S%$VmIC~dTq)MwMuQwsmhIQgTB3%%%i8YS-{kf zk=fQjX>+1k4JVt0iGhikVe@1A_Q&>&K+FWh%s|Yt{joi(1~+eMW^qnxYJq}*o{_b} zb`EdWl0?Ro>9uQEHGtHzHLPlkDcjGkVRiY!Vq$2mFum{+OY(HB6>L21EeqLzm>q~Y rfS41Axqz4(hjK8BI_0ZbS4)Lr?%d;M*^}huGU@S^2 delta 198 zcmbQR!lGe?#RN0vpVQ?xT1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22Fg7%9er(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jhgiwS1Tiw%@ET1x7(Y3V72|7M*0QAKj{0e#`=(|uS4Hc!#7WM$^jQ`#(G z>c_}zYoN3_(X57(&BDaM#LT?;v3>hvdqyB;0%B$$X4(GOo>haJw=}ajCpEP|!9dT* zT46hfH)}~EW6Jc}HLMyyYS|iAHO7?fXVy4DIdp7xf7Y(UHo t#2i4(3B+7L%nigm+gld$UMUi}vHzU1c4w1r{H$4`IlKF=`c$2@0stNZOCtaP delta 198 zcmeyf!s5*eiwS1T|E9}tw3O6mV|@KR>^0-$k1CRr59kX|U+%*yuz8ApB`foX`BIw& zO#K*{S524SoM=|V$!2D5U~Fj7{Mf$zu{|RYGXXI(5VLH5Y|pB}ypd!fH0w z=@Zwmsz6w~*03spS=%43VRiVzVr*%xFum{+OY(H96>L21Qx>uTF*^`*05K;Ja{)0o j5c6!GvXJ*mk;s~7?h(7sO!xn(VtFt0rQ>4$OTB9WTli5a diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index 91d6feda47599da332e1a2bf867b7b52efe2131d..0430baf6fd1b37974618037ae7840e162c998873 100644 GIT binary patch delta 203 zcmeyd+@fQJ#RN0v4F*aZEhY8YwDgq1e=|=0s3JM}fWGkb={~Fio2TekvNH4NDQy-o z^MSRKBw7+YE^OfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX j#5~)lEaXin5^*yXy7V`QnfF|lR_(=CYhNYgOyvduFzHRC diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index eac42ab84e2c9664c4306d2eb893013b44395b81..86ac25d866afd0ee902c3406526f7e0c4f5d14b3 100644 GIT binary patch delta 203 zcmZ3y+G6u+iwS1T+YFR8T1x7(Y3V72|7M*0QAKj{0e#`=(|uS4Hc!#7WM$^jQ`#(G z>c_}zYoN3_(X57(&BDaM#KNrkv3>hvdqyB;0%B$$X4(GOo>haJw=}ajCpEP|!9dT* zT46hfH)}~EW6Jc}HLMyyYS|iAHO7?fXVy4DIdp7xf7Y(UHo t#2i4(3B+7L%nigm+gld$a+ipFIp;D()-LJ6#cMJ5o&81SfAG)E0|2u$N$UUr delta 198 zcmdnI+G6o)iwS1TyffrCT1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22Fg7-Ber(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( ihBElVPpL*{ar$pLA^RwZFJ>nTT=e+<4f=o^T diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index a6f56df919671a1b51fc439902312e08f44d88e4..bb10f6ce42cea6307ae0912a14adcb75732cdb58 100644 GIT binary patch delta 203 zcmX@J!s5;fiwS1TdkmB|T1x7(Y3V72|7M*0QAKj{0e#`=(|uS4Hc!#7WM$^jQ`#(G z>c_}zYoN3_(X57(&BDaM#L}qwv3>hvdqyB;0%B$$X4(GOo>haJw=}ajCpEP|!9dT* zT46hfH)}~EW6Jc}HLMyyYS|iAHO7?fXVy4DIdp7xf7Y(UHo t#2i4(3B+7L%nigm+gld$ZYdHGUVF><+hpVA)6QM;bN}GSa=7}=GXMctOf3Ka delta 198 zcmcb!!s5&diwS1TLNnwyT1x7(F~0sD_L_0>M-|D*2lR!fFZW>;*gQqQl9l zrhbgftES6uPBg3GWHU22FgCVmer(_V*q#xHnShuXh*`EjwrADg-Y)IUT9`OJVKp1; z^oeU&RUoWgYgm=QtnCliusVEUF}Ac;m|l2^C3(8l3O1hhDGS+vm>q~YfS41Axqz4( jhtIF*6XeY=30Ws>#h;npvEanp&V>pl4*Q zu${x3wIq=-WqR!zRt+GvYz?a#W6JikYgk>ru$UNHD@-rE#F9K+YXuumd&@#LAZ7<* s4j|?PVlE)&24bG=Eem-+7l~LadOEH@d)lwr`A_=kS`L=g+ZX%-08TSXRsaA1 delta 197 zcmbQe(xQ8%#RM~E<{9!EEhY8Y7+-%6d(Alcql)C@1Ny?#m;0~^Y@VWD$;$j;zSL#` zQ$I%LRnz4+Cz{o8vYMG27#lS|vTuK6&j`d!K+FupEZZO1vubj0m-c2YOq`yunvHe( z#5Jrc5Z10WtV&?k_J?a&9lo#_TUskjFTBK(Jl$#q8&CU`g=|2~4#XTl%n8I?K+Fxq iJlm%%vwn0eHuAbF{I-I}=_vrxicVty diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index d19191ba..790a92bf 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=439; +build=441; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index a5bcef9e..790a92bf 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=440; +build=441; diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index d19191ba..790a92bf 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=439; +build=441; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index d19191ba..790a92bf 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=439; +build=441; diff --git a/build.txt b/build.txt index 8de9a580..0551f038 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -440 +441 From c05da7979b0217ed4061613c6f4b87d9e82c7de5 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 11:34:56 -0500 Subject: [PATCH 16/26] changelog pt1 --- Changelogs/0.3.9.0.txt | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) diff --git a/Changelogs/0.3.9.0.txt b/Changelogs/0.3.9.0.txt index 85d52ff4..f49fd334 100644 --- a/Changelogs/0.3.9.0.txt +++ b/Changelogs/0.3.9.0.txt @@ -1,5 +1,25 @@ -[New] from Axeman TBA +[Added] Player option to Morph into a random antagonist (from deathMorphClass) after death. The array 'deathMorphClass' found in CfgEpochClient can be used to specify what antagonists to randomly spawn. +[Added] Player option to detonate body after death. Sacrifice yourself by generating a runaway thermal cascade using the nano bots within your body. Nothing left to revive. +[Added] Server function to allow remote exec of setVariable on client - Allows client to ask another client to set a local variable, via the server. Server can run same function. +[Changed] Sapper groan or detonate can be triggered by setting a variable on the target or sapper. +[Changed] Server can be asked by a client / server to trigger an antagonist on another client. Antagonist is then run on target PC, independent from caller of function. +[Changed] Epoch Unit Spawn code. Now can be called specifying the target of the antagonist. Antagonist will run on target client PC. +[Changed] Sapper defaults tweaked to make them more responsive. +[Changed] New Sapper antagonist config options: +reflexSpeed - Set the loop pause. Defaults have been lowered to make sapper more responsive. +nestChance - A percentage chance, at each sapper spawn, that he will create a nest. +hideLevel - (Fear Emotion) Set level at which sapper will go into hiding based on fear of armed players, being shot near etc. +chargeLevel - (Anger Emotion) Set level at which sapper will trigger 'charge the player' mode. +[Changed] New UAV Support Troops antagonist config options: +unitTypes - an array of soldier classes to randomly choose from. Custom weapons to-do, use soldiers with default weapon loadout or handle weapons with custom script. +maxUnitNum - Maximum number of units to spawn per UAV. +minAISkill - Minimum value for any AI skill. +maxAimingAccuracy -> maxGeneral - Set the maximum value for each available AI skill. A random number between minAISkill and the value for each will be set as that skill. +[Fixed] Prevent empty group menu display. Thanks to He-Man! for the fix. +[Fixed] Group system marked player as "Dead Player" if moderator status was change while player offline. Thanks to He-Man! for the fix. +[Fixed] Group system invite and kick from group options not working. Thanks to He-Man for the fixes: http://epochmod.com/forum/topic/41893-group-menu-broken-kick-invite-for-admin-not-possible/#comment-275429 [Fixed] Missing texture issues with some base building objects since 0.3.8. [Info] RConPort 2306 added to example-beserver.cfg for changes since A3 1.58. [Info] Removed old .bikey and added new one for 0390. [Info] Requires Arma 3 1.58 or higher. +[Info] A big thanks to Isaac, Axeman's chief tester. From fecc028ae4c2fc979d32c9eb0baa032abf6d75d2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 13:51:15 -0500 Subject: [PATCH 17/26] 0.3.9.0442 added missing compile configs --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 390889 -> 390890 bytes .../addons/a3_epoch_server_settings.pbo | Bin 396995 -> 396995 bytes .../@epochhive/addons/epoch_server_core.pbo | Bin 12329 -> 12329 bytes Server_Install_Pack/MPMissions/epoch.Napf.pbo | Bin 923471 -> 923671 bytes .../mpmissions/epoch.Altis.pbo | Bin 923504 -> 923704 bytes .../mpmissions/epoch.Australia.pbo | Bin 921732 -> 921932 bytes .../mpmissions/epoch.Bootcamp_ACR.pbo | Bin 922819 -> 923019 bytes .../mpmissions/epoch.Bornholm.pbo | Bin 922666 -> 922866 bytes .../mpmissions/epoch.Chernarus.pbo | Bin 922640 -> 922840 bytes .../mpmissions/epoch.Chernarus_Summer.pbo | Bin 922647 -> 922847 bytes .../mpmissions/epoch.Desert_E.pbo | Bin 922792 -> 922992 bytes .../mpmissions/epoch.Esseker.pbo | Bin 922632 -> 922832 bytes .../mpmissions/epoch.Mountains_ACR.pbo | Bin 923059 -> 923259 bytes .../mpmissions/epoch.Porto.pbo | Bin 922783 -> 922983 bytes .../mpmissions/epoch.ProvingGrounds_PMC.pbo | Bin 922794 -> 922994 bytes Server_Install_Pack/mpmissions/epoch.Sara.pbo | Bin 923056 -> 923256 bytes .../mpmissions/epoch.SaraLite.pbo | Bin 923058 -> 923258 bytes .../mpmissions/epoch.Sara_dbe1.pbo | Bin 923061 -> 923261 bytes .../mpmissions/epoch.Shapur_BAF.pbo | Bin 922786 -> 922986 bytes .../mpmissions/epoch.Stratis.pbo | Bin 922640 -> 922840 bytes .../mpmissions/epoch.Takistan.pbo | Bin 922748 -> 922948 bytes Server_Install_Pack/mpmissions/epoch.VR.pbo | Bin 922632 -> 922832 bytes .../mpmissions/epoch.Woodland_ACR.pbo | Bin 923059 -> 923259 bytes .../mpmissions/epoch.Zargabad.pbo | Bin 922716 -> 922916 bytes Server_Install_Pack/mpmissions/epoch.utes.pbo | Bin 922779 -> 922979 bytes Server_Install_Pack/sc/BattlEye/scripts.txt | 4 ++-- .../Configs/CfgClientFunctions.hpp | 5 +++++ Sources/epoch_config/build.hpp | 2 +- Sources/epoch_server/build.hpp | 2 +- Sources/epoch_server_core/build.hpp | 2 +- Sources/epoch_server_settings/build.hpp | 2 +- build.txt | 2 +- 32 files changed, 12 insertions(+), 7 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 268bfdaf306c8ef5c5237f36253d581c0abce1b4..8bb592d8cc4e4a9cff4c75ce8a9706bdab0041dc 100644 GIT binary patch delta 207 zcmaF)R{Ygl@d-Xm4AC3?Y#EvVMksCWV+>Kx)?{Dt6U;`|3eyw$m_nO#CE9Z(7`Nw2Fin2JxNAEjBXc-6tEr)} xp+$Qv5A*g|9+t&EjJ$1;EZZVkug(=QpS+N>T4jN{{b669w`)ImODc$+1prPpMV5pjFBwc86#P*&J~#!WF&K{q;}0^iAx!$*fy;4`!RbZ00rDd ABLDyZ diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index ede4fd9294f6de927243a286071948f7fb49a5fa..d698d849cfdc1a3ecf688189c8f3858fd476b73f 100644 GIT binary patch delta 157 zcmX>+SK{zoi3uV0T+vG5E({C|Nu`-NDS8<-NXeR)s}_jC2HKjK7&Vu&x0kXr0x=U1GXpUT5VLMCWoNTu a7inMI+~M%nYTgm0$~u;QQ&Z8!hb;l5i78P4 delta 157 zcmX>+SK{zoi3uV0mIg}UE({C|Nu`-NDS8b%7 diff --git a/Server_Install_Pack/MPMissions/epoch.Napf.pbo b/Server_Install_Pack/MPMissions/epoch.Napf.pbo index c77944fde1112e7941ae2948d54086e9e1ba980c..53f2ef1fbe9de94c307266468f7a33c77e43ede2 100644 GIT binary patch delta 423 zcmX@V&SLroiwR~-R?!9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt}G;=EwH!kL?+Om;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- oaRD(m5c6!G_K!DLQsmd0Qx9gpxv#Y1=Z_^*Z1?S6w(-_e03v{Wy8r+H diff --git a/Server_Install_Pack/mpmissions/epoch.Altis.pbo b/Server_Install_Pack/mpmissions/epoch.Altis.pbo index 6dc1980a01dd7f13ffdeb08f2a6c6885f953c7a1..8c5b6a143c884e7df69df6ee04fceb54628fccba 100644 GIT binary patch delta 423 zcmeyc&SJ*~iwR~-g3%i-l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt`V$=EwH!kL?+Om?9x#>{qI?U1SU#`aLQ>~!Vd^#FT8l}7*o delta 329 zcmdn7!Q#U@iwR~-4h9=7l(^X1YvjXqxF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- oaRD(m5c6!G_K&wuQe<`Pi3g`P&VO=Y(oC6%qi+vuD8@?x03%R(k^lez diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index 031b58192c480fee07c43137b9a334dc7ceb6a9e..4fb0818a6b21ea4a191288923fa6855a80d88b70 100644 GIT binary patch delta 423 zcmZo!XmMtd#RM}ZvFME!N?dGzB9y{)xF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+5{{q#$=by<6q{9U! zZDK+FQftlJ;k zv)Lyy8(Aw%FTBK(Jl$#q8&CU`g=|2~4#XTl%(;EaLN2QqcFyFS#NuLw=^t{KL^&0z zYpr>?6ciMu-~G)cA?T7?lAo7Yl8P!k-64R9RR}J|$q6&!d8rl3I}uhMM2!npSkjwSV7X3lRxrn zZJxlJ$H)xiPG;oy04q!3n0%2(bFwZ!_jFGmCZ5Ut{JdcK`TV|M`aS& zK+FWh%s|Wn#H`yN+q2mxG8;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+5{{q#$=by<6q{9U! zZDK+FQftlJ;k zv)Lyy8(Aw%FTBK(Jl$#q8&CU`g=|2~4#XTl%(;EaLN2QqcFyFS#NuLw=^t{KL^&0z zYpr>?6ciMu-~G)cA?T7?lAo7Yl8P!k-64R9RR}J|$q6&!d8rl3I}uhMM2!npSkjwSV7X3lRxrn zZJxlJ$H)xiPG;oy04q!3n0%2(bFwZ!_jFGmCZ5Ut{JdcK`TV|M`aS& zK+FWh%s|Wn#H`yN+q2mxG89wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt_);=EwH!kL?+OmL%Zi@N*xN_*a`rS%a|ts delta 329 zcmeyg(qh#LiwR~-K?WNwl(^X1YvjXqxF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K(*?OysR*)hi=?Aus>uH`=;3&*xn~zi=u5^NV=) diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index 44cbcdf6b8ca2cd86fc8738cbadbead0459c8d13..5e9b0f07cb4f83782a36864ead90b939521c86c1 100644 GIT binary patch delta 423 zcmbQR!s5nCiwR~-%F!Dwl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt_*3=EwH!kL?+Omh;n@t8OO delta 329 zcmcby(qh62iwR~-5e6GAl(^X1YvjXqxF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K#OjOhkFtt$ttI4z?5B@5?%#t>-K#KQR*kxfFRP diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus_Summer.pbo index 5676068a34e3531d8128bbe1c2bb3b184afadf39..31dcf1884953e7e23a532ce06af63699b942787d 100644 GIT binary patch delta 423 zcmbQf!s7l)iwR~->d_l5l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt|6J=EwH!kL?+OmNmGS@p delta 329 zcmcb=(qj4wiwR~-aRwVLl(^X1YvjXqxF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K(+8Oyu#jzBzx-lzpt@$rR0dJRx0g&*VG+>6m%a diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index e3937ae51a6e7bdcdfc0b6afce5d905733f514a3..dac6c201f2fb97e32404ce6d181e8a5eed052079 100644 GIT binary patch delta 423 zcmZ3n(&ED^iwR~-I?)>~l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt|63=EwH!kL?+Om6*WU($+r8MFOD7YodE!rZ;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K)|Nm;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+5{{q#$=by<6q{9U! zZDK+FQftlJ;k zv)Lyy8(Aw%FTBK(Jl$#q8&CU`g=|2~4#XTl%(;EaLN2QqcFyFS#NuLw=^t{KL^&0z zYpr>?6ciMu-~G)cA?T7?lAo7Yl8P!k-64R9RR}J|$q6&!d8rl3I}uhMM2!npSkjwSV7X3lRxrn zZJxlJ$H)xiPG;oy04q!3n0%2(bFwZ!_jFGmCZ5Ut{JdcK`TV|M`aS& zK+FWh%s|Wn#H`yN+q2mxG89wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt`_O=EwH!kL?+Om;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K)|XxQOJ3rcY8Ae7pl0Emmyx5a_d>uka24HzRmi diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index a688472c30c43b549e145b122bad985caed6da67..5daf6c307fd396d3449237ab3f1aeacaced23f60 100644 GIT binary patch delta 423 zcmbQg(&G6liwR~-cF`Lxl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt}H3=EwH!kL?+Om;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K$b3n8?<1y(dD8rl$CAJ!Gmp;na>~A6IVxA#Qnh diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index ce7da38a6a974cfa21c1d0bfbf8d58b2a352bdcf..e2b501d482a0ed5b35b06d71b65a5d7247fac71b 100644 GIT binary patch delta 423 zcmZ3r(&E!9iwR~-&e0n!l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt}Hx=EwH!kL?+Om@6@wVnGOKyxR?q6 delta 329 zcmeyg%3{?@iwR~-4F(%6l(^X1YvjXqxF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K)|3n8><&x;#%Eey85z+^2hB!o8&-&8^`8La%x> diff --git a/Server_Install_Pack/mpmissions/epoch.Sara.pbo b/Server_Install_Pack/mpmissions/epoch.Sara.pbo index 0fd69a868eb4e71316ef46a4a5c5ed7ace54806d..591ebb4e1f802296c0021ae0cf33334147e9c385 100644 GIT binary patch delta 423 zcmdn6+TzC=iwR~-p3xgEl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt_im=EwH!kL?+Om;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K)|RxJcv4+wwNQG`5_2{kDha)|_iSr?t5OZJv7~ diff --git a/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo b/Server_Install_Pack/mpmissions/epoch.SaraLite.pbo index a23b92b5a5d594eac38ff09247ad11d591602f1f..64802b7f9484fa7057928ac8632a104432c8577b 100644 GIT binary patch delta 422 zcmdnA+Tzz5iwR~-e$g8(l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt_ie=EwH!kL?+Om;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- maRD(m5c6!G_K)|XxbS16i<8-9y`xJGG&XZO&v1FM@jn3JeR%u; diff --git a/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo b/Server_Install_Pack/mpmissions/epoch.Sara_dbe1.pbo index a31909912612ba8e7a6b40a48148666d69342312..2727d3ab0544e74344171d786c30dedd23ecb479 100644 GIT binary patch delta 423 zcmdnG+T!mTiwR~-LD3s6l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt{&m=EwH!kL?+OmW+<5o!#w3SVGTsmO^j=!mvMXV~M-BioOPUG* delta 329 zcmeyn#$xMgiwR~-6Ad<6C~>j1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%)Zmd%gt+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u n;{sxCAm-UV?H})DagpO8W{DG*tSl~BK2v9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLt{&e=EwH!kL?+Omj1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%*^rp=G-+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u n;{sxCAm-UV?H}&}F%h4dY_aM~2bktB&$!d!9elg*&n|laKeBoN diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index 224b80873b7afe0634388563850f2cc09beb7963..90256041c5c5bf38f0895b40add8fe1d3317bd51 100644 GIT binary patch delta 423 zcmbQR!s5nCiwR~-QPCSMl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLlXm|=EwH!kL?+Omj1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%*EhRu)d+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u n;{sxCAm-UV?H{k6n27xAWBeTzsfX5nc8F(HTAuYdt^X|m3#54` diff --git a/Server_Install_Pack/mpmissions/epoch.Takistan.pbo b/Server_Install_Pack/mpmissions/epoch.Takistan.pbo index 7851b1d461968065d74322774aef17acd47718e5..32cae34245cee15f1096fefe67fb4d7a5481451e 100644 GIT binary patch delta 422 zcmeyf!s5s(iwR~-@zEPCl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGXw`LlcAMNA~TH>=}WW35c12m<5Pgw?DFH zb4X-1vR0U0c!?!>y44Ccp7tpV*?^cGh&h0mbNiHqTvjpcoXI(f#l;HKKjbipaw=5U zTJv%#C@4(7`n|4&a|1EY_FI2>`@}>dXGOPP^$c@*I_ctmi>Bw7~n6Ll< delta 328 zcmX@I%Hq!oiwR~-iw!nfC~>j1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`?ACI%*E&5!KcAK5bk zF%u9o12GE_vu=N6&*qTGY-p`8z3>uC@^q^eY&`8#7P0{`I}mdKG3WLv3%RUf+Nb^F m0%C3;=Gi{&AMY$NksJHZDQkB&>Bi5RC7QFl@2XGLSt|f81bJcr diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index 0430baf6fd1b37974618037ae7840e162c998873..62a949723950b025be2f708a4c8957ae7259acd1 100644 GIT binary patch delta 423 zcmeBJVR2!l#RM~^^yrNiN?dGzB9y{)xF#>;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+5{{q#$=by<6q{9U! zZDK+FQftlJ;k zv)Lyy8(Aw%FTBK(Jl$#q8&CU`g=|2~4#XTl%(;EaLN2QqcFyFS#NuLw=^t{KL^&0z zYpr>?6ciMu-~G)cA?T7?lAo7Yl8P!k-64R9RR}J|$q6&!d;l%8D86%OY1i-NeDKXc_Vv4W&6Cx7JE z+B|_bkC7S3oy^GZ0alj6G5I2o=44%d?&+RBOgxkO`FX+e^Z9+j^n3o9VC@2vH%f?2 zKF=#MJtBjNZ}L%rII!?^nDFKxK^|2mTZ7FBX0I68W=;DU_EKzefJHu=Lz{f~T;<6M zwhEKut=XnOn83|B`KYDfW>(7vRq~YfS7apl!aVYG40d- naRD(m5c6!G_K#OhOyq>Q*ztd-l6<3<@Ww9P*7oT}CkG<{6gqg> diff --git a/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Woodland_ACR.pbo index 86ac25d866afd0ee902c3406526f7e0c4f5d14b3..b0adf80dd47943a426d07d93b05aa5e1c3ddf3ec 100644 GIT binary patch delta 423 zcmdnI+T!;biwR~-Inf&}l(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLlYx|=EwH!kL?+Omj1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%)JX3dZ7+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u n;{sxCAm-UV?H}(&agi_QT&Bp{B|W%!E#|(nzo`5V{<(Pore%5N diff --git a/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo b/Server_Install_Pack/mpmissions/epoch.Zargabad.pbo index bb10f6ce42cea6307ae0912a14adcb75732cdb58..3e491a37e08b84759f07d523c7f4c1c01e013ea3 100644 GIT binary patch delta 423 zcmcb!!eYrPiwR~-1<@NVl(^XbL@0&pa7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLlYyD=EwH!kL?+Omj1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%*!M$M1y+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u o;{sxCAm-UV?H_NIn27M&TgKle8!w-B?vkJT2S1j>)pwo&0Am+=ssI20 diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index 8cf5ea7b2cfe52ad52d1c390fc0980a71db7c433..727e491e188d2653a170892fffdb95f74f3a823e 100644 GIT binary patch delta 423 zcmbQe(&F(diwR~-$9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxnA{{^ah&p(qDNQVnd z-Y6k9`8==4^oR^5zR5=g;=sbwVZxh(1bI}Mc%wHbn7v|T`xd1XzEON~fJHtVNb_9f z$qKd#ljE(~Hovx*#R?YtB{<1kYV%S%OGZ{xLlZ;8=EwH!kL?+OmZ;#|H}OBR^?!Q$95md-b`JpF7?}eA delta 329 zcmaF7%3}6PiwR~-D-AYUC~>j1*T{$Ka7|vwDLuKGD;&)27X@)Qf9A?#Vg*TCPX5TR zwRr+>9wRf5JDHK+1FS5CWAa5F&B?m_+|xaMn0O}l^Yen`=kxo5>G%9I!P*5TZJ!hc@}}xyq9j zY!xQQTeD4nFoBzM@=;5{&8(IUtY8=X5}af%HT`w~FW=_PcG`@rCI%+v#?6oI+aKFA z0x=U1GXpUT5VLN7Y|mz&$ZTk>Fum{+OY(H96>L21Qx>uTF*^`*05RwGDGRx*V%n$u n;{sxCAm-UV?H}(>F%fG;PsjCVPy01H|4Bbx%fYgG`+{EpJu`WW diff --git a/Server_Install_Pack/sc/BattlEye/scripts.txt b/Server_Install_Pack/sc/BattlEye/scripts.txt index 1c7c29a5..a410c754 100644 --- a/Server_Install_Pack/sc/BattlEye/scripts.txt +++ b/Server_Install_Pack/sc/BattlEye/scripts.txt @@ -3,7 +3,7 @@ 7 forceRespawn !="reviveHandleForceRespawnAction" !="forcerespawn player;" 7 setFriend 7 setAmmo -7 RscDebugConsole_watch !="RscDebugConsole_watchSave = [true,true,true,true];" +7 RscDebugConsole_watch !="RscDebugConsole_watchSave = [true,true,true,true];" !="\"RscDebugConsole_watch\"" 7 enableFatigue 7 setUnitRecoilCoefficient 7 setWeaponReloadingTime @@ -36,7 +36,7 @@ 7 createUnit !="_unit = _grp createUnit[(_arrUnits select _i), _pos, [], 0, \"FORM\"];" !="_driver = _grp createUnit[\"I_UAV_AI\", position _unit, [], 0, \"CAN_COLLIDE\"];" !="axeGeneral = grpVIPGeneral createUnit ["I_officer_F", axeGeneralPos, [], 1, "CAN_COLLIDE"];" 7 createAgent !="_unit = createAgent[_unitClass, _targetPos, [], 256, \"FORM\"];" !="_unit = createAgent [_unitClass, _targetPos, [], 120, \"FORM\"];" !="_animal = createAgent[_randomAIClass, _animalPos, [], 5, \"NONE\"];" !="_unit = createAgent [\"Epoch_Cloak_F\", _pos, [], 0, \"CAN_COLLIDE\"];" !="_unit = createAgent [\"Epoch_Sapper_F\", _targetPos, [], 180, \"FORM\"];" !="_sapper = createAgent ["Epoch_Sapper_F", getPos _cage2, [], 0, "FORM"];" 7 createTeam -7 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog \"TapOut\";" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" +7 createDialog !="createDialog \"rmx_dynamenu\";" !="createDialog \"rmx_craftingUI\";" !="createDialog \"QuickUpgrade\";" !="createDialog \"QuickTake\";" !="createDialog \"InteractBank\";" !="createdialog \"SelectGender\";" !="_handled = createdialog _dialog;" !="if !(createdialog \"InteractItem\") exitWith {};" !="createDialog _tapDiag;" !="if !(createdialog \"Trade\") exitWith {};" !="_ok = createdialog \"Interact\";" !="_ok = createdialog \"TradeNPCMenu\";" !="createDialog \"Epoch_myGroup\";" !="createDialog (if ((Epoch_my_GroupUID == \"\") && (Epoch_my_Group isEqualTo [])) then {\"EPOCH_createGrp\"} else {\"Epoch_myGroup\"});" !="createDialog \"GroupRequests\";" !="_ok = createdialog \"MissionSelect\";" !="createDialog 'Skaronator_AdminMenu';" 7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="_parent createdisplay _displayClass;" 7 deleteMarker 7 setMarker !="CBA_fnc_setMarkerPersistent\"" !="\\fnc_setMarkerPersistent" !="\"setMarkerPersistent" diff --git a/Sources/epoch_config/Configs/CfgClientFunctions.hpp b/Sources/epoch_config/Configs/CfgClientFunctions.hpp index b724bdb4..2eea97af 100644 --- a/Sources/epoch_config/Configs/CfgClientFunctions.hpp +++ b/Sources/epoch_config/Configs/CfgClientFunctions.hpp @@ -112,6 +112,11 @@ class CfgClientFunctions class fnc_findSapperStalkLocation {}; class fnc_dirToFuzzy {}; class fnc_cursorTarget {}; + class fnc_triggerAntagonist {}; + class fnc_playerDeathDetonate {}; + class fnc_playerDeathMorph {}; + class fnc_playerSetVariable {}; + class fnc_playerAttachToAntagonist {}; }; class environment { diff --git a/Sources/epoch_config/build.hpp b/Sources/epoch_config/build.hpp index 790a92bf..9eccd0de 100644 --- a/Sources/epoch_config/build.hpp +++ b/Sources/epoch_config/build.hpp @@ -1 +1 @@ -build=441; +build=442; diff --git a/Sources/epoch_server/build.hpp b/Sources/epoch_server/build.hpp index 790a92bf..9eccd0de 100644 --- a/Sources/epoch_server/build.hpp +++ b/Sources/epoch_server/build.hpp @@ -1 +1 @@ -build=441; +build=442; diff --git a/Sources/epoch_server_core/build.hpp b/Sources/epoch_server_core/build.hpp index 790a92bf..9eccd0de 100644 --- a/Sources/epoch_server_core/build.hpp +++ b/Sources/epoch_server_core/build.hpp @@ -1 +1 @@ -build=441; +build=442; diff --git a/Sources/epoch_server_settings/build.hpp b/Sources/epoch_server_settings/build.hpp index 790a92bf..9eccd0de 100644 --- a/Sources/epoch_server_settings/build.hpp +++ b/Sources/epoch_server_settings/build.hpp @@ -1 +1 @@ -build=441; +build=442; diff --git a/build.txt b/build.txt index 0551f038..cf04e4de 100644 --- a/build.txt +++ b/build.txt @@ -1 +1 @@ -441 +442 From b5ff3ddec5bbf273718f55a4b9fe9f4018e24dc2 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 14:44:27 -0500 Subject: [PATCH 18/26] fix BE kicks with new features --- Server_Install_Pack/sc/BattlEye/remoteexec.txt | 2 +- Server_Install_Pack/sc/BattlEye/setvariable.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/sc/BattlEye/remoteexec.txt b/Server_Install_Pack/sc/BattlEye/remoteexec.txt index 1b0c5d4c..b60a8dd8 100644 --- a/Server_Install_Pack/sc/BattlEye/remoteexec.txt +++ b/Server_Install_Pack/sc/BattlEye/remoteexec.txt @@ -1 +1 @@ -5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]" +5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]" diff --git a/Server_Install_Pack/sc/BattlEye/setvariable.txt b/Server_Install_Pack/sc/BattlEye/setvariable.txt index 73f52477..350d97e5 100644 --- a/Server_Install_Pack/sc/BattlEye/setvariable.txt +++ b/Server_Install_Pack/sc/BattlEye/setvariable.txt @@ -1 +1 @@ -5 "" !=(Offer|Accept|BUILD_SLOT|TRADE_ACTIVE|last_targeter) !="bis_fnc_objectvar_var" !="bis_fnc_selectrespawntemplate_respawned" +5 "" !=(Offer|Accept|BUILD_SLOT|TRADE_ACTIVE|last_targeter|epoch_(antagobj|antagBomb)) !="bis_fnc_objectvar_var" !="bis_fnc_selectrespawntemplate_respawned" From 6eb40b7da8296771afb6103dc85ed4d50e14fd33 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 15:02:57 -0500 Subject: [PATCH 19/26] Few more BE kicks --- Server_Install_Pack/sc/BattlEye/remoteexec.txt | 2 +- Server_Install_Pack/sc/BattlEye/scripts.txt | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Server_Install_Pack/sc/BattlEye/remoteexec.txt b/Server_Install_Pack/sc/BattlEye/remoteexec.txt index b60a8dd8..8355a220 100644 --- a/Server_Install_Pack/sc/BattlEye/remoteexec.txt +++ b/Server_Install_Pack/sc/BattlEye/remoteexec.txt @@ -1 +1 @@ -5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]" +5 "" !="bis_fnc_execvm \[\[.+\],\"initPlayerServer.sqf\"]" !="bis_fnc_effectkilled(airdestruction|secondaries) \[.+\]" !="epoch_server_checkplayer \[[A-Z]{1} [A-Za-z]{4,10} [0-9]{1,3}-[0-9]{1,3}:[0-9]{1,3}( \(.+\)|) REMOTE\]" !="epoch_server_(save(_vehicles|building)|(lock|pack)Storage|(upgrade|remove|paint|maint)build) \[.+\]" !="epoch_server_((load|respawn|dead|invite|revive|teleport)Player|(upgrade|updateplayer|create|delete)Group) \[.+\]" !="epoch_server_(deadplayerdetonate|triggerantagonist|playersetvariable) \[.+\]" !="epoch_server_(knockDownTree|mineRocks|lootAnimal|handle_(say3d|switchmove|sapperObjs)) \[.+\]" !="epoch_server_((repair|fill|lock)Vehicle|(loot|fill)Container|(store|take)Crypto|make(NPC|)Trade) \[.+\]" !="epoch_server_(tradeRequest|equippeditem|packJack|create(object|AirDrop)|airDropCrate|destroytrash|unpackBackpack) \[.+\]" !="epoch_(localcleanup|fnc_saveplayer) \[.+\]" diff --git a/Server_Install_Pack/sc/BattlEye/scripts.txt b/Server_Install_Pack/sc/BattlEye/scripts.txt index a410c754..05a0caa6 100644 --- a/Server_Install_Pack/sc/BattlEye/scripts.txt +++ b/Server_Install_Pack/sc/BattlEye/scripts.txt @@ -57,7 +57,7 @@ 7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'" 7 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !"_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler" 7 displayRemoveEventHandler !"BIS_fnc_guiMessage_status" !="(findDisplay 46) displayRemoveEventHandler [_key, _id];" -7 switchCamera !="vehicle player switchCamera" +7 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";" 7 remoteControl !"fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl"\" 7 drawIcon3D !="drawIcon3D[\"\x\addons\a3_epoch_code\Data\Member.paa\",_color,_pos,1,1,0,_text,1,0.025,\"PuristaMedium\"];\n}forEach EPOCH_ESP_TARGETS;" !"drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_stability],_color,(getPosATL EPOCH_stabilityTarget),5,5,0,\"\",1,0.05,\"PuristaMedium\"];" !"drawIcon3D[format[\"\x\addons\a3_epoch_code\Data\UI\loading_bar_%1.paa\",_num],_color,_pos,4,4,0,\"\",1,0.05,\"PuristaMedium\"];" !"EPOCH_drawIcon3dStability" !"EPOCH_drawIcon3d" !"if (_condition) then {\ndrawIcon3D [_icon, _color, _position, _sizeX, _sizeY, _angle, _text," !="drawIcon3D [\"\A3\UI_F_MP_Mark\Data\Tasks\Misc\background.paa\"" !="drawIcon3D[\"x\addons\a3_epoch_code\Data\UI\snap_ca.paa\"" 7 drawLine3D !"{\nfor [{_i = 1}, {_i < count _x}, {_i = _i + 1}] do {\ndrawLine3D [_x select (_i - 1), _x select _i, ((BIS_tracedShooter getVari" From e691fe124703e59d10954bad430cb9654d506723 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 15:03:05 -0500 Subject: [PATCH 20/26] revert this change --- Tools/Build/build_epoch.bat | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/Tools/Build/build_epoch.bat b/Tools/Build/build_epoch.bat index 366fff6e..16595382 100644 --- a/Tools/Build/build_epoch.bat +++ b/Tools/Build/build_epoch.bat @@ -81,9 +81,9 @@ echo build=%BUILDNUMBER%; > !serverBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=x\addons\a3_epoch_server -rd /s/q P:\packing\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :settings ) else ( @@ -95,9 +95,9 @@ echo build=%BUILDNUMBER%; > !settingsBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server_settings SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=a3_epoch_server_settings -rd /s/q P:\packing\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -packonly -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -packonly -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :core ) else ( @@ -109,9 +109,9 @@ echo build=%BUILDNUMBER%; > !coreBuildInc! SET SOURCE_PATH=%MAIN_PATH%\Sources\epoch_server_core SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\@EpochHive\addons SET TEMP_PATH=epoch_server_core -rd /s/q P:\packing\!TEMP_PATH! -xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\packing\!TEMP_PATH! -START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\packing\!TEMP_PATH!" -include=!AB_includes_path! +rd /s/q P:\!TEMP_PATH! +xcopy /s/e/y/q/i "!SOURCE_PATH!" P:\!TEMP_PATH! +START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!TEMP_PATH!" "!OUTPUT_PATH!" -clear -prefix="!TEMP_PATH!" -project="P:\!TEMP_PATH!" -include=!AB_includes_path! if '%choice%'=='5' ( call :allmaps ) else ( @@ -125,13 +125,13 @@ SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\MPMissions for /f "tokens=*" %%G in ('dir /b /s /a:d "!SOURCE_PATH!\mpmissions\epoch.*"') do ( SET MISSION=%%~nxG echo building !MISSION! pbo - rd /s/q p:\packing_missions\!MISSION! + rd /s/q p:_missions\!MISSION! rem Moving files into temp folder - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\mpmissions\!MISSION!" P:\packing\!MISSION! - xcopy /s/y/q/i/f "!SOURCE_PATH!\description.ext" P:\packing\!MISSION! - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_code" P:\packing\!MISSION!\epoch_code - xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_config" P:\packing\!MISSION!\epoch_config - START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\packing\!MISSION!" "!OUTPUT_PATH!" -clear -prefix=\ -project=P:\packing\ -include=!AB_includes_path! + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\mpmissions\!MISSION!" P:\!MISSION! + xcopy /s/y/q/i/f "!SOURCE_PATH!\description.ext" P:\!MISSION! + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_code" P:\!MISSION!\epoch_code + xcopy /s/e/y/q/i/d "!SOURCE_PATH!\epoch_config" P:\!MISSION!\epoch_config + START "" /min /WAIT "!TOOLS_PATH!\AddonBuilder.exe" "P:\!MISSION!" "!OUTPUT_PATH!" -clear -prefix=\ -project=P:\ -include=!AB_includes_path! ) goto end :end From 8d407973a04bc998739e0aefcd58d133bade5d83 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 15:08:06 -0500 Subject: [PATCH 21/26] don't use owner for RE targets http://epochmod.com/forum/topic/41959-be-carefull-with-remoteexec-and-owner/#comment-275436 --- .../compile/epoch_bases/EPOCH_server_maintBUILD.sqf | 2 +- .../compile/epoch_group/EPOCH_server_upgradeGroup.sqf | 2 +- .../compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf | 2 +- .../compile/epoch_trading/EPOCH_server_makeTrade.sqf | 4 ++-- .../compile/epoch_trading/EPOCH_server_takeCrypto.sqf | 2 +- .../compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf | 4 ++-- .../compile/epoch_vehicle/EPOCH_server_repairVehicle.sqf | 2 +- Sources/epoch_server/init/server_securityfunctions.sqf | 2 +- Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf | 2 +- 9 files changed, 11 insertions(+), 11 deletions(-) diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_maintBUILD.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_maintBUILD.sqf index 822052bb..c4192878 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_maintBUILD.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_maintBUILD.sqf @@ -81,7 +81,7 @@ if (typeOf _object == "PlotPole_EPOCH") then { _playerCryptoLimit params ["_playerCryptoLimitMax","_playerCryptoLimitMin"]; _current_crypto = ((_current_crypto - _counter) min _playerCryptoLimitMax) max _playerCryptoLimitMin; - _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _player)]; + _current_crypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _current_crypto]; _player setVariable["VARS", _vars]; diff --git a/Sources/epoch_server/compile/epoch_group/EPOCH_server_upgradeGroup.sqf b/Sources/epoch_server/compile/epoch_group/EPOCH_server_upgradeGroup.sqf index 22ca5f50..d20a7db9 100644 --- a/Sources/epoch_server/compile/epoch_group/EPOCH_server_upgradeGroup.sqf +++ b/Sources/epoch_server/compile/epoch_group/EPOCH_server_upgradeGroup.sqf @@ -40,7 +40,7 @@ if ((_response select 0) == 1 && (_response select 1) isEqualType []) then { _playerCryptoLimit params ["_playerCryptoLimitMax","_playerCryptoLimitMin"]; _current_crypto = ((_current_crypto - _upgradePrice) min _playerCryptoLimitMax) max _playerCryptoLimitMin; // send to player - _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _player)]; + _current_crypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _current_crypto]; _player setVariable["VARS", _vars]; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf index 21765b07..7350567c 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf @@ -267,7 +267,7 @@ if (_slot != -1) then { _playerCryptoLimit params ["_playerCryptoLimitMax","_playerCryptoLimitMin"]; _current_crypto = ((_current_cryptoRaw + _tradeTotal) min _playerCryptoLimitMax) max _playerCryptoLimitMin; // send to player - _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _player)]; + _current_crypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _current_crypto]; _player setVariable["VARS", _vars]; }; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeTrade.sqf index a44a59b2..beb43e11 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeTrade.sqf @@ -44,7 +44,7 @@ if ((_player1 getVariable["currentTradeKey", -1]) isEqualto (_player2 getVariabl _current_crypto1 = ((_current_crypto1 - _tradeCryptoOffer1) min _playerCryptoLimitMax) max _playerCryptoLimitMin; // send to player - _current_crypto1 remoteExec ['EPOCH_effectCrypto',(owner _player1)]; + _current_crypto1 remoteExec ['EPOCH_effectCrypto',_player1]; _player1_vars set[_cIndex, _current_crypto1]; _player1 setVariable["VARS", _player1_vars]; }; @@ -64,7 +64,7 @@ if ((_player1 getVariable["currentTradeKey", -1]) isEqualto (_player2 getVariabl _current_crypto1 = ((_current_crypto1 + _tradeCryptoOffer2) min _playerCryptoLimitMax) max _playerCryptoLimitMin; // send to player - _current_crypto1 remoteExec ['EPOCH_effectCrypto',(owner _player1)]; + _current_crypto1 remoteExec ['EPOCH_effectCrypto',_player1]; _player1_vars set[_cIndex, _current_crypto1]; _player1 setVariable["VARS", _player1_vars]; }; diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf index b0e1caab..031efecb 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_takeCrypto.sqf @@ -33,7 +33,7 @@ if (_getCrypto > 0) then { _playerCryptoLimit params ["_playerCryptoLimitMax","_playerCryptoLimitMin"]; _current_crypto = ((_current_crypto + _getCrypto) min _playerCryptoLimitMax) max _playerCryptoLimitMin; // send to player - _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _player)]; + _current_crypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _current_crypto]; _player setVariable["VARS", _vars]; }; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf index ef9fccce..41359fd8 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_lockVehicle.sqf @@ -76,10 +76,10 @@ if (_logic) then { } else { if (_value) then { // send to player - [_vehicle, true] remoteExec ['EPOCH_client_lockVehicle',(owner _vehicle)]; + [_vehicle, true] remoteExec ['EPOCH_client_lockVehicle',_vehicle]; } else { // send to player - [_vehicle, false] remoteExec ['EPOCH_client_lockVehicle',(owner _vehicle)]; + [_vehicle, false] remoteExec ['EPOCH_client_lockVehicle',_vehicle]; }; }; }; diff --git a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_repairVehicle.sqf b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_repairVehicle.sqf index a23a8caa..a7090d8a 100644 --- a/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_repairVehicle.sqf +++ b/Sources/epoch_server/compile/epoch_vehicle/EPOCH_server_repairVehicle.sqf @@ -23,7 +23,7 @@ if ((_value select 0) isEqualTo "ALL") then { if (local _vehicle) then { _vehicle setHitIndex _value; } else { - [_vehicle, _value] remoteExec ['EPOCH_client_repairVehicle',(owner _vehicle)]; + [_vehicle, _value] remoteExec ['EPOCH_client_repairVehicle',_vehicle]; }; }; _vehicle call EPOCH_server_save_vehicle; diff --git a/Sources/epoch_server/init/server_securityfunctions.sqf b/Sources/epoch_server/init/server_securityfunctions.sqf index ea6ab4a5..35516563 100644 --- a/Sources/epoch_server/init/server_securityfunctions.sqf +++ b/Sources/epoch_server/init/server_securityfunctions.sqf @@ -1041,7 +1041,7 @@ call compile ("'"+_skn_doAdminRequest+"' addPublicVariableEventHandler { _cIndex = EPOCH_customVars find 'Crypto'; _vars = _player getVariable['VARS', call EPOCH_defaultVars_SEPXVar]; _current_crypto = (((_vars select _cIndex) + (_content select 1)) min "+str _skn_playerCryptoLimit+") max 0; - _current_crypto remoteExec ['EPOCH_effectCrypto',(owner _player)]; + _current_crypto remoteExec ['EPOCH_effectCrypto',_player]; _vars set[_cIndex, _current_crypto]; _player setVariable['VARS', _vars]; if (_player == _admin) then { diff --git a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf index 54df9f4f..eae1ba3e 100644 --- a/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf +++ b/Sources/epoch_server_settings/EpochEvents/EarthQuake.sqf @@ -17,7 +17,7 @@ if ((count _position) == 2) then{ if ((random 1) > _chance) then { // send earthquake to each player in zone { - [_position] remoteExec ['EPOCH_client_earthQuake',(owner _x)]; + [_position] remoteExec ['EPOCH_client_earthQuake',_x]; }forEach _playersNearEpicenter; // todo configize From cd0c5ee819cb6b73874220314ed5973cdbb09355 Mon Sep 17 00:00:00 2001 From: vbawol Date: Thu, 28 Apr 2016 15:21:54 -0500 Subject: [PATCH 22/26] one more BE kick? --- Server_Install_Pack/sc/BattlEye/scripts.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Server_Install_Pack/sc/BattlEye/scripts.txt b/Server_Install_Pack/sc/BattlEye/scripts.txt index 05a0caa6..d818f8e9 100644 --- a/Server_Install_Pack/sc/BattlEye/scripts.txt +++ b/Server_Install_Pack/sc/BattlEye/scripts.txt @@ -55,7 +55,7 @@ 7 displayRemoveAllEventHandlers !="_display displayRemoveAllEventHandlers _x;" !="if !(isMultiplayer) then { { (findDisplay 46) displayRemoveAllEventHandlers _x } forEach [\"KeyUp\", \"KeyDown\"] };" 7 removeAllMissionEventHandlers 7 ctrlRemoveAllEventHandlers !="(uiNamespace getVariable 'ESP_map') ctrlRemoveAllEventHandlers 'Draw';" !="ctrlAddEventHandler ['MouseButtonDown'" -7 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !"_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler" +7 removeEventHandler !="displayRemoveEventHandler" !="player removeEventHandler ['Fired', 0];" !"_currentTarget removeEventHandler[\"EpeContactStart\", _onContactEH]" !" [_adminVar,objnull];\npublicvariable _adminVar;\nplayer removeeventhandler [\"respawn\",_respawn];" !="_plyr removeEventHandler [\"FiredNear\", _smokeEH];" !="player removeEventHandler [_ehKey, 0];" !="player removeEventHandler [_x, 0];" !="\"CBA_fnc_removeEventHandler\"" !="\\fnc_removeEventHandler" !="\"removeEventHandler" 7 displayRemoveEventHandler !"BIS_fnc_guiMessage_status" !="(findDisplay 46) displayRemoveEventHandler [_key, _id];" 7 switchCamera !="vehicle player switchCamera" !="_antagonist switchCamera \"Internal\";" 7 remoteControl !"fn_moduleRemoteControl.sqf" !="\"BIS_fnc_moduleRemoteControl"\" From ab3f60847bd13a513751f16efe4caf566dbe2fed Mon Sep 17 00:00:00 2001 From: vbawol Date: Fri, 29 Apr 2016 09:42:25 -0500 Subject: [PATCH 23/26] sync changes --- Changelogs/0.3.8.0.txt | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/Changelogs/0.3.8.0.txt b/Changelogs/0.3.8.0.txt index 620d311a..8c513452 100644 --- a/Changelogs/0.3.8.0.txt +++ b/Changelogs/0.3.8.0.txt @@ -43,7 +43,8 @@ [Info] Some AI Scripts Mods may not work with disableRemoteSensors enabled. You can disable with "disableRemoteSensors = false;" in CfgEpochClient. [Info] Removed old .bikey and added new one for 0380. -Build: 436 +Build: 439 +[Added] FastNights Epoch Event. http://epochmod.com/forum/topic/41949-accelerated-time/?do=findComment&comment=275310 [Added] Install batch for all CUP mods and CBA. https://github.com/EpochModTeam/Epoch/tree/master/Tools/Install [Changed] The function EPOCH_fnc_addItemOverflow now supports spawning items and weapons types given a count. [Changed] Moved the secure storage config variable 'returnOnPack' from cfgvehicles config to CfgBaseBuilding. @@ -54,6 +55,14 @@ Build: 436 [Changed] Increased range for vehicle interactions to fix issues with access to larger vehicles. Thanks to Grahame for the report: http://epochmod.com/forum/index.php?/topic/41894-cannot-unlock-large-vehicles/ [Changed] Preloading sapper by spawning one on the map at server start. [Changed] Change to github markdown for credits and license. +[Fixed] suppress loot spawning at main traders. Thanks to Ghostrider-DbD- for the report. http://epochmod.com/forum/topic/41954-loot-spawning-at-traders/ +[Fixed] BE kick since 1.58 hotfix. http://epochmod.com/forum/topic/41961-rscdebugconsole_watch-battleye-kick/?do=findComment&comment=275456 +[Fixed] Use object as input for remoteExec instead of owner. http://epochmod.com/forum/topic/41959-be-carefull-with-remoteexec-and-owner/ +[Fixed] Attempt fix issues with temporary angle and rotation issues with base building. +[Fixed] Check for base kit item is in players inventory before spawning ghost. +[Fixed] Prevent empty group menu display. Thanks to He-Man! for the fix. +[Fixed] Group system marked player as "Dead Player" if moderator status was change while player offline. Thanks to He-Man! for the fix. +[Fixed] Group system invite and kick from group options not working. Thanks to He-Man for the fixes: http://epochmod.com/forum/topic/41893-group-menu-broken-kick-invite-for-admin-not-possible/#comment-275429 [Fixed] Rewrote deleteVehicle.txt BE filter to correct filter syntax to fix false kicks. Thanks to BetterDeadThanZed for the report http://epochmod.com/forum/index.php?/topic/41933-players-kicked-for-moving-safes/#comment-275297 [Fixed] Fixed Arma install batch script not closing after update. [Fixed] Mission loot payout not working. Thanks to @He-Man for the fix: http://epochmod.com/forum/index.php?/topic/41892-payout-trader-mission-broken/ From 3b16eb6561eef01e658cc79962a2f577acebf819 Mon Sep 17 00:00:00 2001 From: vbawol Date: Fri, 29 Apr 2016 09:49:49 -0500 Subject: [PATCH 24/26] fixed typo --- Tools/Build/build_epoch.bat | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Tools/Build/build_epoch.bat b/Tools/Build/build_epoch.bat index 16595382..30c6a925 100644 --- a/Tools/Build/build_epoch.bat +++ b/Tools/Build/build_epoch.bat @@ -125,7 +125,7 @@ SET OUTPUT_PATH=%MAIN_PATH%\Server_Install_Pack\MPMissions for /f "tokens=*" %%G in ('dir /b /s /a:d "!SOURCE_PATH!\mpmissions\epoch.*"') do ( SET MISSION=%%~nxG echo building !MISSION! pbo - rd /s/q p:_missions\!MISSION! + rd /s/q p:\!MISSION! rem Moving files into temp folder xcopy /s/e/y/q/i/d "!SOURCE_PATH!\mpmissions\!MISSION!" P:\!MISSION! xcopy /s/y/q/i/f "!SOURCE_PATH!\description.ext" P:\!MISSION! From e6e302620078ccec0c34c0b8b49cf39841a82616 Mon Sep 17 00:00:00 2001 From: vbawol Date: Fri, 29 Apr 2016 09:54:41 -0500 Subject: [PATCH 25/26] sync with 0.3.8.0439 --- Sources/epoch_code/compile/EPOCH_consumeItem.sqf | 4 ++-- Sources/epoch_code/compile/setup/masterLoop/init.sqf | 2 +- .../compile/epoch_bases/EPOCH_server_loadBuildings.sqf | 5 ++--- .../compile/epoch_bases/EPOCH_server_removeBUILD.sqf | 2 +- .../compile/epoch_bases/EPOCH_server_saveBuilding.sqf | 3 +-- .../compile/epoch_bases/EPOCH_server_simToStatic.sqf | 2 +- .../compile/epoch_bases/EPOCH_server_simulSwap.sqf | 4 ++-- .../compile/epoch_bases/EPOCH_server_unsuppported.sqf | 2 +- .../compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf | 4 ++-- 9 files changed, 13 insertions(+), 15 deletions(-) diff --git a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf index ea753850..4c311b04 100644 --- a/Sources/epoch_code/compile/EPOCH_consumeItem.sqf +++ b/Sources/epoch_code/compile/EPOCH_consumeItem.sqf @@ -117,9 +117,9 @@ switch _interactOption do { closeDialog 0; _buildingJammerRange = ["CfgEpochClient", "buildingJammerRange", 75] call EPOCH_fnc_returnConfigEntryV2; _buildingCountLimit = ["CfgEpochClient", "buildingCountLimit", 200] call EPOCH_fnc_returnConfigEntryV2; - + _partCheck = _item in (magazines player); _buildClass = getText(configfile >> "CfgMagazines" >> _item >> "buildClass"); - if (_buildClass != "") then { + if (_buildClass != "" && _partCheck) then { _isStorage = getNumber(configfile >> "CfgMagazines" >> _item >> "isStorage"); _isOk = if (_isStorage == 1 || _buildClass isKindOf "Secure_Storage_Temp") then { EPOCH_StorageSlotsCount > 0 } else { EPOCH_BuildingSlotCount > 0 }; diff --git a/Sources/epoch_code/compile/setup/masterLoop/init.sqf b/Sources/epoch_code/compile/setup/masterLoop/init.sqf index 0d17cb1d..2aa77345 100644 --- a/Sources/epoch_code/compile/setup/masterLoop/init.sqf +++ b/Sources/epoch_code/compile/setup/masterLoop/init.sqf @@ -57,7 +57,7 @@ _lootBubble = { _lootDist = 30 + _distanceTraveled; _lootLoc = player getRelPos [_lootDist, (random [-180,0,180])]; _objects = nearestObjects[_lootLoc, _lootClasses, 30]; - _jammer = nearestObjects [_lootLoc, ["PlotPole_EPOCH"], _buildingJammerRange]; + _jammer = nearestObjects [_lootLoc, ["PlotPole_EPOCH","ProtectionZone_Invisible_F"], _buildingJammerRange]; if (!(_objects isEqualTo[]) && (_jammer isEqualTo[])) then { _building = selectRandom _objects; if !(_building in EPOCH_LootedBlds) then { diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf index 3282fbf7..93f409d2 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_loadBuildings.sqf @@ -72,8 +72,7 @@ for "_i" from 0 to _this do { // remove old safes on && !(_class isKindOf 'Constructions_lockedstatic_F') if (isClass (configFile >> "CfgVehicles" >> _class) && (_damage < 1) && !(_class isKindOf 'Constructions_lockedstatic_F')) then { - _baseObj = createVehicle [_class, _location, [], 0, "CAN_COLLIDE"]; - + _baseObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _baseObj setposATL _location; _baseObj setVectorDirAndUp _worldspace; @@ -81,7 +80,7 @@ for "_i" from 0 to _this do { _ammoClass = (configFile >> "CfgVehicles" >> _class >> "ammoClass"); if(isText _ammoClass) then { _ammoClass = getText _ammoClass; - _ammoObj = createVehicle [_ammoClass, _location, [], 0, "CAN_COLLIDE"]; + _ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"]; _ammoObj setposATL _location; _ammoObj setVectorDirAndUp _worldspace; _baseObj setVariable ["EPOCH_TRAP_OBJ",_ammoObj]; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf index 4654af0e..3f69e399 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_removeBUILD.sqf @@ -41,7 +41,7 @@ if (_vehSlot != -1 || _storageSlot != "ABORT" || _isTemporary == 1) then{ _gwh = _nearbyWH select 0; // _posWH = getPosATL _gwh; } else { - _gwh = createVehicle["groundWeaponHolder", _posWH, [], 0, "CAN_COLLIDE"]; + _gwh = createVehicle["groundWeaponHolder", [0,0,0], [], 0, "CAN_COLLIDE"]; _gwh setPosATL _posWH; }; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf index 84e1f42f..01053d6d 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_saveBuilding.sqf @@ -41,8 +41,7 @@ if (isText _config) then { _vectorDirAndUp = [vectordir _vehicle, vectorup _vehicle]; deleteVehicle _vehicle; - _storageObj = createVehicle[_staticClass, _vehiclePos, [], 0, "CAN_COLLIDE"]; - + _storageObj = createVehicle[_staticClass, [0,0,0], [], 0, "CAN_COLLIDE"]; _storageObj setposATL _vehiclePos; _storageObj setVectorDirAndUp _vectorDirAndUp; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf index 178be625..76dd0e00 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simToStatic.sqf @@ -25,7 +25,7 @@ _entities = allMissionObjects "Constructions_modular_F"; if (_objSlot != -1) then { _worldspace = [_currentPosition,(vectordir _x),(vectorup _x)]; deleteVehicle _x; - _newObj = createVehicle [_class, (_worldspace select 0), [], 0, "CAN_COLLIDE"]; + _newObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj setVariable ["BUILD_SLOT",_objSlot,true]; _newObj call EPOCH_server_buildingInit; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf index 8d72ebc3..7aad4355 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_simulSwap.sqf @@ -36,7 +36,7 @@ if (_objSlot != -1) then { _worldspace = [getposATL _object,vectordir _object,vectorup _object]; deleteVehicle _object; - _newObj = createVehicle [_class, _worldspace select 0, [], 0, "CAN_COLLIDE"]; + _newObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj setVariable ["BUILD_SLOT",_objSlot,true]; _newObj call EPOCH_server_buildingInit; @@ -53,7 +53,7 @@ if (_objSlot != -1) then { _ammoClass = (configFile >> "CfgVehicles" >> _class >> "ammoClass"); if (isText _ammoClass) then { _ammoClass = getText _ammoClass; - _ammoObj = createVehicle [_ammoClass, _worldspace select 0, [], 0, "CAN_COLLIDE"]; + _ammoObj = createVehicle [_ammoClass, [0,0,0], [], 0, "CAN_COLLIDE"]; _ammoObj setposATL (_worldspace select 0); _ammoObj setVectorDirAndUp [(_worldspace select 1),(_worldspace select 2)]; _newObj setVariable ["EPOCH_TRAP_OBJ",_ammoObj]; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf index 61478a42..46ea0a35 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_unsuppported.sqf @@ -43,7 +43,7 @@ _stableCount = 0; _playerUID = _x getVariable["BUILD_OWNER", "-1"]; _slot = _x getVariable["EPOCH_secureStorage", "-1"]; deleteVehicle _x; - _newObj = createVehicle[_class, _objectPos, [], 0, "CAN_COLLIDE"]; + _newObj = createVehicle[_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj setVariable["BUILD_SLOT", _objSlot, true]; _newObj setposASL _objectPos; _newObj setVectorDirAndUp[_vDir, _vUP]; diff --git a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf index 10b023f9..6c2b37fc 100644 --- a/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf +++ b/Sources/epoch_server/compile/epoch_bases/EPOCH_server_upgradeBUILD.sqf @@ -33,7 +33,7 @@ if (_objSlot != -1) then { deleteVehicle _object; _class = _upgrade select 0; - _newObj = createVehicle [_class, _objectPos, [], 0, "CAN_COLLIDE"]; + _newObj = createVehicle [_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj setVariable ["BUILD_SLOT",_objSlot,true]; _newObj call EPOCH_server_buildingInit; _newObj setposATL _objectPos; @@ -55,7 +55,7 @@ if (_objSlot != -1) then { deleteVehicle _object; _class = _upgrade select 0; - _newObj = createVehicle[_class, (_worldspace select 0), [], 0, "CAN_COLLIDE"]; + _newObj = createVehicle[_class, [0,0,0], [], 0, "CAN_COLLIDE"]; _newObj setposATL(_worldspace select 0); _newObj setVectorDirAndUp[(_worldspace select 1), (_worldspace select 2)]; }; From c2eabf4bcbbc1bab3eaebda3fbe9995a13f27d5b Mon Sep 17 00:00:00 2001 From: vbawol Date: Fri, 29 Apr 2016 09:58:17 -0500 Subject: [PATCH 26/26] 0.3.9.0443 --- .../@epochhive/addons/a3_epoch_server.pbo | Bin 390890 -> 390737 bytes .../addons/a3_epoch_server_settings.pbo | Bin 396995 -> 396987 bytes .../@epochhive/addons/epoch_server_core.pbo | Bin 12329 -> 12329 bytes Server_Install_Pack/MPMissions/epoch.Napf.pbo | Bin 923671 -> 923757 bytes .../mpmissions/epoch.Altis.pbo | Bin 923704 -> 923790 bytes .../mpmissions/epoch.Australia.pbo | Bin 921932 -> 922018 bytes .../mpmissions/epoch.Bootcamp_ACR.pbo | Bin 923019 -> 923105 bytes .../mpmissions/epoch.Bornholm.pbo | Bin 922866 -> 922952 bytes .../mpmissions/epoch.Chernarus.pbo | Bin 922840 -> 922926 bytes .../mpmissions/epoch.Chernarus_Summer.pbo | Bin 922847 -> 922933 bytes .../mpmissions/epoch.Desert_E.pbo | Bin 922992 -> 923078 bytes .../mpmissions/epoch.Esseker.pbo | Bin 922832 -> 922918 bytes .../mpmissions/epoch.Mountains_ACR.pbo | Bin 923259 -> 923345 bytes .../mpmissions/epoch.Porto.pbo | Bin 922983 -> 923069 bytes .../mpmissions/epoch.ProvingGrounds_PMC.pbo | Bin 922994 -> 923080 bytes Server_Install_Pack/mpmissions/epoch.Sara.pbo | Bin 923256 -> 923342 bytes .../mpmissions/epoch.SaraLite.pbo | Bin 923258 -> 923344 bytes .../mpmissions/epoch.Sara_dbe1.pbo | Bin 923261 -> 923347 bytes .../mpmissions/epoch.Shapur_BAF.pbo | Bin 922986 -> 923072 bytes .../mpmissions/epoch.Stratis.pbo | Bin 922840 -> 922926 bytes .../mpmissions/epoch.Takistan.pbo | Bin 922948 -> 923034 bytes Server_Install_Pack/mpmissions/epoch.VR.pbo | Bin 922832 -> 922918 bytes .../mpmissions/epoch.Woodland_ACR.pbo | Bin 923259 -> 923345 bytes .../mpmissions/epoch.Zargabad.pbo | Bin 922916 -> 923002 bytes Server_Install_Pack/mpmissions/epoch.utes.pbo | Bin 922979 -> 923065 bytes Sources/epoch_config/build.hpp | 2 +- Sources/epoch_server/build.hpp | 2 +- Sources/epoch_server_core/build.hpp | 2 +- Sources/epoch_server_settings/build.hpp | 2 +- build.txt | 2 +- 30 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server.pbo index 8bb592d8cc4e4a9cff4c75ce8a9706bdab0041dc..0e0de87d6afad3d14e878df9922c4dac19602236 100644 GIT binary patch delta 804 zcmYk2T}TvB6vvx8Gk0fqc6Qxn)yh>?#?=z3O(WV;H;Rg&P!QY9)?LewWc|p>z6^0K zSPA^VQ%p#fqA!M!dLIUnzBk*iN(l2%j}!L5yE*R9C$;$`Gv29_q&1hIT&rGMnEl$5 zQuGd)a65=94Ib1cqotv+gUAa=k7kz&vd|ivMf?$+lqXoHocXzcaEDEn((G z6aM8X!LTf(C?a0g#5)PPQv1L%ZzQUVj4Zvdo3h&8$w)nS&+q)7=YJl~>u*V47nAyn znK-xcX=wpsR!!*T(cHNwPACXG~u4JlE>JfkP8RSVA9s6p2)hb&f3w4McL zu|zPq`jpDJ|4-K=%}1YiUkd#R;Vkt7VKBf%BwwZ3gBjvB!fowC zab)A58pqM)R3;hfk{&TR`3BlNf*t%B-CHxYwc&K$TeuU^0S8W})jKfDkK5Wk1-q&K~2g}uR$o**I-&B7}fYf$5RR@s{X4*9Tm)2uaF!XAvDv0!aMW>R` ztJ9dHmuyH9Wr3a{Oj~S76P2a@M6uY@SaaG}+g3&uL9~_k2aNIS&^CT*;5UxNLZC+m zFFOhU=T?bjWu7P4~K(2EglN!;WK zt&HK0LufqM#5g&Uw<|k0JI_DKF`-G0?YJHbTl)!rxNN9oShVEO?1np%3#MU<{dr08 M;^U>G$p-DzKRy8})c^nh diff --git a/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo b/Server_Install_Pack/@epochhive/addons/a3_epoch_server_settings.pbo index d698d849cfdc1a3ecf688189c8f3858fd476b73f..16ebf2fa68696d552d33f518db08fa007c8b1f88 100644 GIT binary patch delta 190 zcmX>+S7P^Ei3uSNyGxbBT^JY`l1ejkQuHzk3V>_`*aej31#*+~^U^ZY^^(z~ftn{y z(O^zYRGzp$oFyeuIefDeqdhBYRjhJ&$mBRSEoQDF<;mS_m&GlOjLj?!m8^NWYJnJR znXQS5adRnqdnr335HkTWGZ3?EFJ)(~`Nb4pvHdqA+ZG;?wMqwcqvi>%kv|=`%`YyE{PMiiB8B)0&F!BV*|zYAv@dS%aCmDq R?}$=m9ZSEdsp#UvmH>eTI3WN4 diff --git a/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo b/Server_Install_Pack/@epochhive/addons/epoch_server_core.pbo index c31fd72a3ab53c6789f278b943e6472267455b1a..8d9f34f18309effc2ebe55e6cb6931a1868105a3 100644 GIT binary patch delta 76 zcmV-S0JHz8V5wk`MFzZeBUcRolR*L_v2JSu1HE-4liUJA0W-571Lr9LyR!!^#sLO7 iGBY+gGqck!LID)xn`J0?)W5k{HncwjLk&_+)Hql4V;Zmk delta 76 zcmV-S0JHz8V5wk`MFt96B3BInlR*L_v2JSu0}NXtliUJA0Wz~61Lr9Ly0Zr@#sLO6 iH8C?XG_%t#LID)%zVO*Fram=AL@_h(g`fq9_)^51;u^aE diff --git a/Server_Install_Pack/MPMissions/epoch.Napf.pbo b/Server_Install_Pack/MPMissions/epoch.Napf.pbo index 53f2ef1fbe9de94c307266468f7a33c77e43ede2..0308f6f4a3cc5858d07f6c9e1897411eba5b0853 100644 GIT binary patch delta 425 zcmbQf!Q$-(iwS1T4@#9cT3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!7|Xnt(J{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEac5E6KUPQ+Ms1> T>vg%qo7DYgnN(fd@Lvl69ek1{ delta 381 zcmaF6!D9LbiwS1TR?$iuEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk=6p!u==_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJJ$;yXCinC6g5~G) z`!aI@)xGDR$qJ;y1txEl5Sx6SS7drb1{2@pqXKbY;ps5p%|U_(dDtER-SvrgvLd7C zW<5Cr3FdvJ%9|6-UNVA>^0g>p0~s|}d9s47!sK{sw&@QhaC1&RYALvx)v|#VEcr`t zlDX9M+X1|Mn>X8OF|t`28Jk&}H$S%D{@9*z8jCn5XM90oQHgU#YH~Kvl=#e&)Lezk zys3PQV$-W#7&G`3)YKFZO4=X0Faj~t_Qx*FQ^Of`CeLn_pWId})jo9&GZ3=?G3)lJ zbJ%)Wn2oI!rWamfNuF-Cf{mwr%0f0EW(Q&pAm#*OE+FOxVxH|&7V=Ig6R}qhDyw*3 Tuqb7A#@Q*E6PI0=J!1m^f!UE~ delta 381 zcmeC%Xt861#RM~E!Dyw8mRDKX#QfyKj~h*1$SJ*9pG}*E?N5YKxDFSHKe?JK9L((( z1xtVC%41>$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJ|9diVOz!3v1k2Co z_htSIRQH~LCM%E*7nrn6v!0xR z1T$~6(&j|7myFEcqLe24S`@K?Oqr`ZS;1Cea=bO$=GPXpSixey1SgqGZC+|;!N_J| zYG`a^+5Fgk`(t~?X)Ij4T%4ToNu`-NDU<)76`OXGnP>V17e>43>d%<@+O=F6ftYE# zmMe36_~duh^6B%P>yRLS~)OurkC|h>A^6z>8HerqB diff --git a/Server_Install_Pack/mpmissions/epoch.Australia.pbo b/Server_Install_Pack/mpmissions/epoch.Australia.pbo index 4fb0818a6b21ea4a191288923fa6855a80d88b70..3480790ad42d464a6ccc6d9458c9b0f5a3a3b36d 100644 GIT binary patch delta 425 zcmX@J$YRlAiwS1TM@p49T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6bXnt(J{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaY91FVgZiJ2`0T T|KkcvWsds0`!P?*N#+Isn!1o& delta 381 zcmZ3q*y7A0iwS1TV$n()Ew8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk=2r1`P^_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omKn$f%v0C2C6jsO4v diff --git a/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Bootcamp_ACR.pbo index 8943410e903d542be75b129ca4012b9338cceab0..a9d2be671d9d8233331addc4c85bfd7e622b3249 100644 GIT binary patch delta 425 zcmeBPZSiom#RN0v6Q#-$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJJ$;yXCinC6g5~G) z`!aI@)xGDR$qJ;y1txEl5Sx6SS7drb1{2@pqXKbY;ps5p%|U_(dDtER-SvrgvLd7C zW<5Cr3FdvJ%9|6-UNVA>^0g>p0~s|}d9s47!sK{sw&@QhaC1&RYALvx)v|#VEcr`t zlDX9M+X1|Mn>X8OF|t`28JioJG(WcA{@9*z8jCn5XM90oQHgU#YH~Kvl=#e&)Lezk zys3PQV$-W#7&G`3)YKFZO4=X0Faj~t_Qx*FQ^Of`CeLn_pWId})jo9&GZ3=?G3)lJ zbJ%)Wn2oI!rWamfNuF-Cf{mwr%0f0EW(Q&pAm#*OE+FOxVxH|&7V$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJ|9diVOz!3v1k2Co z_htSIRQH~LCM%E*7nrn6v!0xR z1T$~6(&j|7myFEcqLe24S`@K?Oqr`ZS;1Cea=bO$=GPXpSixey1SgqGZC+|;!N_J| zYG`b1(frtc`(t~?X)Ij4T%4ToNu`-NDU<)76`OXGnP>V17e>43>d%<@+O=F6ftYE# zmMe36_~dub@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6bZ+>jQ{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaden7LjuCv^nH_ SHF>64Ms3DVK6O*uPh0>U2#-?$ delta 381 zcmX@H%Hq>XiwS1T^3h5gEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<(xcRaD_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omGyG014ocL;wH) diff --git a/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo b/Server_Install_Pack/mpmissions/epoch.Chernarus.pbo index 5e9b0f07cb4f83782a36864ead90b939521c86c1..16ab8cdf334204a1f0aa11456160d301cfacc3af 100644 GIT binary patch delta 425 zcmcby(qi2ziwS1T=S!70T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6fY<_IN{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaWvP7CEt7a7)!E S9p$AphJC$PMCA&D{h|Qf>W~ir delta 381 zcmZ3t%HqaKiwS1T%F#+2Ew8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<(y!o;H_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omiwS1Tmr9j4T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6fX?|?K{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaWvW7P%Yw$mC6B_#2Sw delta 381 zcmdnG%HsY?iwS1T>d{IYEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<}u=%n5_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ nmv diff --git a/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo b/Server_Install_Pack/mpmissions/epoch.Desert_E.pbo index dac6c201f2fb97e32404ce6d181e8a5eed052079..f4cd85b3fec1d5542202b5e0d6106722e058f95c 100644 GIT binary patch delta 425 zcmeyc%Hr5+iwS1T*GiQ)T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!7~Xnt(J{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaW{=EHabT;N8wb T^)w5m(=)4oO#J5@%ESo(MmLb! delta 381 zcmX@M+Tz11iwS1TI?+lSEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<}togD1_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omviwS1TH%pZ_T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6dY<_IN{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEacTF7WvN3qZnIr TVsT%aVqg5sz6+a-1^)s7$nTJv delta 381 zcmZ3s%HqOGiwS1T2GL3zEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<>p!u==_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ nmro*|F2 diff --git a/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo b/Server_Install_Pack/mpmissions/epoch.Mountains_ACR.pbo index 4c76a33b37eee3045aaa2d6c3ec3a8e9ead18234..4fc3417121efb867faff364098983fad762f52c0 100644 GIT binary patch delta 424 zcmeyp#^T~yiwS1TcS@BvT3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~>6GB!7Aeq_J>kv-#d7I99__=3cu66cK6b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkH4G1GP} zSLXKc$?xXLw7;6e48$xz%)0&69JW3dW+Q8b>4jTZoTnG8VAE-TwU7;n*@2h?h&h3n n3y8Uam}mQ|g}j$bL~gR}a0;EAbmv$9j1_JR+^6i$-V_4>-m{S^ diff --git a/Server_Install_Pack/mpmissions/epoch.Porto.pbo b/Server_Install_Pack/mpmissions/epoch.Porto.pbo index 5daf6c307fd396d3449237ab3f1aeacaced23f60..59cf971cc98e26e006dc4a14c8a8948e26661283 100644 GIT binary patch delta 425 zcmaF9%3|+oiwS1Tk4u#|T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6hY<_IN{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEacr^EaEC*yXD5) TiL5bO#O7A5NqE+<>RKlNJlm2| delta 381 zcmdnH+T!^tiwS1TcF{^3Ew8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk=6r1`P^_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ nm diff --git a/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo b/Server_Install_Pack/mpmissions/epoch.ProvingGrounds_PMC.pbo index e2b501d482a0ed5b35b06d71b65a5d7247fac71b..881886bd6fd904efe44850275ab12c315aa13acb 100644 GIT binary patch delta 425 zcmeyg%HqUoiwS1T&r6jzT3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6hX?|?K{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaW{^ETW*n6p|Lq TexUu{f|}`eOOzM?7IgyvQ^Al; delta 381 zcmX@H+TznHiwS1T&e2L6Ew8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk=6viY(7_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omb@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!81Xnt(J{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEabgVA~Hi(Dd>0K TOV_>MkGwgj2Mo=HU#|iHnnRO0 delta 381 zcmX@N*5bz+iwS1Tp3zDhEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<%wE409_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ nmb@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6cY<_IN{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEabgZBGT~o-wV$` T;begm^Y^X3me2IXSFjfVr`(dG delta 381 zcmcbx*5cP1iwS1Te$h%BEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<%viY(7_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ nmb@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6cZGLRO{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEabgfBI3*J5bem- TroZ$4ymRcbD+~8jZBzsRkzSC1 delta 381 zcmcb-*5dCPiwS1TLD5PZEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOk<{r1`P^_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om*CjbBd diff --git a/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo b/Server_Install_Pack/mpmissions/epoch.Shapur_BAF.pbo index cbd1c52c9542efa29c2d3b9127a5fe36053b8126..39e8328eee22c1c73020935cee059a0b13676f10 100644 GIT binary patch delta 424 zcmaF0%HqIkiwS1TUrLoXT3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~>6GB!79eq_J>kv-#d7I99__=3cu66cK6b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkH4G1GP} zSLXKc$?xXLw7;6e48$xz%)0&69JW3dW+Q8b>4jTZoTnG8VAE-TwU7;n*@2h?h&h3n m3y8Uam}mQ|g}jG~MNT#eR`x~gFlyKpQGGL|@t@|hz&HTV0+2=k diff --git a/Server_Install_Pack/mpmissions/epoch.Stratis.pbo b/Server_Install_Pack/mpmissions/epoch.Stratis.pbo index 90256041c5c5bf38f0895b40add8fe1d3317bd51..50904dde7bf5052de985026f2a4d8c46995824de 100644 GIT binary patch delta 424 zcmcby(qi2ziwS1TKT4H1T3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~>6GB!7Deq_J>kv-#d7I99__=3cu66cK6b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDB`H}thNA`@H4G1GP} zSLXKc$?xXLw7;6e48$xz%)0&69JW3dW+Q8b>4jTZoTnG8VAE-TwU7;n*@2h?h&h3n m3y8Uam}mQ|g}esEBH0Th-*6efJRIY2pZCP<3xdpb@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!6gZGLRO{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEaaV2EOOXO;{U~E T)mzb@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDhy!o;H_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ omEeEirstRAs@L5G0Nv1$i~s-t diff --git a/Server_Install_Pack/mpmissions/epoch.VR.pbo b/Server_Install_Pack/mpmissions/epoch.VR.pbo index 62a949723950b025be2f708a4c8957ae7259acd1..b95369db6ea24bc09a1bf8bd1c1893624e3f51c3 100644 GIT binary patch delta 425 zcmcbx(qh>viwS1T%w@_OEw8e&oi0%hXE2_;kW+fIKAScR8)uPnxDFSHKe?JK9L((( z1xtVC%41>$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJJ$;yXCinC6g5~G) z`!aI@)xGDR$qJ;y1txEl5Sx6SS7drb1{2@pqXKbY;ps5p%|U_(dDtER-SvrgvLd7C zW<5Cr3FdvJ%9|6-UNVA>^0g>p0~s|}d9s47!sK{sw&@QhaC1&RYALvx)v|#VEcr`t zlDX9M+X1|Mn>X8OF|t`28Jn9KH$S%D{@9*z8jCn5XM90oQHgU#YH~Kvl=#e&)Lezk zys3PQV$-W#7&G`3)YKFZO4=X0Faj~t_Qx*FQ^Of`CeLn_pWId})jo9&GZ3=?G3)lJ zbJ%)Wn2oI!rWamfNuF-Cf{mwr%0f0EW(Q&pAm#*OE+FOxVxH|&7V>Hoi!3sjxk%>R T_t(41GQ3`Bt>od~_+JbFh((a6 delta 381 zcmZ3s%HqOGiwS1T>Cs9XEw8e&iTTNeA2*u3kW+fIKAScR+n)%fa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDxwE409_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om4BM2@589&5LXO$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJJ$;yXCinC6g5~G) z`!aI@)xGDR$qJ;y1txEl5Sx6SS7drb1{2@pqXKbY;ps5p%|U_(dDtER-SvrgvLd7C zW<5Cr3FdvJ%9|6-UNVA>^0g>p0~s|}d9s47!sK{sw&@QhaC1&RYALvx)v|#VEcr`t zlDX9M+X1|Mn>X8OF|t`28JnA#H9xlB{@9*z8jCn5XM90oQHgU#YH~Kvl=#e&)Lezk zys3PQV$-W#7&G`3)YKFZO4=X0Faj~t_Qx*FQ^Of`CeLn_pWId})jo9&GZ3=?G3)lJ zbJ%)Wn2oI!rWamfNuF-Cf{mwr%0f0EW(Q&pAm#*OE+FOxVxH|&7V=&$5s78jPx!Iu TtTKN^b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDpp!u==_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om$Nn1|-$gj0|0&gB8Gmtx(k>3NXEQMq8MIOz`y8PVJJ$;yXCinC6g5~G) z`!aI@)xGDR$qJ;y1txEl5Sx6SS7drb1{2@pqXKbY;ps5p%|U_(dDtER-SvrgvLd7C zW<5Cr3FdvJ%9|6-UNVA>^0g>p0~s|}d9s47!sK{sw&@QhaC1&RYALvx)v|#VEcr`t zlDX9M+X1|Mn>X8OF|t`28Jn9MG(WcA{@9*z8jCn5XM90oQHgU#YH~Kvl=#e&)Lezk zys3PQV$-W#7&G`3)YKFZO4=X0Faj~t_Qx*FQ^Of`CeLn_pWId})jo9&GZ3=?G3)lJ zbJ%)Wn2oI!rWamfNuF-Cf{mwr%0f0EW(Q&pAm#*OE+FOxVxH|&7V_2b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDpr1`P^_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om0R>&08wL*HUIzs diff --git a/Server_Install_Pack/mpmissions/epoch.utes.pbo b/Server_Install_Pack/mpmissions/epoch.utes.pbo index 727e491e188d2653a170892fffdb95f74f3a823e..f40919805f350045bc5ac0afc5f4dd62ee7cb30e 100644 GIT binary patch delta 425 zcmaF7%3|kgiwS1T|4WrOT3%&kJ6)n2&R{%wA*b|aeKu_tHqIjDa2+lXe{wZfIGEcn z3YPxNmB+*ilD3@ukzZ@`1l~MGW*~PmBfke&SqjJGi#(c>b@{ocd-^c(Oz!9B13?{zGM+M@*!qZ{Gn}Y-o@~}Msy6Y3~WJN~N z&3bYM63qKbl{Y7vy<`L%OY||f1;O3ls)KYLWt7QW#Sn`+P zBy*|hw*z?jHgC4mVq~*4GB!80Y<_IN{jojcG!}7A&iI1Fq7vtf)Z}cSDe;*lsksW7 zc~kiq#im!gFlO*6sHrI+l(au~VFY5P?T=lUr-n1?OrG5;Ke??|s(tDlW*}w(V%F_b z=dks%FdJJdOfS5|l04mN1shNMl!a_S%nrmHK+FlmTtLhX#5~)lEacr?EMjMK^^WN} TyG^wkVrMOuMip@jTFn6fT>y|Q delta 381 zcmdnF+T!sliwS1T$b@{oc|Mz6#nB2`T2$rAE z@5}rbsO~-gOjaNrE--ncgxKWsydsmg3*>-Bro%)w2MHeJVe_2J8h({`vLd7CW<5Cr z31;4CrOkDxu=%n5_Q&>&(^$B8xi~rFlS(slQYQaDD>m&WGtcx3E{t~5)t@o*wQIRD0x{Ee zEm!9D@X7Dy$+W+k!wkeMK+L-R)f~1y7G@)Bh3SP`Se&O9tYFh=f3=Veh}nUd1Bf|+ om