0.3.4 part 1

This commit is contained in:
vbawol 2015-10-02 09:27:56 -05:00
parent 1c60344478
commit df21a79adf
20 changed files with 112 additions and 69 deletions

View File

@ -1,14 +1,26 @@
Client:
[Added] New secure storage device: Safe
[Added] New crafting UI and system by Raymix.
[Added] New secure storage device: Safe
[Added] Totally new crafting system and UI.
[Added] Epoch variant of the unarmed Strider vehicle. (I_MRAP_03_EPOCH)
[Added] Melee weapons: a Broad Sword and Fishing Pole.
[Added] Halloween Clown mask.
[Fixed] Reduce client fps lag when first joining the server.
[Changed] Wolf/Pumpkin masks and Meeps Candy re-added to loot tables for Halloween.
[Fixed] Being unable to removal of solar generator.
[Changed] Removed debug hint text for 3d rotation of objects.
[Changed] Re-enable Move button.
[Changed] Halloween Wolf/Pumpkin masks and Meeps Candy re-added to loot tables.
Server:
[Added] Example code: Epoch Event provides an example on how to broadcast a message to all players using BE.
[Added] 'CfgTraderLimits' config can control stock limit per trader per item. Default is 100 per item class per trader.
[Added] storedVehicleLimit variable in CfgEpochServer can now control the total max allowed vehicles on traders. Default limit is 20.
[Fixed] Issue with trading vehicles that caused the trader data not to save or to save to the wrong slot.
[Fixed] Added missing prices for female vests.
[Fixed] Error Generic error in expression in EPOCH_server_repairVehicle.
[Changed] Use new sort command instead of BIS_fncSortBy.
[Changed] Use new worldSize command as default if maps worldSize setting in CfgEpoch does not exist.
[Info] Removed old .bikey and added new one for 0331.
[Info] The source code for the a3_epoch_server.pbo is now on the GitHub.
MORE TBA

View File

@ -35,7 +35,7 @@
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_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 createDisplay !="createDisplay \"rmx_dynamenu\";"
7 createDisplay !="createDisplay \"rmx_dynamenu\";" !="_parent createdisplay _displayClass;"
7 deleteMarker
7 setMarker
7 createMarker
@ -50,7 +50,7 @@
7 addEventHandler !"displayAddEventHandler" !"ctrlAddEventHandler" !"FiredNear" !"EpeContactStart" !"InventoryClosed" !"GetOut" !"InventoryOpened" !"local" !"Respawn" !"Put" !"Take" !"Fired" !"Killed" !" [\"PostReset\",{BIS_EnginePPReset = true;} ];" !"_logic addeventhandler [\n\"local\""
7 displayAddEventHandler !"[_display] call _fnc_animate;" !"tVersion select 4) == \"Development\") then" !"_display displayaddeventhandler\n[\n\"mousemoving\"," !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"true\"];" !"(findDisplay 46) displayAddEventHandler [\"KeyDown\",\"_this call EPOCH_KeyDown\"];" !="_addCase = _display46 displayAddEventHandler ['KeyDown',{_this call EPOCH_KeyDown;}];" !"_display displayaddeventhandler [\"unload\",\"uinamespace setvariable ['BIS_fnc_guiMess" !="findDisplay -1337 displayAddEventHandler ['Unload'" !="_display displayaddeventhandler [\"keydown\",\"with uinamespace do {['keyDown'"
7 ctrlAddEventHandler !"rCfg >> \"refreshDelay\");" !" [\n\"draw\"," !" [\"buttonclick\"," !="(uiNamespace getVariable 'ESP_map') ctrlAddEventHandler['Draw', '_esp_targets = EPOCH_ESPMAP_TARGETS;" !="ctrlAddEventHandler ['MouseButtonDown'" !="(_display displayctrl _idc) ctrlAddEventHandler [\"LBSelChanged\"," !="_ctrl ctrlSetEventHandler [\"mouseEnter\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseExit\", (format [\"_c = _this select 0;" !="_ctrl ctrlSetEventHandler [\"mouseButtonDown\", (format [\"call %1;\",(_buttonSettings select _e select 2)])];"
7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_display46 displayRemoveAllEventHandlers 'KeyDown';"
7 removeAllEventHandlers !="ctrlRemoveAllEventHandlers" !="_vehicle removeAllEventHandlers \"GetOut\";" !="_sapper removeAllEventHandlers \"Hit\";\n_sapper removeAllEventHandlers \"FiredNear\";" !="_unit removeAllEventHandlers \"Hit\";\n_unit removeAllEventHandlers \"FiredNear\";" !="_display46 displayRemoveAllEventHandlers '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];"

