mirror of
https://github.com/EpochModTeam/Epoch.git
synced 2024-08-30 18:22:13 +00:00
Merge pull request #804 from Ignatz-HeMan/experimental
Advanced Vehicle Repair
This commit is contained in:
commit
4cdc67cf9d
@ -229,9 +229,9 @@ switch _interactOption do {
|
||||
_newDMG = ((_highestDMG - 0.5) max 0);
|
||||
|
||||
if (local _vehicle) then {
|
||||
[_vehicle, [_currentHIT, _newDMG]] call EPOCH_client_repairVehicle;
|
||||
[_vehicle, [[_currentHIT, _newDMG]]] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
[_vehicle,[_currentHIT,_newDMG],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
[_vehicle,[[_currentHIT,_newDMG]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
|
||||
} else {
|
||||
|
@ -60,6 +60,13 @@ switch true do {
|
||||
_currentDMG = 0;
|
||||
{
|
||||
_currentDMG = _x;
|
||||
if (EPOCH_AdvancedVehicleRepair_Enabled) then {
|
||||
if (_cursorTarget iskindof "Landvehicle" || _cursorTarget iskindof "SHIP" || _cursorTarget iskindof "AIR" || _cursorTarget iskindof "TANK") then {
|
||||
if (_currentDMG > 0.9) then {
|
||||
_currentDMG = 0;
|
||||
};
|
||||
};
|
||||
};
|
||||
if (_currentDMG > _highestDMG) then{
|
||||
_highestDMG = _currentDMG;
|
||||
_currentHIT = _forEachIndex;
|
||||
@ -68,9 +75,9 @@ switch true do {
|
||||
if (_highestDMG > 0) then {
|
||||
_newDMG = ((_highestDMG - 0.5) max 0);
|
||||
if (local _cursorTarget) then {
|
||||
[_cursorTarget,[_currentHIT,_newDMG]] call EPOCH_client_repairVehicle;
|
||||
[_cursorTarget,[[_currentHIT,_newDMG]]] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
[_cursorTarget,[_currentHIT,_newDMG],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
[_cursorTarget,[[_currentHIT,_newDMG]],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
} else {
|
||||
if ((damage _cursorTarget) > 0) then {
|
||||
|
@ -3,7 +3,7 @@
|
||||
By Aaron Clark - Epoch Mod
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_activeControl","_bg","_btn_arr","_buffer","_buttonTXT","_button_gen","_button_texts","_cfgItemInteractions","_config","_control","_data","_display","_interactActions","_interactOption","_magCount","_pos","_start_idc","_type","_y2d"];
|
||||
private ["_CfgEpochClient","_Suppressed","_activeControl","_bg","_btn_arr","_buffer","_buttonTXT","_button_gen","_button_texts","_cfgItemInteractions","_config","_control","_data","_display","_interactActions","_interactOption","_magCount","_pos","_start_idc","_type","_y2d"];
|
||||
//[[[end]]]
|
||||
_button_texts = [];
|
||||
|
||||
@ -21,6 +21,8 @@ _buttonTXT = "";
|
||||
_magCount = 1;
|
||||
_interactActions = [];
|
||||
_config = (configfile >> "CfgWeapons" >> _data);
|
||||
_CfgEpochClient = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_Suppressed = getarray (_CfgEpochClient >> "SuppressedCraftingItems");
|
||||
// _cfgItemInteractions = (('CfgItemInteractions' call EPOCH_returnConfig) >> _data);
|
||||
_cfgItemInteractions = ["CfgItemInteractions", _data] call EPOCH_returnConfigV2;
|
||||
if (isClass (_config)) then {
|
||||
@ -29,6 +31,7 @@ if (isClass (_config)) then {
|
||||
_buttonTXT = getText(_cfgItemInteractions >> "interactText");
|
||||
_interactActions = getArray(_cfgItemInteractions >> "interactActions");
|
||||
} else {
|
||||
if (EPOCH_AdvancedVehicleRepair_Enabled && _data in ["VehicleRepair","VehicleRepairLg"]) exitwith {};
|
||||
_config = (configfile >> "CfgMagazines" >> _data);
|
||||
_type = getNumber (_config >> "type");
|
||||
_interactOption = getNumber (_cfgItemInteractions >> "interactAction");
|
||||
@ -53,11 +56,12 @@ if (_magCount > 1) then {
|
||||
};
|
||||
|
||||
_config = 'CfgCrafting' call EPOCH_returnConfig;
|
||||
if (isClass (_config >> _data)) then {
|
||||
EPOCH_CraftingItem = EPOCH_InteractedItem select 0;
|
||||
_button_texts pushBack ["CRAFT","EPOCH_CraftingItem call EPOCH_crafting_load;"];
|
||||
} else {
|
||||
EPOCH_CraftingItem = "";
|
||||
if (isClass (_config >> _data) && !(_data in _Suppressed)) then {
|
||||
EPOCH_CraftingItem = EPOCH_InteractedItem select 0;
|
||||
_button_texts pushBack ["CRAFT","EPOCH_CraftingItem call EPOCH_crafting_load;"];
|
||||
}
|
||||
else {
|
||||
EPOCH_CraftingItem = "";
|
||||
};
|
||||
|
||||
_config = 'CfgVehicleUpgrades' call EPOCH_returnConfig;
|
||||
|
@ -0,0 +1,88 @@
|
||||
/*
|
||||
Author: He-Man - Ignatz-Gaming
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Check for repairable / replaceable and removeable Vehicle-parts
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/vehicles/EPOCH_client_VehicleMaintananceCheck.sqf
|
||||
*/
|
||||
private ["_veh","_config","_VehicleRepairs","_repairs","_removes","_replaces","_wheels","_wheelcounter","_torepair","_HitPointName","_Hit","_wheel","_repairarrays"];
|
||||
_veh = _this;
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_VehicleRepairs = getArray (_config >> "VehicleRepairs");
|
||||
_repairs = [];
|
||||
_removes = [];
|
||||
_replaces = [];
|
||||
_wheels = getnumber (configfile >> "cfgvehicles" >> (typeof _veh) >> "numberPhysicalWheels");
|
||||
if (_veh iskindof "ebike_epoch") then {
|
||||
_wheels = 2;
|
||||
};
|
||||
_wheelcounter = 0;
|
||||
_torepair = (getAllHitPointsDamage _veh) select 0;
|
||||
{
|
||||
_HitPointName = _x;
|
||||
_Hit = (getAllHitPointsDamage _veh) select 2 select _foreachindex;
|
||||
{
|
||||
_x params ["_searchedhit","_limit1","_limit2"];
|
||||
if (_searchedhit isequalto _HitPointName) then {
|
||||
_wheel = ["wheel",tolower _searchedhit] call bis_fnc_instring;
|
||||
if (_wheel) then {
|
||||
_wheelcounter = _wheelcounter + 1;
|
||||
};
|
||||
if (_wheel && _wheelcounter > _wheels) exitwith {};
|
||||
if (_Hit >= _limit2) exitwith {
|
||||
_replaces pushback _searchedhit;
|
||||
};
|
||||
if (_Hit >= _limit1) exitwith {
|
||||
_repairs pushback _searchedhit;
|
||||
};
|
||||
if !((_veh getvariable ["vehicle_slot","-1"]) isequalto "-1") then {
|
||||
if (_searchedhit in ["HitLFWheel","HitLF2Wheel","HitLMWheel","HitLBWheel","HitRFWheel","HitRF2Wheel","HitRMWheel","HitRBWheel","HitEngine"]) then {
|
||||
_removes pushback _searchedhit;
|
||||
};
|
||||
};
|
||||
}
|
||||
else {
|
||||
if (_searchedhit isequalto "glass") then {
|
||||
if ("glass" in _repairs) exitwith {};
|
||||
_glass = ["glass",tolower _HitPointName] call bis_fnc_instring;
|
||||
if (_glass) then {
|
||||
if (_Hit >= _limit1) exitwith {
|
||||
_repairs pushback _searchedhit;
|
||||
};
|
||||
};
|
||||
};
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
|
||||
{
|
||||
if (_x in _repairs || _x in _replaces) then {
|
||||
_torepair = _torepair - [_x];
|
||||
}
|
||||
else {
|
||||
if (["glass",tolower _x] call Bis_fnc_instring) then {
|
||||
_torepair = _torepair - [_x];
|
||||
};
|
||||
};
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
|
||||
if !(_torepair isequalto []) then {
|
||||
_repairarrays = [];
|
||||
{
|
||||
_repairarrays pushback [_x,0];
|
||||
} foreach _torepair;
|
||||
if (local _veh) then {
|
||||
[_veh, _repairarrays] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
[_veh,_repairarrays,player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
};
|
||||
|
||||
EPOCH_VehicleRepairs = [_repairs,_removes,_replaces];
|
@ -0,0 +1,132 @@
|
||||
/*
|
||||
Author: He-Man - Ignatz-Gaming
|
||||
|
||||
Contributors:
|
||||
|
||||
Description:
|
||||
Repair / replac and remove Vehicle-parts
|
||||
|
||||
Licence:
|
||||
Arma Public License Share Alike (APL-SA) - https://www.bistudio.com/community/licenses/arma-public-license-share-alike
|
||||
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/compile/vehicles/EPOCH_client_VehicleMaintananceDo.sqf
|
||||
*/
|
||||
private ["_secondlocalcheck","_repairarrays","_config","_VehicleRepairs","_reqiredMat","_searchname","_line","_returnmat"];
|
||||
params ["_veh","_do","_hitpointname"];
|
||||
_secondlocalcheck = false;
|
||||
_returnmat = "";
|
||||
_repairarrays = [];
|
||||
_config = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_VehicleRepairs = getArray (_config >> "VehicleRepairs");
|
||||
if (isnull _veh) exitwith {
|
||||
['Error - No Vehicle found',5] call Epoch_message;
|
||||
};
|
||||
if !(alive _veh) exitwith {
|
||||
['Error - Vehicle already dead',5] call Epoch_message;
|
||||
};
|
||||
|
||||
if (EPOCH_Vehicle_MaintainLock) exitwith {};
|
||||
EPOCH_Vehicle_MaintainLock = true;
|
||||
|
||||
switch _do do {
|
||||
case 'repair': {
|
||||
_reqiredMat = "";
|
||||
_searchname = _hitpointname;
|
||||
if (["glass",tolower _hitpointname] call Bis_fnc_instring) then {
|
||||
_searchname = "glass";
|
||||
};
|
||||
{
|
||||
_x params ["_name","","","_repairmat"];
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_reqiredMat = _repairmat;
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
if (_reqiredMat isequalto "") exitwith {
|
||||
['Error - Can not find required Material',5] call Epoch_message;
|
||||
};
|
||||
if !(_reqiredMat in (magazines player)) exitwith {
|
||||
_line = format ['You need %1 to repair',_reqiredMat call EPOCH_itemDisplayName];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
player removemagazine _reqiredMat;
|
||||
if (_hitpointname isequalto "glass") then {
|
||||
{
|
||||
if (["glass",tolower _x] call Bis_fnc_instring) then {
|
||||
_repairarrays pushback [_x,0];
|
||||
};
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
}
|
||||
else {
|
||||
_repairarrays pushback [_hitpointname,0];
|
||||
};
|
||||
};
|
||||
case 'replace': {
|
||||
_reqiredMat = "";
|
||||
_searchname = _hitpointname;
|
||||
if (["glass",tolower _hitpointname] call Bis_fnc_instring) then {
|
||||
_searchname = "glass";
|
||||
};
|
||||
{
|
||||
_x params ["_name","","","","_replacemat"];
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_reqiredMat = _replacemat;
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
if (_reqiredMat isequalto "") exitwith {
|
||||
['Error - Can not find required Material',5] call Epoch_message;
|
||||
};
|
||||
if !(_reqiredMat in (magazines player)) exitwith {
|
||||
_line = format ['You need %1 to repair',_reqiredMat call EPOCH_itemDisplayName];
|
||||
[_line,5] call Epoch_message;
|
||||
};
|
||||
player removemagazine _reqiredMat;
|
||||
if (_hitpointname isequalto "glass") then {
|
||||
{
|
||||
if (["glass",tolower _x] call Bis_fnc_instring) then {
|
||||
_repairarrays pushback [_x,0];
|
||||
};
|
||||
} foreach ((getAllHitPointsDamage _veh) select 0);
|
||||
}
|
||||
else {
|
||||
_repairarrays pushback [_hitpointname,0];
|
||||
};
|
||||
};
|
||||
case 'remove': {
|
||||
if !(local _veh) exitwith {
|
||||
_line = 'Error - Go in as Driver first!';
|
||||
['Error - Go in as Driver first!',5] call Epoch_message;
|
||||
};
|
||||
_searchname = _hitpointname;
|
||||
{
|
||||
_x params ["_name","","","","_replacemat"];
|
||||
if (_searchname isequalto _name) exitwith {
|
||||
_returnmat = _replacemat;
|
||||
};
|
||||
} foreach _VehicleRepairs;
|
||||
if (_returnmat isequalto "") exitwith {
|
||||
['Error - Could not find Return Material!',5] call Epoch_message;
|
||||
};
|
||||
_repairarrays pushback [_hitpointname,1];
|
||||
};
|
||||
};
|
||||
|
||||
if !(_repairarrays isequalto []) then {
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medic0';
|
||||
player playMove 'AinvPknlMstpSnonWrflDnon_medicEnd';
|
||||
uisleep 5;
|
||||
if (_secondlocalcheck && !local _veh) exitwith {
|
||||
['Error - Go in as Driver first!',5] call Epoch_message;
|
||||
};
|
||||
if !(_returnmat isequalto "") then {
|
||||
_returnmat call EPOCH_fnc_addItemOverflow;
|
||||
};
|
||||
|
||||
if (local _veh) then {
|
||||
[_veh, _repairarrays] call EPOCH_client_repairVehicle;
|
||||
} else {
|
||||
[_veh,_repairarrays,player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
};
|
||||
|
||||
EPOCH_Vehicle_MaintainLock = false;
|
@ -17,6 +17,26 @@ private ["_currentDMG"];
|
||||
//[[[end]]]
|
||||
params ["_vehicle","_value"];
|
||||
if (local _vehicle) then {
|
||||
_currentDMG = _vehicle getHitIndex (_value select 0);
|
||||
_vehicle setHitIndex[_value select 0, (_currentDMG - 0.5) max 0];
|
||||
{
|
||||
if ((_x select 0) isequaltype 0) then {
|
||||
// _currentDMG = _vehicle getHitIndex (_x select 0);
|
||||
// _vehicle setHitIndex [_x select 0, (_currentDMG - 0.5) max 0];
|
||||
_vehicle setHitIndex [_x select 0, _x select 1];
|
||||
}
|
||||
else {
|
||||
// _currentDMG = _vehicle getHitPointDamage (_x select 0);
|
||||
// _vehicle setHitPointDamage [_x select 0, (_currentDMG - 0.5) max 0];
|
||||
_vehicle setHitPointDamage [_x select 0, _x select 1];
|
||||
};
|
||||
} foreach _value;
|
||||
|
||||
if !({_x > 0} count ((getAllHitPointsDamage _vehicle) select 2) > 0) then {
|
||||
[_vehicle,["ALL",0],player,Epoch_personalToken] remoteExec ["EPOCH_server_repairVehicle",2];
|
||||
};
|
||||
|
||||
_vehicle call EPOCH_interact;
|
||||
if !(EPOCH_arr_interactedObjs isEqualTo[]) then {
|
||||
[EPOCH_arr_interactedObjs] remoteExec['EPOCH_server_save_vehicles', 2];
|
||||
EPOCH_arr_interactedObjs = [];
|
||||
};
|
||||
};
|
||||
|
BIN
Sources/epoch_code/customs/Remove_Engine.paa
Normal file
BIN
Sources/epoch_code/customs/Remove_Engine.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Remove_Wheel.paa
Normal file
BIN
Sources/epoch_code/customs/Remove_Wheel.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_Avionics.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_Avionics.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_Engine.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_Engine.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_Fuel.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_Fuel.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_HullBody.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_HullBody.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_MainRotor.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_MainRotor.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_TailRotor.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_TailRotor.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Repair_Wheel.paa
Normal file
BIN
Sources/epoch_code/customs/Repair_Wheel.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_Engine.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_Engine.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_Glass.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_Glass.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_HullBody.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_HullBody.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_MainRotor.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_MainRotor.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_SLG.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_SLG.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_TailRotor.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_TailRotor.paa
Normal file
Binary file not shown.
BIN
Sources/epoch_code/customs/Replace_Wheel.paa
Normal file
BIN
Sources/epoch_code/customs/Replace_Wheel.paa
Normal file
Binary file not shown.
@ -14,10 +14,13 @@
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/gui/scripts/craftingv2/EPOCH_crafting_getConfig.sqf
|
||||
*/
|
||||
//[[[cog import generate_private_arrays ]]]
|
||||
private ["_arr","_arrIn","_cCTime","_cDescFull","_cDescShort","_cDisplayName","_cModel","_cName","_cNearbyArr","_cPicture","_cPreviewArr","_cPreviewScale","_cPreviewVector","_cPriority","_cRecipeArr","_cType","_cUsedInArr","_out","_type0","_type1","_type2","_type3"];
|
||||
private ["_cfg","_Suppressed","_arr","_arrIn","_cCTime","_cDescFull","_cDescShort","_cDisplayName","_cModel","_cName","_cNearbyArr","_cPicture","_cPreviewArr","_cPreviewScale","_cPreviewVector","_cPriority","_cRecipeArr","_cType","_cUsedInArr","_out","_type0","_type1","_type2","_type3"];
|
||||
//[[[end]]]
|
||||
|
||||
_arrIn = _this;
|
||||
_cfg = 'CfgEpochClient' call EPOCH_returnConfig;
|
||||
_Suppressed = getarray (_cfg >> "SuppressedCraftingItems");
|
||||
|
||||
if !(typeName (_arrIn select 0) isEqualTo "CONFIG") exitWith {[]};
|
||||
|
||||
_type0 = []; _type1 = []; _type2 = []; _type3 = []; _out = [];
|
||||
@ -43,6 +46,31 @@ _type0 = []; _type1 = []; _type2 = []; _type3 = []; _out = [];
|
||||
_cPreviewVector = getNumber (_x >> "previewVector");
|
||||
_cDescFull = getText (_x >> "descriptionFull");
|
||||
_cType = getNumber (_x >> "type");
|
||||
|
||||
if !(_Suppressed isequalto []) then {
|
||||
if (_cName in _Suppressed) then {
|
||||
_cPriority = -1;
|
||||
};
|
||||
_tmp = _cRecipeArr;
|
||||
{
|
||||
if (_x isequaltype []) then {
|
||||
if ((_x select 0) in _Suppressed) then {
|
||||
_cRecipeArr = _cRecipeArr - [_x];
|
||||
};
|
||||
}
|
||||
else {
|
||||
if (_x in _Suppressed) then {
|
||||
_cRecipeArr = _cRecipeArr - [_x];
|
||||
};
|
||||
};
|
||||
} foreach _tmp;
|
||||
|
||||
{
|
||||
if (_x in _cUsedInArr) then {
|
||||
_cUsedInArr = _cUsedInArr - [_x];
|
||||
};
|
||||
} foreach _Suppressed;
|
||||
};
|
||||
|
||||
switch (_cPriority) do {
|
||||
case 0: {_type0 pushBack [_cName,_cDisplayName,_cPicture,_cDescShort,_cModel,_cPriority,_cCTime,_cRecipeArr,_cNearbyArr,_cUsedInArr,_cPreviewArr,_cPreviewScale,_cPreviewVector,_cType,_cDescFull]};
|
||||
|
@ -36,6 +36,13 @@ if (["CfgEpochClient", "madArmaEnabled", true] call EPOCH_fnc_returnConfigEntryV
|
||||
EPOCH_mod_madArma_Enabled = false;
|
||||
};
|
||||
|
||||
// Check if Advanced Vehicle Repair is enabled
|
||||
if (["CfgEpochClient", "UseAdvancedVehicleRepair", true] call EPOCH_fnc_returnConfigEntryV2) then {
|
||||
EPOCH_AdvancedVehicleRepair_Enabled = true;
|
||||
diag_log "Epoch: Advanced Vehicle Repair Enabled";
|
||||
} else {
|
||||
EPOCH_AdvancedVehicleRepair_Enabled = false;
|
||||
};
|
||||
|
||||
// Init Custom vars
|
||||
EPOCH_customVars = [];
|
||||
|
@ -12,6 +12,7 @@
|
||||
Github:
|
||||
https://github.com/EpochModTeam/Epoch/tree/release/Sources/epoch_code/init/client_init.sqf
|
||||
*/
|
||||
EPOCH_Vehicle_MaintainLock = false;
|
||||
EPOCH_CraftingItem = "";
|
||||
EPOCH_ESP_TARGETS = [];
|
||||
EPOCH_ESPMAP_TARGETS = [];
|
||||
|
@ -160,3 +160,305 @@ class pack_safe
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\build_pack.paa";
|
||||
tooltip = "Pack Safe";
|
||||
};
|
||||
|
||||
class VehMaintanance
|
||||
{
|
||||
condition = "dyna_isVehicle && !EPOCH_Vehicle_MaintainLock && EPOCH_AdvancedVehicleRepair_Enabled";
|
||||
action = "dyna_cursorTarget call EPOCH_client_VehicleMaintananceCheck;";
|
||||
icon = "x\addons\a3_epoch_code\Data\UI\buttons\Repair_man.paa";
|
||||
tooltip = "Vehicle Maintanance";
|
||||
class Repair
|
||||
{
|
||||
condition = "!((EPOCH_VehicleRepairs select 0) isequalto []) || !((EPOCH_VehicleRepairs select 2) isequalto [])";
|
||||
action = "";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair Vehicle";
|
||||
class RepairHull
|
||||
{
|
||||
condition = "'HitHull' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitHull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_HullBody.paa";
|
||||
tooltip = "Repair Hull";
|
||||
};
|
||||
class ReplaceHull
|
||||
{
|
||||
condition = "'HitHull' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitHull'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_HullBody.paa";
|
||||
tooltip = "Repair Hull";
|
||||
};
|
||||
class RepairEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Engine.paa";
|
||||
tooltip = "Repair Engine";
|
||||
};
|
||||
class ReplaceEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Engine.paa";
|
||||
tooltip = "Replace Engine";
|
||||
};
|
||||
class ReplaceGlass
|
||||
{
|
||||
condition = "'glass' in (EPOCH_VehicleRepairs select 0) || 'glass' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','glass'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Glass.paa";
|
||||
tooltip = "Replace Glass";
|
||||
};
|
||||
class RepairBody
|
||||
{
|
||||
condition = "'HitBody' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitBody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_HullBody.paa";
|
||||
tooltip = "Repair Body";
|
||||
};
|
||||
class ReplaceBody
|
||||
{
|
||||
condition = "'HitBody' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitBody'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_HullBody.paa";
|
||||
tooltip = "Repair Body";
|
||||
};
|
||||
class RepairFuel
|
||||
{
|
||||
condition = "'HitFuel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitFuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Fuel.paa";
|
||||
tooltip = "Repair Fuel Hose";
|
||||
};
|
||||
class RepairMainRotor
|
||||
{
|
||||
condition = "'HitHRotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitHRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_MainRotor.paa";
|
||||
tooltip = "Repair Main Rotor";
|
||||
};
|
||||
class ReplaceFuel
|
||||
{
|
||||
condition = "'HitFuel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitFuel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Fuel.paa";
|
||||
tooltip = "Replace Fuel Hose";
|
||||
};
|
||||
class ReplaceMainRotor
|
||||
{
|
||||
condition = "'HitHRotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitHRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_MainRotor.paa";
|
||||
tooltip = "Replace Main Rotor";
|
||||
};
|
||||
class RepairTailRotor
|
||||
{
|
||||
condition = "'HitVRotor' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitVRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_TailRotor.paa";
|
||||
tooltip = "Repair Tail Rotor";
|
||||
};
|
||||
class ReplaceTailRotor
|
||||
{
|
||||
condition = "'HitVRotor' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitVRotor'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_TailRotor.paa";
|
||||
tooltip = "Replace Tail Rotor";
|
||||
};
|
||||
class ReplaceWinch
|
||||
{
|
||||
condition = "'HitWinch' in (EPOCH_VehicleRepairs select 0) || 'HitWinch' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitWinch'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_SLG.paa";
|
||||
tooltip = "Replace Winch";
|
||||
};
|
||||
class RepairTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 1st Left Wheel";
|
||||
};
|
||||
class RepairTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 2nd Left Wheel";
|
||||
};
|
||||
class RepairTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 3rd Left Wheel";
|
||||
};
|
||||
class RepairTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 4th Left Wheel";
|
||||
};
|
||||
class RepairTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 1st Right Wheel";
|
||||
};
|
||||
class RepairTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 2nd Right Wheel";
|
||||
};
|
||||
class RepairTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 3rd Right Wheel";
|
||||
};
|
||||
class RepairTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 0)";
|
||||
action = "[dyna_cursorTarget,'repair','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Wheel.paa";
|
||||
tooltip = "Repair 4th Right Wheel";
|
||||
};
|
||||
class ReplaceTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 1st Left Wheel";
|
||||
};
|
||||
class ReplaceTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 2nd Left Wheel";
|
||||
};
|
||||
class ReplaceTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 3rd Left Wheel";
|
||||
};
|
||||
class ReplaceTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 4th Left Wheel";
|
||||
};
|
||||
class ReplaceTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 1st Right Wheel";
|
||||
};
|
||||
class ReplaceTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 2nd Right Wheel";
|
||||
};
|
||||
class ReplaceTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 3rd Right Wheel";
|
||||
};
|
||||
class ReplaceTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Replace_Wheel.paa";
|
||||
tooltip = "Replace 4th Right Wheel";
|
||||
};
|
||||
class RepairAvionics
|
||||
{
|
||||
condition = "'HitAvionics' in (EPOCH_VehicleRepairs select 0) || 'HitAvionics' in (EPOCH_VehicleRepairs select 2)";
|
||||
action = "[dyna_cursorTarget,'replace','HitAvionics'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Repair_Avionics.paa";
|
||||
tooltip = "Repair Avionics";
|
||||
};
|
||||
};
|
||||
class Remove
|
||||
{
|
||||
condition = "!((EPOCH_VehicleRepairs select 1) isequalto [])";
|
||||
action = "";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove Parts";
|
||||
class RemoveEngine
|
||||
{
|
||||
condition = "'HitEngine' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitEngine'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Engine.paa";
|
||||
tooltip = "Remove Engine";
|
||||
};
|
||||
class RemoveTire1
|
||||
{
|
||||
condition = "'HitLFWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 1st Left Wheel";
|
||||
};
|
||||
class RemoveTire2
|
||||
{
|
||||
condition = "'HitLF2Wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 2nd Left Wheel";
|
||||
};
|
||||
class RemoveTire3
|
||||
{
|
||||
condition = "'HitLMWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 3rd Left Wheel";
|
||||
};
|
||||
class RemoveTire4
|
||||
{
|
||||
condition = "'HitLBWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitLBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 4th Left Wheel";
|
||||
};
|
||||
class RemoveTire5
|
||||
{
|
||||
condition = "'HitRFWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRFWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 1st Right Wheel";
|
||||
};
|
||||
class RemoveTire6
|
||||
{
|
||||
condition = "'HitRF2Wheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRF2Wheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 2nd Right Wheel";
|
||||
};
|
||||
class RemoveTire7
|
||||
{
|
||||
condition = "'HitRMWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRMWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 3rd Right Wheel";
|
||||
};
|
||||
class RemoveTire8
|
||||
{
|
||||
condition = "'HitRBWheel' in (EPOCH_VehicleRepairs select 1)";
|
||||
action = "[dyna_cursorTarget,'remove','HitRBWheel'] spawn EPOCH_client_VehicleMaintananceDo";
|
||||
icon = "epoch_code\customs\Remove_Wheel.paa";
|
||||
tooltip = "Remove 4th Right Wheel";
|
||||
};
|
||||
};
|
||||
};
|
@ -150,6 +150,8 @@ class CfgClientFunctions
|
||||
class client_fillVehicle {};
|
||||
class client_gearVehicle {};
|
||||
class client_upgradeVehicle {};
|
||||
class client_VehicleMaintananceCheck {};
|
||||
class client_VehicleMaintananceDo {};
|
||||
};
|
||||
class missions
|
||||
{
|
||||
|
@ -90,6 +90,29 @@ class CfgEpochClient
|
||||
playerDisableRevenge = 0;
|
||||
playerRevengeMinAliveTime = 900;
|
||||
bankTransferTime[] = {0.0006,1.2,0.06};
|
||||
|
||||
SuppressedCraftingItems[] = {"VehicleRepair","VehicleRepairLg"}; // Suppresed for usage of "Advanced Vehicle Repair"
|
||||
UseAdvancedVehicleRepair = "true";
|
||||
VehicleRepairs[] = {
|
||||
{"HitHull",0.33,0.66,"ItemScraps","ItemCorrugated"},
|
||||
{"HitBody",0.33,1,"ItemScraps","ItemCorrugated"},
|
||||
{"HitLFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitLBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRFWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRF2Wheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRMWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitRBWheel",0.33,1,"VehicleRepair","SpareTire"},
|
||||
{"HitEngine",0.33,0.91,"EngineParts","EngineBlock"},
|
||||
{"glass",0.33,1,"ItemGlass","ItemGlass"},
|
||||
{"HitFuel",0.1,0.66,"ItemDuctTape","FuelTank"},
|
||||
{"HitHRotor",0.33,1,"ItemCorrugated","ItemRotor"},
|
||||
{"HitVRotor",0.33,1,"ItemCorrugated","ItemRotor"},
|
||||
{"HitWinch",0.33,0.91,"ItemCables","ItemCables"},
|
||||
{"HitAvionics",0.33,0.91,"CircuitParts","CircuitParts"}
|
||||
};
|
||||
|
||||
// include configs
|
||||
#include "CfgEpochClient\Altis.hpp"
|
||||
#include "CfgEpochClient\australia.hpp"
|
||||
|
@ -19,11 +19,24 @@ if (_player distance _vehicle > 20) exitWith{};
|
||||
|
||||
if ((_value select 0) isEqualTo "ALL") then {
|
||||
_vehicle setDamage (_value select 1);
|
||||
} else {
|
||||
}
|
||||
else {
|
||||
if (local _vehicle) then {
|
||||
_vehicle setHitIndex _value;
|
||||
{
|
||||
if ((_x select 0) isequaltype 0) then {
|
||||
_vehicle setHitIndex _x;
|
||||
}
|
||||
else {
|
||||
_vehicle setHitPointDamage _x;
|
||||
};
|
||||
} foreach _value;
|
||||
} else {
|
||||
[_vehicle, _value] remoteExec ['EPOCH_client_repairVehicle',_vehicle];
|
||||
};
|
||||
};
|
||||
|
||||
if !({_x > 0} count ((getAllHitPointsDamage _vehicle) select 2) > 0) then {
|
||||
_vehicle setdamage 0;
|
||||
};
|
||||
|
||||
_vehicle call EPOCH_server_save_vehicle;
|
||||
|
Loading…
Reference in New Issue
Block a user