Merge pull request #694 from EpochModTeam/experimental

released 0.4 b675
This commit is contained in:
vbawol 2017-01-06 07:24:22 -06:00 committed by GitHub
commit ae9d5fd6cd
72 changed files with 132 additions and 94 deletions

View File

@ -10,25 +10,26 @@ Epoch Server DB extension (DLL / so)
Epoch Assets Mod Configs - Custom Units, Vehicles, Weapons, Items and more!
#### Developers
* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Concept, Code, Configs, Textures - [x] Active
* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models - [ ] Active
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures - [ ] Active
* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code - [x] Active
* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code - [x] Active
* [Florian Kinder (Fank)](https://github.com/Fank): Code - [ ] Active
* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support - [ ] Active
* [Darren Harrison (Kiory)](https://www.twitch.tv/kiory123): Models, Textures, Configs - [ ] Active
* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures - [ ] Active
* [Niklas Wagner (Skaronator)](https://skaronator.com): Code - [ ] Active
* [Damian Clark ([VB]GREEN)](http://epochmod.com): Graphics - [ ] Active
* [Aaron Clark ([VB]AWOL)](http://epochmod.com): Concept, Code, Configs, Textures
* [Kenneth Bente (Axle)](www.twitch.tv/axles): Tester, Models
* [Paul Tomany (Sequisha)](https://www.twitch.tv/sequisha): Models, Textures
* [Damian Clark ([VB]GREEN)](http://epochmod.com): Graphics
* [Andrew Gregory (Axeman)](http://thefreezer.co.uk): AI Code
* [Raimonds Virtoss (Raymix)](https://www.twitch.tv/raymich): UI Code
* [Darren Harrison (Kiory)](https://www.twitch.tv/kiory123): Models, Textures, Configs
* [Niklas Wagner (Skaronator)](https://skaronator.com): Code
* [Florian Kinder (Fank)](https://github.com/Fank): Code
* [Denis Erygin (devd)](https://github.com/denisio): Linux Code Support
* [Paden Sturtevant (SteamPunkGears)](https://www.twitch.tv/steampunkgears): Models, Textures
* [Dan Dalsted (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor
#### Contributors
* [Dan (OrangeSherbet)](https://www.twitch.tv/OrangeSherbet): Tester, Videos, Wiki Editor
#### Top Contributors
* [HeMan](https://github.com/Ignatz-HeMan)
* [$p4rkY](https://github.com/SPKcoding)
* [82ndab-Bravo17](https://github.com/82ndab-Bravo17) - http://www.the82ndab.net
* [Robio](https://github.com/RC-Robio)
* [Poulmba](https://www.youtube.com/user/poulmba): Wiki Editor, Tester
* Richie: Map Support, Forum Moderator
* [Richie](http://uk-gaming-zone.co.uk): Map Support, Forum Moderator
* [Tobias Solem](http://whatthepoch.com/): Tester
#### Special Thanks!

View File

@ -1,8 +1,8 @@
// Anti Hack
antihack_Enabled = true; // built-in Anti-Hack
antihack_Enabled = "true"; // built-in Anti-Hack
antihack_maxTravelDistance = 30; // anti-teleport max travel distance
antihack_TPcenterDistance = 30; // anti-teleport distance from start
antihack_cfgPatchesCheck = true; // cfgPatches (AddOn Check)
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_cfgPatchesMode[] = {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
@ -24,7 +24,7 @@ antihack_checkFiles[] = { //script check, leave it blank to disable it
{"epoch_code\compile\setup\EPOCH_clientRespawn.sqf", "EPOCH_clientRespawn"},
{"epoch_code\compile\interface_event_handlers\EPOCH_KeyDown.sqf", "EPOCH_KeyDown"}
};
antihack_addActionCheck = true; // false to disable addAction checks
antihack_addActionCheck = "true"; // false to disable addAction checks
adminMenu_Owner[] = {};
adminMenu_OwnerSetting[] = {
"ESP-PLAYER",

View File

@ -1,4 +1,4 @@
serverRestart = false; // true sends #shutdown command to server after the time specified in ForceRestartTime
serverRestart = "false"; // true sends #shutdown command to server after the time specified in ForceRestartTime
forceRestartTime = 14400; // 4 hour restarts
StorageSlotsLimit = 1500; // Max storage slots allowed. Warning! Higher the number lower performance.
@ -28,7 +28,7 @@ antagonistChanceLoot = 0.09; //9% chance when player click "SEARCH" on a loot ob
cloneCost = 100; // debt incurred on player death
// vehicles - Max vehicle slots is calculated from per vehicle limits below. Warning! Higher the number lower the performance.
simulationHandlerOld = false; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
simulationHandlerOld = "false"; // When enabled this feature disables simulation on vehicles that are not nea players. Can help improve client fps at the cost of server fps.
vehicleLockTime = 1800; // Controls how many seconds it takes to allow another person/group to unlock vehicle.
removevehweapons[] = { // remove these Weapons from spawned Vehicles
"missiles_DAR","gatling_30mm","gatling_20mm","missiles_DAGR","cannon_30mm_Plane_CAS_02_F","Missile_AA_03_Plane_CAS_02_F","Missile_AGM_01_Plane_CAS_02_F","Rocket_03_HE_Plane_CAS_02_F",
@ -41,7 +41,7 @@ removevehmagazinesturret[] = { // Remove these Magazines from the given Turret f
};
// BaseBuilding
UseIndestructible = false; // Enable / Disable Indestructible BaseObjects
UseIndestructible = "false"; // Enable / Disable Indestructible BaseObjects
IndestructibleBaseObjects[] = { // Can be Names or Classes
"Constructions_static_F",
"Buildable_Storage",
@ -60,15 +60,15 @@ ExceptedBaseObjects[] = { // Not Indestructible, also if in a Class of Indestr
taxRate = 0.1; // controls the price increase for purchases
starterTraderItems[] = { { "ItemSodaBurst", "meatballs_epoch", "MortarBucket", "CinderBlocks", "VehicleRepair", "CircuitParts", "ItemCorrugated", "PartPlankPack", "ItemRock", "ItemRope", "ItemStick" }, { 5, 5, 5, 5, 5, 5, 5, 5, 5, 5, 5 } }; // Starter Items for fresh spawned trader first array is classnames second is quantity.
NPCSlotsLimit = 20; // Max number of traders static or dynamic. Warning! Higher the number lower performance.
forceStaticTraders = true; // disables traders moving from work to home
forceStaticTraders = "true"; // disables traders moving from work to home
// Markers
showEarthQuakes = true; // show mineral viens caused by earthquakes
showShippingContainers = true; // Show location of events based loots (plants, shipping container, Carnival)
SHOW_TRADERS = true; // Show locations of traders
SHOW_JAMMERS = false; // Shows location of base jammers
SHOW_BOATLOOT = true; // Shows the location of shipwreck loot
DEBUG_VEH = false; // DEBUG ONLY used to debug spawing of vehicles
showEarthQuakes = "true"; // show mineral viens caused by earthquakes
showShippingContainers = "true"; // Show location of events based loots (plants, shipping container, Carnival)
SHOW_TRADERS = "true"; // Show locations of traders
SHOW_JAMMERS = "false"; // Shows location of base jammers
SHOW_BOATLOOT = "true"; // Shows the location of shipwreck loot
DEBUG_VEH = "false"; // DEBUG ONLY used to debug spawing of vehicles
// Hive Related
expiresBuilding = "604800"; // expiration date in seconds for buildings
@ -76,12 +76,12 @@ expiresPlayer = "2592000"; // expiration date in seconds for players
expiresBank = "7776000"; // expiration date in seconds for players bank
expiresVehicle = "604800"; // expiration date in seconds for vehicles
expiresAIdata = "604800"; // expiration date in seconds for NPC Trader inventory
hiveAsync = true; // true = asynchronous hive calls (non blocking), false = synchronous hive calls (blocking)
hiveAsync = "true"; // true = asynchronous hive calls (non blocking), false = synchronous hive calls (blocking)
// Admin Features
hiveAdminCmdExec = false; // true = enables extra (To Be Released) feature to allow execution of code via hive.
hiveAdminSavePlayerList = true; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID.
hiveAdminCmdExec = "false"; // true = enables extra (To Be Released) feature to allow execution of code via hive.
hiveAdminSavePlayerList = "true"; // true = enables saving of playerUID array to hive value PLAYERS:#InstanceID.
hiveAdminCmdTime = 5; // how many seconds between each command queue call.
// DEBUG
useOldLoadVehicles = false;
useOldLoadVehicles = "false";

View File

@ -1 +1 @@
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg|blk)" !"B_Carryall_(cbr|khk|mcamo|ocamo|oli|oucamo)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F"
5 "" !"B_Parachute" !"B_AssaultPack_(cbr|dgtl|khk|mcamo|ocamo|rgr|sgg|blk)" !"B_Carryall(cbr|khk|mcamo|ocamo|oli|oucamo|hex|ghex)" !"B_FieldPack_(blk|cbr|khk|ocamo|oli|oucamo|ghex_F)" !"B_Kitbag_(cbr|mcamo|rgr|sgg)" !"B_TacticalPack_(blk|mcamo|ocamo|oli|rgr)" !"smallbackpack_(red|green|teal|pink|)_epoch" !"(O|I|B)_UAV_01_backpack_F" !"B_Bergen_(mcamo|dgtl|hex|tna)_F" !"B_Viper(Light|)Harness_(blk|ghex|hex|khk|oli)_F"

View File

@ -207,7 +207,7 @@ class FSM
"};" \n
"" \n
"_finalPlayerObjectCheck = {" \n
" (_mass == (loadAbs _playerObject))" \n
" (_mass isEqualTo (loadAbs _playerObject))" \n
"};" \n
"" \n
"EPOCH_loginFSM = _thisFSM;" \n
@ -1423,4 +1423,4 @@ class FSM
"Reject_without_B",
};
};
/*%FSM</COMPILE>*/
/*%FSM</COMPILE>*/

View File

@ -40,7 +40,7 @@ if (isClass(_config)) then{
if (configName(_finalconfig) == _variableName) then{
_varData = switch (typeName _defaultData) do {
case "SCALAR": {if (isNumber (_finalconfig)) then { getNumber _finalconfig } else {_defaultData} };
case "BOOL": {if (isText (_finalconfig)) then { (getText _finalconfig) isEqualTo "true" } else {_defaultData} };
case "BOOL": {if (isText (_finalconfig)) then {(getText _finalconfig) isEqualTo "true"} else {if (isNumber (_finalconfig)) then {(getNumber _config) isEqualTo 1} else {_defaultData}}};
case "ARRAY": {if (isArray (_finalconfig)) then { getArray _finalconfig } else {_defaultData} };
case "STRING": {if (isText (_finalconfig)) then { getText _finalconfig } else {_defaultData} };
default {_defaultData};

View File

@ -18,36 +18,60 @@
Parameter(s):
_this select 0: OBJECT - player object
_this select 1: STRING - personal token
_this select 2: NUMBER - loadABS
Returns:
NOTHING
*/
//[[[cog import generate_private_arrays ]]]
private ["_group","_playerObject","_ply"];
private ["_prevPlayerObject"];
//[[[end]]]
_playerObject = _this select 0;
params [
["_playerObject",objNull,[objNull]],
["_personalToken","",[""]],
["_loadAbs",0,[0]]
];
if (isNull _playerObject) exitWith { diag_log "EPOCH-DEBUG: New Player Object was Null cannot revive." };
if !(alive player && alive _playerObject && !isPlayer _playerObject) then {
_ply = player;
_group = group player;
selectPlayer _playerObject;
deleteVehicle _ply;
Epoch_canBeRevived = false;
Epoch_personalToken = _this select 1;
// reveal new player object (to hopefully propagate info faster).
player reveal _playerObject;
[] spawn EPOCH_masterLoop;
[5, 100] call EPOCH_niteLight;
// spawn a thread to wait for loadAbs to sync before using selectPlayer
[_playerObject,_personalToken,_loadAbs] spawn {
params ["_playerObject","_personalToken","_loadAbs"];
closeDialog 0;
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
// get current player object
_prevPlayerObjectect = player;
{
player removeEventHandler [_x, 0];
player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
} forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
// wait for loadAbs to sync
waitUntil {_loadAbs isEqualTo (loadAbs _playerObject)};
// reset blood Pressure to warning level
EPOCH_playerBloodP = 120;
// switch to new playerObject
selectPlayer _playerObject;
// delete previous player object
deleteVehicle _prevPlayerObject;
// set token and can revive to false
Epoch_canBeRevived = false;
Epoch_personalToken = _personalToken;
// restart masterloop
[] spawn EPOCH_masterLoop;
[5, 100] call EPOCH_niteLight;
closeDialog 0;
("BIS_fnc_respawnCounter" call BIS_fnc_rscLayer) cutText ["","PLAIN"];
{
player removeEventHandler [_x, 0];
player addEventHandler [_x,(["CfgEpochClient", _x, ""] call EPOCH_fnc_returnConfigEntryV2)];
} forEach (["CfgEpochClient", "addEventHandler", []] call EPOCH_fnc_returnConfigEntryV2);
// reset blood Pressure to warning level
EPOCH_playerBloodP = 120;
};
} else {
deleteVehicle _playerObject;
};

View File

@ -37,11 +37,11 @@ class CfgEpochClient
storageCountPerMember = 5; //ignore if "splitCountLimits=0" & "useGroupCountLimits=0"
maxdoors = 8;
maxgates = 5;
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"};
niteLight[] = {1,1.88,22};
ryanZombiesEnabled = true;
ryanZombiesEnabled = "true";
antagonistSpawnIndex[] = {{"Epoch_Cloak_F",1},{"GreatWhite_F",2},{"Epoch_Sapper_F",2},{"Epoch_SapperB_F",1},{"I_UAV_01_F",2},{"PHANTOM",1},{"B_Heli_Transport_01_F",1},{"EPOCH_RyanZombie_1",12}};
customVarsDefaults[] = {{"Temp",98.6,{106.7,95,102,105,96,95}},{"Hunger",1500,{5000,0,5001,5001,1250,0}},{"Thirst",750,{2500,0,2501,2501,625,0}},{"AliveTime",0,{-2,0}},{"Energy",0,{2500,0}},{"Wet",0,{100,0,35,55,-1,-1}},{"Soiled",0,{100,0,35,55,-1,-1}},{"Immunity",0,{100,0}},{"Toxicity",0,{100,0,35,55,-1,-1}},{"Stamina",100,{"EPOCH_playerStaminaMax",0}},{"Crypto",0,{250000,0}},{"HitPoints",{0,0,0,0},{1,0,0.5,1,-1,-1}},{"BloodP",100,{190,0,120,140,70,50}},{"SpawnArray",{},{}},{"Karma",0,{50000,-50000}},{"Alcohol",0,{100,0,35,55,-1,-1}},{"Radiation",0,{100,0,35,55,-1,-1}},{"Nuisance",0,{100,0}},{"MissionArray",{},{}}};
hudConfigs[] = {{{"BloodP","","",{"getPlayerDamage",">=",0.7}},"topRight","x\addons\a3_epoch_code\Data\UI\bleeding_ca.paa",{"forceUpdate"}},{{"Oxygen","getPlayerOxygenRemaining","",{},{1,0,2,2,1,0.55}},"topRight","x\addons\a3_epoch_code\Data\UI\oxygen_ca.paa"},{"Hunger","topRight","x\addons\a3_epoch_code\Data\UI\hunger_ca.paa",{"forceBloodRise"}},{"Thirst","topRight","x\addons\a3_epoch_code\Data\UI\thirst_ca.paa",{"forceBloodRise"}},{"Temp","topRight",{"x\addons\a3_epoch_code\Data\UI\hot_ca.paa","x\addons\a3_epoch_code\Data\UI\cold_ca.paa"},{"forceFatigue"}},{"Toxicity","topRight","x\addons\a3_epoch_code\Data\UI\hazzard_ca.paa"},{"Alcohol","topRight","x\addons\a3_epoch_code\Data\UI\drunk_ca.paa"},{"Soiled","topRight","x\addons\a3_epoch_code\Data\UI\soiled_ca.paa"},{"Radiation","topRight","x\addons\a3_epoch_code\Data\UI\rads_ca.paa"},{{"HitPoints","getPlayerHitPointDamage","HitLegs"},"topRight","x\addons\a3_epoch_code\Data\UI\broken_ca.paa"}};

View File

@ -1 +1 @@
build=672;
build=675;

View File

@ -26,10 +26,10 @@ onPauseScript = "epoch_code\gui\scripts\Epoch_onPause.sqf";
onLoadMission= "Epoch";
OnLoadIntro = "Welcome to Epoch Mod";
loadScreen = "\x\addons\a3_epoch_assets\pictures\loadScreen_ca.paa";
OnLoadIntroTime = False;
OnLoadMissionTime = False;
OnLoadIntroTime = 0;
OnLoadMissionTime = 0;
onLoadName = "Epoch Mod";
disabledAI = true;
disabledAI = 1;
scriptedPlayer = 1;
disableChannels[]={{0,true,true},{1,false,true},{2,true,true},{6,true,true}}; // allow text only on side chat
enableItemsDropping = 0;

View File

@ -1 +1 @@
build=672;
build=675;

View File

@ -265,7 +265,7 @@ if (!local _player) then {
};
// send to player
[_newPlyr, _token] remoteExec ['EPOCH_clientRevive',_player];
[_newPlyr, _token, loadAbs _newPlyr] remoteExec ['EPOCH_clientRevive',_player];
};
};
};

View File

@ -206,9 +206,24 @@ for "_i" from 1 to _maxVehicleLimit do {
};
} forEach _objTypes;
} forEach (_arr select 5);
// remove and add back magazines works for armed trucks but not helis ATM
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
{_vehicle addMagazine _x}count (_arr select 6);
// remove and add back magazines
if !((_arr select 6) isequalto []) then {
if ((_arr select 6 select 0) isequaltype true) then {
{
_vehicle removeMagazinesTurret [_x select 0, _x select 1];
} foreach magazinesAllTurrets _vehicle;
{
if ((_x select 2) > 0) then {
_vehicle addMagazineTurret [_x select 0,_x select 1,_x select 2];
};
} foreach (_arr select 6 select 1);
}
else {
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
{_vehicle addMagazine _x}count (_arr select 6);
};
};
// set damage and hitpoints
_vehicle setDamage _damage;

View File

@ -225,22 +225,23 @@ for "_i" from 1 to _maxVehicleLimit do {
} forEach _objTypes;
} forEach (_arr select 5);
// remove and add back magazines works for armed trucks but not helis ATM
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
{_vehicle addMagazine _x}count (_arr select 6);
// turrets
/*
_mags = _vehicle magazinesTurret [0];
{
_object removeMagazinesTurret [_x, [0]];
} forEach _mags;
_mags = _vehicle magazinesTurret [-1];
{
_object removeMagazinesTurret [_x, [-1]];
} forEach _mags;
*/
// remove and add back magazines
if !((_arr select 6) isequalto []) then {
if ((_arr select 6 select 0) isequaltype true) then {
{
_vehicle removeMagazinesTurret [_x select 0, _x select 1];
} foreach magazinesAllTurrets _vehicle;
{
if ((_x select 2) > 0) then {
_vehicle addMagazineTurret [_x select 0,_x select 1,_x select 2];
};
} foreach (_arr select 6 select 1);
}
else {
{_vehicle removeMagazineGlobal _x}count (magazines _vehicle);
{_vehicle addMagazine _x}count (_arr select 6);
};
};
if (EPOCH_DEBUG_VEH) then {
_marker = createMarker [str(_location) , _location];
@ -253,9 +254,6 @@ for "_i" from 1 to _maxVehicleLimit do {
if (_simulationHandler) then{
_vehicle enableSimulationGlobal false;
};
};
};
};

View File

@ -17,7 +17,7 @@ params [["_vehicle",objNull]];
if (!isNull _vehicle) then {
// if (!alive _vehicle) exitWith {diag_log format["DEBUG DEAD VEHICLE SKIPPED SAVE: %1 %2", _vehicle]};
if (!alive _vehicle) exitWith {diag_log format["DEBUG DEAD VEHICLE SKIPPED SAVE: %1 %2", _vehicle]};
_vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];
if (_vehSlot != "ABORT") then {
@ -95,7 +95,7 @@ if (!isNull _vehicle) then {
];
_colorSlot = _vehicle getVariable ["VEHICLE_TEXTURE",0];
_VAL = [typeOf _vehicle,[(getposATL _vehicle call EPOCH_precisionPos),vectordir _vehicle,vectorup _vehicle],damage _vehicle,_hitpoints,fuel _vehicle,_inventory,magazinesAmmo _vehicle,_colorSlot];
_VAL = [typeOf _vehicle,[(getposATL _vehicle call EPOCH_precisionPos),vectordir _vehicle,vectorup _vehicle],damage _vehicle,_hitpoints,fuel _vehicle,_inventory,[true,magazinesAllTurrets _vehicle],_colorSlot];
["Vehicle", _vehHiveKey, EPOCH_expiresVehicle, _VAL] call EPOCH_fnc_server_hiveSETEX;
};
};

View File

@ -258,7 +258,7 @@ EPOCH_server_disconnect = compileFinal("
");
EPOCH_server_movePlayer = compileFinal("
params [['_playerObj',objNull,[_playerObj]],'_pos'];
params [['_playerObj',objNull,[objNull]],['_pos',[],[[]]]];
if !(isNull _playerObj) then {
"+_skn_antiTeleportPVC+" = true;
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';
@ -271,7 +271,7 @@ if !(isNull _playerObj) then {
");
EPOCH_server_teleportCheck = compileFinal("
params [['_playerObj',objNull,[_playerObj]],'_allow'];
params [['_playerObj',objNull,[objNull]],'_allow'];
if !(isNull _playerObj) then {
"+_skn_antiTeleportPVC+" = _allow;
(owner _playerObj) publicVariableClient '"+_skn_antiTeleportPVC+"';

View File

@ -70,7 +70,7 @@ EPOCH_fnc_returnConfigEntry = {
_config = (_this select 0) >> (_this select 1);
_varData = switch (typeName _defaultData) do {
case "SCALAR": {if (isNumber (_config)) then { getNumber _config } else {_defaultData} };
case "BOOL": {if (isText (_config)) then { (getText _config) isEqualTo "true" } else {_defaultData} };
case "BOOL": {if (isText (_config)) then {(getText _config) isEqualTo "true"} else {if (isNumber (_config)) then {(getNumber _config) isEqualTo 1} else {_defaultData}}};
case "ARRAY": {if (isArray (_config)) then { getArray _config } else {_defaultData} };
case "STRING": {if (isText (_config)) then { getText _config } else {_defaultData} };
default {_defaultData};

View File

@ -1 +1 @@
build=672;
build=675;

View File

@ -1 +1 @@
build=672;
build=675;

View File

@ -14,7 +14,7 @@
*/
class CfgSecConf
{
debug = false;
debug = "false";
class remoteExecClient{
functions[] = {"bankBalance", "resetGroup", "groupUpdate", "groupUidUpdate", "healPlayer","tradeComplete"};
@ -28,7 +28,7 @@ class CfgSecConf
};
class learning {
mode = false; // true = only trust uids below, false = trust everyone (use only with a passworded server and trusted players)
mode = "false"; // true = only trust uids below, false = trust everyone (use only with a passworded server and trusted players)
trustedUsers[] = {};
};

View File

@ -1 +1 @@
672
675