Prevent Trader in PlotRange

This commit is contained in:
He-Man 2018-10-31 19:23:45 +01:00
parent 2d63886e5d
commit 4ba1ae9cc8
2 changed files with 45 additions and 41 deletions

View File

@ -16,7 +16,7 @@
private [ "_TraderGodMode","_StaticTraderItemPurge","_DynamicTraderRespawnCount","_TraderItemsDeleteRestart","_TraderInit","_TraderItemsClean","_newstock","_agent","_aiTables",
"_arr","_config","_currentStock","_existingStock","_indexStock","_markers","_objHiveKey","_pos","_randomAIUniform","_response","_response2","_schedule",
"_serverSettingsConfig","_staticTrader","_staticTradersArrCount","_staticTradersArray","_storedVehicleLimit","_traderSlotIndex","_work","_arrchanged","_deleteat","_maxrnd",
"_WinterDeco","_HelloweenDeco"
"_WinterDeco","_HelloweenDeco","_buildingJammerRange"
];
//[[[end]]]
params [["_maxTraderLimit",0]];
@ -34,6 +34,7 @@ _StaticTraderItemPurge = [_serverSettingsConfig, "StaticTraderItemPurge", []] ca
_DynamicTraderRespawnCount = [_serverSettingsConfig, "DynamicTraderRespawnCount", 150] call EPOCH_fnc_returnConfigEntry;
_TraderItemCountPerItem = [_serverSettingsConfig, "TraderItemCountPerItem", [100,100]] call EPOCH_fnc_returnConfigEntry;
_TraderItemsDeleteRestart = [_serverSettingsConfig, "TraderItemsDeleteRestart", []] call EPOCH_fnc_returnConfigEntry;
_buildingJammerRange = ["CfgEpochClient", "buildingJammerRange", 75] call EPOCH_fnc_returnConfigEntryV2;
_WinterDeco = (Epoch_ServerRealtime select 1) isequalto 12;
_HelloweenDeco = ((Epoch_ServerRealtime select 1) == 10 && (Epoch_ServerRealtime select 2) >= 24) || ((Epoch_ServerRealtime select 1) == 11 && (Epoch_ServerRealtime select 2) <= 3);
@ -199,7 +200,7 @@ for "_i" from 0 to (_maxTraderLimit-1) do {
if (daytime > (_schedule select 0) && daytime < (_schedule select 1)) then {
_pos = (_work select 0);
};
if !(count (_arr select 0) >= _DynamicTraderRespawnCount) then {
if (!(count (_arr select 0) >= _DynamicTraderRespawnCount) && (nearestobjects [_pos,["Plotpole_EPOCH"],_buildingJammerRange]) isequalto []) then {
EPOCH_TraderSlots deleteAt _traderSlotIndex;
_agent = objnull;
if (_WinterDeco) then {

View File

@ -15,7 +15,7 @@
//[[[cog import generate_private_arrays ]]]
private [ "_serverSettingsConfig","_acceptableBlds","_agent","_aiClass","_aiTables","_buildingHome","_buildingWork","_buildings","_checkBuilding","_config","_endTime","_home",
"_homes","_markers","_objHiveKey","_pos","_position","_randomAIUniform","_return","_schedule","_slot","_spawnCount","_startTime","_traderHomes","_usedBuildings","_work",
"_WinterDeco","_HelloweenDeco"
"_WinterDeco","_HelloweenDeco","_buildingJammerRange"
];
//[[[end]]]
_serverSettingsConfig = configFile >> "CfgEpochServer";
@ -25,6 +25,7 @@ _config = (configFile >> "CfgEpoch" >> worldName);
_aiTables = getArray(_config >> "traderUniforms");
_acceptableBlds = getArray(_config >> "traderBlds");
_traderHomes = getArray(_config >> "traderHomes");
_buildingJammerRange = ["CfgEpochClient", "buildingJammerRange", 75] call EPOCH_fnc_returnConfigEntryV2;
_WinterDeco = (Epoch_ServerRealtime select 1) isequalto 12;
_HelloweenDeco = ((Epoch_ServerRealtime select 1) == 10 && (Epoch_ServerRealtime select 2) >= 24) || ((Epoch_ServerRealtime select 1) == 11 && (Epoch_ServerRealtime select 2) <= 3);
@ -55,6 +56,7 @@ for "_i" from 1 to _spawnCount do {
_usedBuildings pushBack _buildingWork;
_home = selectRandom (_buildingHome buildingPos -1);
_work = selectRandom (_buildingWork buildingPos -1);
if ((nearestobjects [_home,["Plotpole_EPOCH"],_buildingJammerRange]) isequalto [] && (nearestobjects [_work,["Plotpole_EPOCH"],_buildingJammerRange]) isequalto []) then {
_startTime = floor(random 16);
_endTime = _startTime + 8;
_schedule = [_startTime, _endTime];
@ -100,4 +102,5 @@ for "_i" from 1 to _spawnCount do {
};
};
};
};
true