mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Better randomize left Vehicles in Traders
This commit is contained in:
parent
d705e8411c
commit
a9a7b86372
@ -42,6 +42,8 @@ _TraderDeco = [_serverSettingsConfig, "TraderDeco", true] call EPOCH_fnc_returnC
|
|||||||
_WinterDeco = (Epoch_ServerRealtime select 1) == 12 && (Epoch_ServerRealtime select 2) > 20 && _TraderDeco;
|
_WinterDeco = (Epoch_ServerRealtime select 1) == 12 && (Epoch_ServerRealtime select 2) > 20 && _TraderDeco;
|
||||||
_HelloweenDeco = (((Epoch_ServerRealtime select 1) == 10 && (Epoch_ServerRealtime select 2) >= 24) || ((Epoch_ServerRealtime select 1) == 11 && (Epoch_ServerRealtime select 2) <= 3)) && _TraderDeco;
|
_HelloweenDeco = (((Epoch_ServerRealtime select 1) == 10 && (Epoch_ServerRealtime select 2) >= 24) || ((Epoch_ServerRealtime select 1) == 11 && (Epoch_ServerRealtime select 2) <= 3)) && _TraderDeco;
|
||||||
|
|
||||||
|
_StoredVehiclesTmp = [];
|
||||||
|
|
||||||
_TraderInit = {
|
_TraderInit = {
|
||||||
_this allowdamage !_TraderGodMode;
|
_this allowdamage !_TraderGodMode;
|
||||||
_this setDir _dir;
|
_this setDir _dir;
|
||||||
@ -95,34 +97,8 @@ _TraderItemsClean = {
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then {
|
if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then {
|
||||||
_newstock = 0;
|
|
||||||
for "_k" from 1 to _currentStock do {
|
for "_k" from 1 to _currentStock do {
|
||||||
if (EPOCH_storedVehicleCount < _storedVehicleLimit) then {
|
_StoredVehiclesTmp pushback [_i,_item];
|
||||||
_newstock = _newstock + 1;
|
|
||||||
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + 1;
|
|
||||||
if !(_item in EPOCH_traderStoredVehicles) then {
|
|
||||||
EPOCH_traderStoredVehicles pushBack _item;
|
|
||||||
EPOCH_traderStoredVehiclesCnt pushBack 1;
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
_indexStock = EPOCH_traderStoredVehicles find _item;
|
|
||||||
if (_indexStock != -1) then {
|
|
||||||
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
|
|
||||||
EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + 1)];
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
};
|
|
||||||
if !(_newstock == _currentStock) then {
|
|
||||||
_arrchanged = true;
|
|
||||||
if (_newstock > 0) then {
|
|
||||||
// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Changed stock of %2 from Trader | _currentStock: %3 | _newstock: %4 | EPOCH_storedVehicleCount: %5 | _storedVehicleLimit: %6",_i,str _item,_currentStock,_newstock,EPOCH_storedVehicleCount,_storedVehicleLimit];
|
|
||||||
(_arr select 1) set [_idx,_newstock];
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
// diag_log format ["EPOCH_DEBUG: TraderSlot: %1 | Removed %2 from Trader | EPOCH_storedVehicleCount: %3 | _storedVehicleLimit: %4",_i,str _item,EPOCH_storedVehicleCount,_storedVehicleLimit];
|
|
||||||
_delete = true;
|
|
||||||
};
|
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
@ -234,4 +210,47 @@ for "_i" from 0 to (_maxTraderLimit-1) do {
|
|||||||
};
|
};
|
||||||
};
|
};
|
||||||
};
|
};
|
||||||
|
|
||||||
|
// Remove random overloaded Vehicles from Traders
|
||||||
|
for "_i" from 1 to ((count _StoredVehiclesTmp) - _storedVehicleLimit) do {
|
||||||
|
_selected = _StoredVehiclesTmp deleteat (((round random (count _StoredVehiclesTmp))-1) max 0);
|
||||||
|
_selected params ["_AiSlot","_Item"];
|
||||||
|
{
|
||||||
|
if ((_x getvariable ["AI_SLOT",-1]) isEqualTo _AiSlot) exitwith {
|
||||||
|
_arr = _x getVariable ["AI_ITEMS", [[],[]]];
|
||||||
|
_arr params ["_itemsarr","_cntarray"];
|
||||||
|
_idx = _itemsarr find _Item;
|
||||||
|
if (_idx > -1) then {
|
||||||
|
if ((_cntarray select _idx) > 1) then {
|
||||||
|
_cntarray set [_idx,(_cntarray select _idx) - 1];
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_itemsarr deleteat _idx;
|
||||||
|
_cntarray deleteat _idx;
|
||||||
|
};
|
||||||
|
_x setVariable ["AI_ITEMS", _arr, true];
|
||||||
|
_objHiveKey = format ["%1:%2", (call EPOCH_fn_InstanceID), _AiSlot];
|
||||||
|
["AI_ITEMS", _objHiveKey, EPOCH_expiresAIdata, _arr] call EPOCH_fnc_server_hiveSETEX;
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach EPOCH_Traders;
|
||||||
|
};
|
||||||
|
|
||||||
|
// Count all left over Vehicles in Trader Stock
|
||||||
|
{
|
||||||
|
EPOCH_storedVehicleCount = EPOCH_storedVehicleCount + 1;
|
||||||
|
_x params ["","_item"];
|
||||||
|
if !(_item in EPOCH_traderStoredVehicles) then {
|
||||||
|
EPOCH_traderStoredVehicles pushBack _item;
|
||||||
|
EPOCH_traderStoredVehiclesCnt pushBack 1;
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
_indexStock = EPOCH_traderStoredVehicles find _item;
|
||||||
|
if (_indexStock != -1) then {
|
||||||
|
_existingStock = EPOCH_traderStoredVehiclesCnt select _indexStock;
|
||||||
|
EPOCH_traderStoredVehiclesCnt set [_indexStock, (_existingStock + 1)];
|
||||||
|
};
|
||||||
|
};
|
||||||
|
} foreach _StoredVehiclesTmp;
|
||||||
|
|
||||||
true
|
true
|
||||||
|
Loading…
Reference in New Issue
Block a user