From e5c8606cd9b5681137e71443691449d3d5d01fa3 Mon Sep 17 00:00:00 2001 From: He-Man Date: Wed, 16 Jan 2019 19:24:55 +0100 Subject: [PATCH] Config for Vehicle Tradedistance Thx to Ghostrider for the suggestion! --- .../epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf | 2 +- Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf | 2 +- Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf | 2 +- Sources/epoch_config/Configs/CfgEpochClient.hpp | 5 +++-- .../compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf | 5 +++-- 5 files changed, 9 insertions(+), 7 deletions(-) diff --git a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf index eb54023e..f80d7b8b 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_NPCTraderMenuFilter.sqf @@ -87,7 +87,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { }; } forEach EPOCH_NpcTradePlayerItems; - _vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], 30]; + _vehicles = player nearEntities [["LandVehicle","Ship","Air","Tank"], ["CfgEpochClient", "MaxVehTradeDist", 30] call EPOCH_fnc_returnConfigEntryV2]; if !(_vehicles isequalto []) then { _VehOfferArray = []; _sizeOut = lbSize _PlayerItemsOutBox; diff --git a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf index bc7e3208..e7955c9e 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_npcTraderAdd.sqf @@ -75,7 +75,7 @@ if !(isNull EPOCH_lastNPCtradeTarget) then { } foreach ((getAllHitPointsDamage _vehicle) select 0); }; if (!_allowAdd) exitwith {}; - } foreach (EPOCH_lastNPCtradeTarget nearEntities [[_uiItem], 30]); + } foreach (EPOCH_lastNPCtradeTarget nearEntities [[_uiItem], ["CfgEpochClient", "MaxVehTradeDist", 30] call EPOCH_fnc_returnConfigEntryV2]); }; }; }; diff --git a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf index 7590241a..eb62b75e 100644 --- a/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf +++ b/Sources/epoch_code/compile/traders/EPOCH_startNpcTrade.sqf @@ -88,7 +88,7 @@ if (alive _this) then { _added = true; } else { - _vehicles = (nearestobjects [_this,[_item], 30]) select {local _x && alive _x}; + _vehicles = (nearestobjects [_this,[_item], ["CfgEpochClient", "MaxVehTradeDist", 30] call EPOCH_fnc_returnConfigEntryV2]) select {local _x && alive _x}; if (!(_vehicles isEqualTo[])) then { _vehicle = _vehicles select 0; _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"]; diff --git a/Sources/epoch_config/Configs/CfgEpochClient.hpp b/Sources/epoch_config/Configs/CfgEpochClient.hpp index 8d740834..892309b8 100644 --- a/Sources/epoch_config/Configs/CfgEpochClient.hpp +++ b/Sources/epoch_config/Configs/CfgEpochClient.hpp @@ -224,10 +224,11 @@ class CfgEpochClient EnableTempVehTrade = "false"; // Enable selling of temp Vehicles (not handled by Epoch). Temp Vehicles will not be stored in Traders, but can be sold BulletCalculateOnCraft = "true"; // Enable Bullet Calculation on Crafting - Example: If you craft a large EnergyPack with 3 half full EnergyPacks, you will only get a half filled large EnergyPack back - // Advanced Vehicle Repair + // Vehicle Settings + DisallowSellOnDamage = "false"; // Prevent from selling Vehicles with one or more fully damaged wheel or engine + MaxVehTradeDist = 30; // Max distance where Players can sell Vehicles to Traders UseAdvancedVehicleRepair = "true"; // Switch On / Off Advanced Vehicle Repair (Does not effect SuppressedCraftingItems !) EnableRemoveParts = "true"; // Enable removing Tires / Engines from Vehicles - DisallowSellOnDamage = "false"; // Prevent from selling Vehicles with one or more fully damaged wheel or engine SuppressedCraftingItems[] = { // These Items can not be crafted (but can be used in recipe) "VehicleRepairLg", // Supressed for Advanced Vehicle Repair (no longer needed) "KitMetalQuarterFloor", // Item is Upgradeable, but you can remove it here to make it also Craftable diff --git a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf index b7c5e00d..ea0150de 100644 --- a/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf +++ b/Sources/epoch_server/compile/epoch_trading/EPOCH_server_makeNPCTrade.sqf @@ -17,7 +17,7 @@ private [ "_MaxBankDebit","_SkipOut","_VAL","_aiItems","_bankBalance","_bankData "_group","_helipad","_helipads","_item","_itemClasses","_itemQty","_itemQtys","_itemTax","_itemWorth","_itemsIn","_itemsOut","_lockOwner","_makeTradeIn","_message","_nearByHolder", "_objHiveKey","_objOwner","_playerCryptoLimit","_playerGroup","_playerNetID","_playerUID","_position","_qtyIndex","_response","_return","_returnIn","_returnOut","_road", "_serverSettingsConfig","_slot","_smoke","_tax","_tmpposition","_tradeIn","_tradeOut","_tradeQtyTotal","_tradeTotal","_vars","_vehHiveKey","_vehObj","_vehSlot","_vehicle","_vehicleBought", - "_vehicleSold","_vehicles","_vehslot","_wH","_wHPos","_wp","_kIndex","_playerCStats","_playerKarma","_playerKarmaAdj","_EnableTempVehTrade" + "_vehicleSold","_vehicles","_vehslot","_wH","_wHPos","_wp","_kIndex","_playerCStats","_playerKarma","_playerKarmaAdj","_EnableTempVehTrade","_MaxVehTradeDist" ]; params ["_trader","_itemsIn","_itemsOut","_player",["_token","",[""]] ]; @@ -58,6 +58,7 @@ if (_slot != -1) then { _aiItems = _trader getVariable["AI_ITEMS", [[], []] ]; _itemClasses = _aiItems select 0; _itemQtys = _aiItems select 1; + _MaxVehTradeDist = ["CfgEpochClient", "MaxVehTradeDist", 30] call EPOCH_fnc_returnConfigEntryV2; { _x params ["_item","_itemQty"]; if (isClass (_config >> _item)) then { @@ -69,7 +70,7 @@ if (_slot != -1) then { _itemWorth = round (_itemWorth*(_itemQty/_maxrnd)); _makeTradeIn = false; if (_item isKindOf "Air" || _item isKindOf "Ship" || _item isKindOf "LandVehicle" || _item isKindOf "Tank") then{ - _vehicles = (nearestobjects [_trader,[_item],30]) select {owner _x == owner _player && alive _x}; + _vehicles = (nearestobjects [_trader,[_item],_MaxVehTradeDist]) select {owner _x == owner _player && alive _x}; if !(_vehicles isEqualTo[]) then { _vehicle = _vehicles select 0; _vehSlot = _vehicle getVariable["VEHICLE_SLOT", "ABORT"];