View File

@ -528,12 +528,12 @@ class FSM
"" \n
" };" \n
"" \n
"deleteMarkerLocal _mkrName4;" \n
"_mkrName4 = format[""axeD%1"", _unit];" \n
"_mkr2 = createMarkerLocal [_mkrName4, _nextPos];" \n
"_mkrName4 setMarkerShapeLocal ""ICON"";" \n
"_mkrName4 setMarkerTypeLocal ""mil_dot"";" \n
"_mkrName4 setMarkerColorLocal ""COLORYELLOW"";" \n
"//deleteMarkerLocal _mkrName4;" \n
"//_mkrName4 = format[""axeD%1"", _unit];" \n
"//_mkr2 = createMarkerLocal [_mkrName4, _nextPos];" \n
"//_mkrName4 setMarkerShapeLocal ""ICON"";" \n
"//_mkrName4 setMarkerTypeLocal ""mil_dot"";" \n
"//_mkrName4 setMarkerColorLocal ""COLORYELLOW"";" \n
"};" \n
"" \n
"" \n

View File

@ -1,8 +1,7 @@
private [];
private ["_dt","_object","_objType","_dialog","_handled","_config","_upgrade","_remove"];
if !(isNil "EPOCH_simulSwap_Lock") exitWith{ false };
if !(isNull EPOCH_Target) exitWith{ false };
if (EPOCH_playerEnergy <= 0) exitWith{ _dt = ["<t size='0.8' shadow='0' color='#99ffffff'>Need energy</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext; false };
_object = _this;
@ -12,17 +11,9 @@ if ((player distance _object) > 9) exitWith { false };
_objType = typeOf _object;
_isFoundation = _object isKindOf "Constructions_foundation_F";
_isJammer = _object isKindOf "PlotPole_EPOCH";
_isStorage = _object isKindOf "Buildable_Storage";
if (!(_object isKindOf "ThingX") && !(_object isKindOf "Constructions_static_F") && !_isFoundation && !_isStorage && !_isJammer) exitWith{ false };
_dialog = "InteractBaseBuilding";
_handled = createdialog _dialog;
// disable actions if no upgrade options
_config = 'CfgBaseBuilding' call EPOCH_returnConfig;
_upgrade = getArray(_config >> _objType >> "upgradeBuilding");
@ -33,9 +24,8 @@ _remove = getArray(_config >> _objType >> "removeParts");
if (_remove isEqualTo[]) then{
ctrlEnable[2401, false];
};
// disable Move option if foundation or jammer
if (_isFoundation || _isJammer || _isStorage) then{
// disable Move option if not SIM
if !(_object isKindOf "ThingX") then{
ctrlEnable[2402, false];
};

View File

@ -145,8 +145,8 @@ if (vehicle player == player) then {
case EPOCH_keysBuildMovBak: { EPOCH_Y_OFFSET = (EPOCH_Y_OFFSET - 0.1) max 2; _handled = true };
case EPOCH_keysBuildMovL: { EPOCH_X_OFFSET = (EPOCH_X_OFFSET + 0.1) min 5; _handled = true };
case EPOCH_keysBuildMovR: { EPOCH_X_OFFSET = (EPOCH_X_OFFSET - 0.1) max - 5; _handled = true };
case EPOCH_keysBuildRotL: { EPOCH_buildDirection = (EPOCH_buildDirection + 1) min 360; EPOCH_space = true; hintsilent str(EPOCH_buildDirection); _handled = true };
case EPOCH_keysBuildRotR: { EPOCH_buildDirection = (EPOCH_buildDirection - 1) max 0; EPOCH_space = true; hintsilent str(EPOCH_buildDirection); _handled = true };
case EPOCH_keysBuildRotL: { EPOCH_buildDirection = (EPOCH_buildDirection + 1) min 360; EPOCH_space = true; _handled = true };
case EPOCH_keysBuildRotR: { EPOCH_buildDirection = (EPOCH_buildDirection - 1) max 0; EPOCH_space = true; _handled = true };
case EPOCH_keysBuildIt: { cursorTarget call EPOCH_fnc_SelectTarget; _handled = true };
};
};

View File

@ -22,8 +22,8 @@ if !(isNull EPOCH_lastNPCtradeTarget) then {
// find item and get current qty
_qtyIndex = _itemClasses find _uiItem;
if (_qtyIndex != -1) then {
// TODO allow config here
if (_itemQtys select _qtyIndex >= 100) then {
_limit = ["CfgTraderLimits", _uiItem, 100] call EPOCH_fnc_returnConfigEntryV2;
if (_itemQtys select _qtyIndex >= _limit) then{
_stockLimit = true;
_allowAdd = false;
};

View File

@ -2249,7 +2249,6 @@ class InteractBaseBuilding
action = "closeDialog 0";
};
/*
class RscButtonMenu_2402 : RscButtonMenu
{
idc = 2402;
@ -2260,7 +2259,7 @@ class InteractBaseBuilding
h = 0.08;
action = "closeDialog 0; cursorTarget call EPOCH_fnc_SelectTargetBuild;";
};
*/
};
};
/*

View File

@ -51,9 +51,9 @@ if !(_usedIn isEqualTo []) then {
_ingredientCTRL lbSetColor [_idx,(rmx_var_crafting_colorScheme select 9 select 1)];
{
if !(typeName _x isEqualTo typeName []) then {_x = [_x,1]};
_data = ([(_cfg >> (_x select 0))] call EPOCH_crafting_getConfig) select 0;
_idx = _ingredientCTRL lbAdd format ["%2 x %1",(_data select 1),_x select 1];
//if !(typeName _x isEqualTo typeName []) then {_x = [_x,1]};
_data = ([(_cfg >> _x)] call EPOCH_crafting_getConfig) select 0;
_idx = _ingredientCTRL lbAdd format ["%1",(_data select 1)];
_ingredientCTRL lbSetPictureRight [_idx,(_data select 2)];
_ingredientCTRL lbSetData [_idx, (_data select 1)];
_ingredientCTRL lbSetColor [_idx,(rmx_var_crafting_colorScheme select 14)];

View File

@ -31,7 +31,7 @@ if (rmx_var_craftQTYOut isEqualTo 0) exitWith {closeDialog 0;};
_itemCraftTime = _craftItem select 6;
_itemRecipeItems = _craftItem select 7;
_itemType = _craftItem select 13;
for "_c" from 1 to rmx_var_craftQTYOut do {
false call _fnc_UILock;
_hasNearby = false call EPOCH_crafting_checkResources;
@ -39,13 +39,15 @@ if (rmx_var_craftQTYOut isEqualTo 0) exitWith {closeDialog 0;};
_canCraft = [format ["Crafting: %1, %2 seconds",_itemName,_itemCraftTime],_itemCraftTime] call EPOCH_crafting_progress;
if !(_canCraft && _hasNearby && rmx_var_craftingLOOPS) exitWith {}; //{hint "Crafting canceled";};
{
if !(typeName _x isEqualTo typeName []) then {_x = [_x,1]};
for "_r" from 1 to (_x select 1) do {
player removeItem (_x select 0); //removes any type of item, but only if not in special slots
};
} forEach _itemRecipeItems;
if (player canAdd _item) then { //Puts in a weaponholder nearby if can't add to inventory
{
for "_r" from 1 to (_x select 1) do {
player removeItem (_x select 0); //removes any type of item, but only if not in special slots
};
} forEach _itemRecipeItems;
player addItem _item; //adds any type of item, but does not assign
@ -64,9 +66,9 @@ if (rmx_var_craftQTYOut isEqualTo 0) exitWith {closeDialog 0;};
};
_wh addItemCargoGlobal [_item,1];
};
call EPOCH_crafting_LB_defaults;
call EPOCH_crafting_LB_click;
};
call EPOCH_crafting_LB_defaults;
true call _fnc_UILock;
rmx_var_craftInProgress = false;
};

View File

@ -94,6 +94,7 @@ rmx_var_crafting_PP_DB = ["dynamicBlur",11] call epoch_postProcessCreate;
_searchTextTEMP = ctrlText _searchCTRL;
call EPOCH_crafting_LB_defaults;
(rmx_var_crafting_ctrl_main select 0) lbSetCurSel 0;
ctrlSetFocus _searchCTRL;
};
};
};

View File

@ -19,6 +19,11 @@ _layer = str _idc call BIS_fnc_rscLayer;
_layer cutRsc ["rmx_CraftingProgress","PLAIN",0,false];
_display = uiNamespace getVariable "rmx_var_CraftingProgressDisplay";
_ctrl3 = _display ctrlCreate ["RscText",_idc + 3];
_ctrl3 ctrlSetPosition [_posX,_posY,_w,_h];
_ctrl3 ctrlCommit 0;
_ctrl3 ctrlSetBackgroundColor (rmx_var_crafting_colorScheme select 21);
_ctrl = _display ctrlCreate ["RscProgress",_idc + 1];
_ctrl ctrlSetPosition [_posX,_posY,_w,_h];
_ctrl ctrlCommit 0;
@ -29,11 +34,6 @@ _ctrl2 ctrlSetPosition [_posX + _w / 2 - (count _txt / 2) / 100,_posY + 0.005,_w
_ctrl2 ctrlCommit 0;
_ctrl2 ctrlSetStructuredText parseText format ["<t shadow='1'><t color='%2'>%1</t>",_txt,_stColor];
_ctrl3 = _display ctrlCreate ["RscText",_idc + 3];
_ctrl3 ctrlSetPosition [_posX,_posY,_w,_h];
_ctrl3 ctrlCommit 0;
_ctrl3 ctrlSetBackgroundColor (rmx_var_crafting_colorScheme select 21);
_tick = diag_tickTime;
while {((diag_tickTime - _tick) < _time && rmx_var_craftingLOOPS) } do {

View File

@ -488,6 +488,14 @@ class CfgPricing
class U_C_Driver_1_yellow {price = 5;};
class U_C_Driver_1_orange {price = 5;};
class V_F0_EPOCH { price = 5; };
class V_F1_EPOCH { price = 5; };
class V_F2_EPOCH { price = 5; };
class V_F3_EPOCH { price = 5; };
class V_F4_EPOCH { price = 5; };
class V_F5_EPOCH { price = 5; };
class V_1_EPOCH {price = 5;};
class V_2_EPOCH {price = 5;};
class V_3_EPOCH {price = 5;};

View File

@ -2493,7 +2493,7 @@ class CfgVehicles
{
scope = 2;
model = "\x\addons\a3_epoch_assets\models\cGarage_SIM.p3d";
displayName = "Cinder Block Wall";
displayName = "Cinder Block Garage";
simulClass = "CinderWallGarage_SIM_EPOCH";
staticClass = "CinderWallGarage_EPOCH";
GhostPreview = "CinderWallGarage_EPOCH";
@ -3440,7 +3440,7 @@ class CfgVehicles
ladders[] = {};
};
class SolarGen_EPOCH : NonStrategic
class SolarGen_EPOCH : Constructions_static_F
{
mapSize = 1.27;
author = "Epoch: SteamPunkGears";
@ -3705,7 +3705,7 @@ class CfgVehicles
{
scope = 2;
model = "\x\addons\a3_epoch_assets\models\cGarage.p3d";
displayName = "Cinder Block Wall";
displayName = "Cinder Block Garage";
simulClass = "CinderWallGarage_SIM_EPOCH";
staticClass = "CinderWallGarage_EPOCH";
GhostPreview = "CinderWallGarage_EPOCH";
@ -4961,7 +4961,7 @@ class CfgVehicles
class SafeProxy_EPOCH : Secure_Storage_Proxy
{
scope = 2;
model = "\A3\Weapons_f\dummyweapon.p3d";
model = "\x\addons\a3_epoch_assets_1\models\safe_proxy.p3d";
displayName = "Safe WH";
isGround = 0;
showWeaponCargo = 0;

View File

@ -1116,7 +1116,7 @@ class CfgWeapons
scope = 2;
weaponPoolAvailable = 1;
displayName = "Clown Mask";
picture = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\gear_clownmask_ca.paa";
picture = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\clown\gear_clownmask_ca.paa";
model = "\x\addons\a3_epoch_assets_3\CfgVehicles\Characters\clown.p3d";
class ItemInfo : HeadgearItem
{

View File

@ -34,7 +34,7 @@ class CfgCrafting
{"Recipes", {0,0,0,0.8}},
{"Ingredients", {0,0,0,0.8}},
{"Preview", {1,0.6,0.01,0.8}},
{"Preview", {0.76,0.5,0.07,0.8}},
{"Resources", {0,0,0,0.8}},
{"Description", {0,0,0,0.8}},
{" -- Requires -- ", {0.99,0.53,0.03,1}},
@ -44,18 +44,18 @@ class CfgCrafting
{0,1,0,1}, //Ingredients LB, Has items on player
{1,1,0,1}, //Ingredients LB, Has items nearby
{1,0,0,1}, //Ingredients LB, Missing items
{0.5,0.5,0.5,1},//Ingredients LB, Items used in...
{1,1,1,1}, //Ingredients LB, Items used in...
{0,0,0,0.1}, //Background color
{0,0,0,1}, //Frame color
{0,0,0,0}, //description ST
{0,0,0,0}, //Recipe LB
{0,0,0,0}, //Ingredients LB
{1,1,1,1}, //progress bar
{0,0,0,0.3}, //progress background
"#FC170F", //progress text HTML color
{0.76,0.5,0.07,0.8}, //progress bar
{0,0,0,0.3}, //progress background
"#FFFFFF", //progress text HTML color
{1,0.6,0.01,1} //QTY color
{1,0.6,0.01,1} //QTY color
};
/** --------- Don't edit --------- **/
@ -600,6 +600,7 @@ class CfgCrafting
previewPosition[] = {0.797837,1,0.288258};
previewScale = 0.2;
previewVector = 1;
craftTime = 2;
};
class KitFirePlace : Kit
{

View File

@ -12,6 +12,9 @@ _staticTradersArray = getArray(configFile >> "CfgEpoch" >> worldName >> "staticN
_staticTradersArrCount = count _staticTradersArray;
_aiTables = ["U_OG_leader", "U_C_Poloshirt_stripped", "U_C_Poloshirt_blue", "U_C_Poloshirt_burgundy", "U_C_Poloshirt_tricolour", "U_C_Poloshirt_salmon", "U_C_Poloshirt_redwhite", "U_C_Poor_1", "U_C_WorkerCoveralls", "U_C_Journalist", "U_C_Scientist", "U_OrestesBody"];
_serverSettingsConfig = configFile >> "CfgEpochServer";
_storedVehicleLimit = [_serverSettingsConfig, "storedVehicleLimit", 20] call EPOCH_fnc_returnConfigEntry;
EPOCH_storedVehicleCount = 0;
for "_i" from 0 to _this do {
@ -54,12 +57,37 @@ for "_i" from 0 to _this do {
_arr = [[], []];
};
_toBeRemoved = [];
// count vehicles
{
_limit = ["CfgTraderLimits", _x, 100] call EPOCH_fnc_returnConfigEntryV2;
if (_limit == 0) then {
// mark for removal since limit is 0
_toBeRemoved pushBack _forEachIndex;
} else {
// lower to limit current qty is over limit
_currentStock = (_arr select 1) select _forEachIndex;
if (_currentStock > _limit) then {
(_arr select 1) set [_forEachIndex,_limit];
_currentStock = _limit;
};
};
if (_x isKindOf "Air" || _x isKindOf "Ship" || _x isKindOf "LandVehicle" || _x isKindOf "Tank") then {
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + ((_arr select 1) select _forEachIndex);
if (EPOCH_storedVehicleCount <= _storedVehicleLimit) then {
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + _currentStock;
} else {
_toBeRemoved pushBack _forEachIndex;
};
};
} forEach (_arr select 0);
// remove any marked for removal
{
(_arr select 0) deleteAt _x;
(_arr select 1) deleteAt _x
} forEach _toBeRemoved;
};
if (_arr isEqualTo [[], []]) then{

View File

@ -12,10 +12,10 @@ if (getNumber(configFile >> "CfgVehicles" >> _type >> "isSecureStorage") == 1) t
_parentID = _unit getVariable ["EPOCH_secureStorage", "-1"];
_weaponHolder = missionNamespace getVariable [format ["EPOCH_STORAGE_%1",_parentID], objNull];
//diag_log format["_parentID %1", _parentID];
diag_log format["_parentID %1", _parentID];
if (!isNull _weaponHolder) then {
_owners = _weaponHolder getVariable["STORAGE_OWNERS", []];
//diag_log format["_owners %1", _owners];
diag_log format["_owners %1", _owners];
// allow group members and owner access
_plyrUID = getPlayerUID _plyr;
@ -29,8 +29,9 @@ if (getNumber(configFile >> "CfgVehicles" >> _type >> "isSecureStorage") == 1) t
_response = ["Group", _plyrGroup] call EPOCH_fnc_server_hiveGETRANGE;
if ((_response select 0) == 1 && typeName(_response select 1) == "ARRAY") then {
_gArray = _response select 1;
diag_log format["_gArray %1 _plyrUID %2 _plyrGroup %3", _gArray, _plyrUID, _plyrGroup];
if (
{ (_x select 0) in _owners }count(_gArray select 3) > 0 ||
{(_x select 0) in _owners }count(_gArray select 3) > 0 ||
{(_x select 0) in _owners}count(_gArray select 4) > 0 ||
_plyrUID in _owners
) then {
@ -49,10 +50,10 @@ if (getNumber(configFile >> "CfgVehicles" >> _type >> "isSecureStorage") == 1) t
_parentID = _unit getVariable ["EPOCH_secStorParent", -1];
_parent = missionNamespace getVariable [format ["EPOCH_BUILD_%1", _parentID], objNull];
//diag_log format["_parentID2 %1", _parentID];
diag_log format["_parentID2 %1", _parentID];
if (!isNull _parent) then {
_owners = _unit getVariable["STORAGE_OWNERS", []];
//diag_log format["_owners %1", _owners];
diag_log format["_owners2 %1", _owners];
// allow group members and owner access
_plyrUID = getPlayerUID _plyr;
@ -61,6 +62,7 @@ if (getNumber(configFile >> "CfgVehicles" >> _type >> "isSecureStorage") == 1) t
_response = ["Group", _plyrGroup] call EPOCH_fnc_server_hiveGETRANGE;
if ((_response select 0) == 1 && typeName (_response select 1) == "ARRAY") then {
_gArray = _response select 1;
diag_log format["_gArray2 %1 _plyrUID %2 _plyrGroup %3", _gArray, _plyrUID, _plyrGroup];
if (
{(_x select 0) in _owners}count(_gArray select 3) > 0 ||
{(_x select 0) in _owners}count(_gArray select 4) > 0 ||

View File

@ -26,7 +26,7 @@ _configArray = [
["antagonistChanceTrash", 0.09],
["antagonistChancePDeath", 0.33],
["antagonistChanceLoot", 0.09],
["allowedVehiclesList",
["allowedVehiclesList",
[
["C_Offroad_01_EPOCH", 8],
["C_Quadbike_01_EPOCH", 8],
@ -45,7 +45,7 @@ _configArray = [
["B_Heli_Light_01_EPOCH", 2],
["B_SDV_01_EPOCH", 2],
["B_MRAP_01_EPOCH", 3],
["I_MRAP_03_EPOCH", 3],
["I_MRAP_03_EPOCH", 3],
["B_Truck_01_transport_EPOCH", 1],
["B_Truck_01_covered_EPOCH", 2],
["B_Truck_01_mover_EPOCH", 1],
@ -69,7 +69,7 @@ _configArray = [
["K04", 2],
["ebike_epoch", 7],
["mosquito_epoch", 5],
["C_Heli_Light_01_civil_EPOCH",5]
["C_Heli_Light_01_civil_EPOCH",5]
]
],
["taxRate", 0.1],
@ -122,4 +122,4 @@ if (!isNil "EPOCH_allowedVehiclesList") then {
_vehicleSlotLimit = 0;
{_vehicleSlotLimit = _vehicleSlotLimit + (_x select 1)} forEach EPOCH_allowedVehiclesList;
EPOCH_VehicleSlotsLimit = _vehicleSlotLimit;
};
};