Advertisement
Guest User

Untitled

a guest
Dec 8th, 2015
65
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.07 KB | None | 0 0
  1. private ["_objectCount","_buildingCountLimit","_membercount","_group","_buildingAllowed","_jammer","_restricted","_restrictedLocations","_myPosATL"];
  2. _buildingAllowed = true;
  3. _ownedJammerExists = false;
  4. _nearestJammer = objNull;
  5.  
  6. // defaults
  7. _config = 'CfgEpochClient' call EPOCH_returnConfig;
  8. _buildingJammerRange = getNumber(_config >> "buildingJammerRange");
  9. //_buildingCountLimit = getNumber(_config >> "buildingCountLimit");
  10. _buildingCountArray = getArray(_config >> "buildingCountArray");
  11. _storagecountArray = getArray(_config >> "storagecountArray");
  12. if (count _buildingCountArray == 0) then {_buildingCountArray = [200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200]};
  13. if (count _storagecountArray == 0) then {_storagecountArray = [200,200,200,200,200,200,200,200,200,200,200,200,200,200,200,200]};
  14.  
  15. _minjammerdistance = getNumber(_config >> "minJammerDistance");
  16. if (_buildingJammerRange == 0) then { _buildingJammerRange = 75; };
  17. //if (_buildingCountLimit == 0) then { _buildingCountLimit = 200; };
  18. if (_minjammerdistance == 0) then { _minjammerdistance = _buildingJammerRange*3};
  19.  
  20. _staticClass = getText(configfile >> "CfgVehicles" >> _this >> "staticClass");
  21. _simulClass = getText(configfile >> "CfgVehicles" >> _this >> "simulClass");
  22. _bypassJammer = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "bypassJammer");
  23.  
  24. // Jammer
  25. _jammer = nearestObjects[player, ["PlotPole_EPOCH"], _minjammerdistance];
  26. if !(_jammer isEqualTo []) then {
  27. if (_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
  28. {
  29. if (alive _x) exitWith{
  30. _buildingAllowed = false;
  31. _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;
  32. };
  33. } foreach _jammer;
  34. } else {
  35.  
  36. {
  37. if (alive _x && (_x distance player) <= _buildingJammerRange) exitWith{
  38. _nearestJammer = _x;
  39. };
  40. } foreach _jammer;
  41.  
  42. if !(isNull _nearestJammer) then {
  43. _group = (_nearestJammer getVariable["BUILD_OWNER", "-1"]);
  44. if (_group in[getPlayerUID player, Epoch_my_GroupUID]) then {
  45. _ownedJammerExists = true;
  46. } else {
  47. _buildingAllowed = false;
  48. _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Frequency Blocked</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
  49. };
  50. if (count Epoch_my_Group == 0) then {
  51. _membercount = 1;
  52. }
  53. else {
  54. _membercount = count (Epoch_my_Group select 3) + count (Epoch_my_Group select 4);
  55. };
  56. 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 {
  57. _buildingCountLimit = _storagecountArray select (_membercount-1);
  58. _objectCount = count nearestObjects[_nearestJammer, ["Buildable_Storage","Constructions_lockedstatic_F"], _buildingJammerRange];
  59. }
  60. else {
  61. _buildingCountLimit = _buildingCountArray select (_membercount-1);
  62. _objectCount = count nearestObjects[_nearestJammer, ["Constructions_static_F","Constructions_foundation_F"], _buildingJammerRange];
  63. };
  64. if (_objectCount >= _buildingCountLimit) then {
  65. _buildingAllowed = false;
  66. _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;
  67. };
  68. };
  69. };
  70. };
  71. if !(_buildingAllowed)exitWith{ false };
  72.  
  73. // Max object
  74. if (!_ownedJammerExists) then{
  75. _limitNearby = getNumber(configfile >> "CfgVehicles" >> _staticClass >> "limitNearby");
  76. if (_limitNearby > 0) then{
  77. _objectCount = count nearestObjects[player, [_staticClass, _simulClass], _buildingJammerRange];
  78. if (_objectCount >= _limitNearby) then{
  79. _buildingAllowed = false;
  80. _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;
  81. };
  82. };
  83. };
  84. if !(_buildingAllowed)exitWith{ false };
  85.  
  86. // require jammer check if not found as owner of jammer
  87. if (getNumber(_config >> "buildingRequireJammer") == 0 && _bypassJammer == 0) then{
  88. if !(_this in ["PlotPole_EPOCH", "PlotPole_SIM_EPOCH"]) then {
  89. _buildingAllowed = _ownedJammerExists;
  90. if !(_buildingAllowed) then {
  91. _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;
  92. };
  93. };
  94. };
  95. if !(_buildingAllowed)exitWith{ false };
  96.  
  97. if (getNumber(_config >> "buildingNearbyMilitary") == 0) then{
  98. _range = getNumber(_config >> "buildingNearbyMilitaryRange");
  99. if (_range > 0) then {
  100. _restricted = nearestObjects [player, ["ProtectionZone_Invisible_F","Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], 300];
  101. } else {
  102. _restricted = nearestObjects [player, ["Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], _range];
  103. _restricted append (nearestObjects [player, ["ProtectionZone_Invisible_F","Cargo_Tower_base_F","Cargo_HQ_base_F","Cargo_Patrol_base_F","Cargo_House_base_F"], 300]);
  104. };
  105. } else {
  106. _restricted = nearestObjects [player, ["ProtectionZone_Invisible_F"], 300];
  107. };
  108. if !(_restricted isEqualTo []) then {
  109. _buildingAllowed = false;
  110. _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
  111. };
  112.  
  113. _restrictedLocations = nearestLocations [player, ["NameCityCapital"], 300];
  114. if !(_restrictedLocations isEqualTo []) then {
  115. _buildingAllowed = false;
  116. _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
  117. };
  118.  
  119. _myPosATL = getPosATL player;
  120. {
  121. if ((_x select 0) distance _myPosATL < (_x select 1)) exitWith {
  122. _buildingAllowed = false;
  123. _dt = ["<t size = '0.8' shadow = '0' color = '#99ffffff'>Building Disallowed: Protected Frequency</t>", 0, 1, 5, 2, 0, 1] spawn bis_fnc_dynamictext;
  124. };
  125. } forEach(getArray(_config >> worldname >> "blockedArea"));
  126.  
  127. _buildingAllowed
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement