Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private ["_objectCount","_buildingCountLimit","_membercount","_group","_buildingAllowed","_jammer","_restricted","_restrictedLocations","_myPosATL"];
- _buildingAllowed = true;
- _ownedJammerExists = false;
- _nearestJammer = objNull;
- // defaults
- _config = 'CfgEpochClient' call EPOCH_returnConfig;
- _buildingJammerRange = getNumber(_config >> "buildingJammerRange");
- //_buildingCountLimit = getNumber(_config >> "buildingCountLimit");
- _buildingCountArray = getArray(_config >> "buildingCountArray");
- _storagecountArray = getArray(_config >> "storagecountArray");
- if (count _buildingCountArray == 0) then {_buildingCountArray = [200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200]};
- if (count _storagecountArray == 0) then {_storagecountArray = [200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200]};
- _minjammerdistance = getNumber(_config >> "minJammerDistance");
- if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
- //if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; };
- if (_minjammerdistance == 0) then { _minjammerdistance = _buildingJammerRange*3};
- _staticClass = getText(configfile >> "CfgVehicles" >> _this >> "staticClass");
- _simulClass = getText(configfile >> "CfgVehicles" >> _this >> "simulClass");
- _bypassJammer = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "bypassJammer");
- // Jammer
- _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _minjammerdistance];
- if !(_jammer isEqualTo []) then {
- if (_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
- {
- if (alive _x) exitWith{
- _buildingAllowed = false;
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Existing Jammer Signal</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- } foreach _jammer;
- } else {
- {
- if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{
- _nearestJammer = _x;
- };
- } foreach _jammer;
- if !(isNull _nearestJammer) then {
- _group = (_nearestJammer getVariable["BUILD_OWNER", "-1"]);
- if (_group in[getPlayerUID player, Epoch_my_GroupUID]) then {
- _ownedJammerExists = true;
- } else {
- _buildingAllowed = false;
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Frequency Blocked</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- if (count Epoch_my_Group == 0) then {
- _membercount = 1;
- }
- else {
- _membercount = count (Epoch_my_Group select 3) + count (Epoch_my_Group select 4);
- };
- if (_this in ["WorkBench_EPOCH","StorageShelf_EPOCH","Tipi_EPOCH","LockBox_EPOCH","Safe_EPOCH","StorageShelf_SIM_EPOCH","LockBox_SIM_EPOCH","Safe_SIM_EPOCH","Workbench_SIM_EPOCH","Tipi_SIM_EPOCH"]) then {
- _buildingCountLimit = _storagecountArray select (_membercount-1);
- _objectCount = count nearestObjects[_nearestJammer, ["Buildable_Storage","Constructions_lockedstatic_F"], _buildingJammerRange];
- }
- else {
- _buildingCountLimit = _buildingCountArray select (_membercount-1);
- _objectCount = count nearestObjects[_nearestJammer, ["Constructions_static_F","Constructions_foundation_F"], _buildingJammerRange];
- };
- if (_objectCount >= _buildingCountLimit) then {
- _buildingAllowed = false;
- _dt = [format["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Frequency Overloaded: Limit %1</t>", _buildingCountLimit], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- };
- };
- };
- if !(_buildingAllowed)exitWith{ false };
- // Max object
- if (!_ownedJammerExists) then{
- _limitNearby = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "limitNearby");
- if (_limitNearby > 0) then{
- _objectCount = count nearestObjects[player, [_staticClass, _simulClass], _buildingJammerRange];
- if (_objectCount >= _limitNearby) then{
- _buildingAllowed = false;
- _dt = [format["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Limit %1</t>", _limitNearby], 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- };
- };
- if !(_buildingAllowed)exitWith{ false };
- // require jammer check if not found as owner of jammer
- if (getNumber(_config >> "buildingRequireJammer") == 0 && _bypassJammer == 0) then{
- if !(_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
- _buildingAllowed = _ownedJammerExists;
- if !(_buildingAllowed) then {
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Frequency Jammer Needed</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- };
- };
- if !(_buildingAllowed)exitWith{ false };
- if (getNumber(_config >> "buildingNearbyMilitary") == 0) then{
- _range = getNumber(_config >> "buildingNearbyMilitaryRange");
- if (_range > 0) then {
- _restricted = nearestObjects [player, ["ProtectionZone_Invisible_F","Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], 300];
- } else {
- _restricted = nearestObjects [player, ["Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], _range];
- _restricted append (nearestObjects [player, ["ProtectionZone_Invisible_F","Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], 300]);
- };
- } else {
- _restricted = nearestObjects [player, ["ProtectionZone_Invisible_F"], 300];
- };
- if !(_restricted isEqualTo []) then {
- _buildingAllowed = false;
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- _restrictedLocations = nearestLocations [player, ["NameCityCapital"], 300];
- if !(_restrictedLocations isEqualTo []) then {
- _buildingAllowed = false;
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- _myPosATL = getPosATL player;
- {
- if ((_x select 0) distance _myPosATL < (_x select 1)) exitWith {
- _buildingAllowed = false;
- _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
- };
- } forEach(getArray(_config >> worldname >> "blockedArea"));
- _buildingAllowed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement