============= [Fix] Salvage Vehicle Tires and Damaged Parts ==============
What it does....
Fixing the Salvage Vehicle Script.
Some Admins know the issue that it is possible to remove 8 Tires from any Cars/ATVs or it is not possible to remove fully repaired Tires.
This thing should fix this Problem.
!!WARNING!!
An Epoch Dev said this about the Damage part:
Source: http://epochmod.com/forum/index.php?/topic/10284-why-is-salvage-vehicles-not-complete/#entry71890To prevent issues with certain vehicles that do not take tire damage, thus allowing you to take an unlimited amount.
I did not tested this, but you know now about this issue. Maybe someone can tell us which vehicles has invincible so it is possible to disable salvaging tires from this vehicles.
END OF THE WARNING
What you need:
custom fn_selfaction.sqf
fixed salvage_vehicles.sqf
How to Install:
fn_selfaction:
find this part:
Code:
_menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "z\addons\dayz_code\actions\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
and change the path to the salvage_vehicles.sqf:
_menu1 = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_SALVAGEV", "path_to\salvage_vehicle.sqf",_cursorTarget, 0, true, false, "",""];
fixed salvage_vehicles.sqf
Code:
//Hitpoint and Damage fix by SchwEde
private ["_part","_cancel","_color","_percent","_string","_handle","_damage","_cmpt","_vehicle","_hitpoints"];
_vehicle = _this select 3;
{dayz_myCursorTarget removeAction _x} count s_player_repairActions;s_player_repairActions = [];
// dayz_myCursorTarget = _vehicle;
if (((typeof _vehicle) isKindOf "Car") and !((typeof _vehicle) isKindOf "Truck")) then {
_hitpoints = ["HitGlass1","HitGlass2","HitGlass3","HitGlass4","HitLFWheel","HitLBWheel","HitRFWheel","HitRBWheel","HitFuel","HitEngine"];
};
if (((typeof _vehicle) isKindOf "Motorcycle")) then {
_hitpoints = ["HitGlass1","HitGlass2","HitFWheel","HitBWheel","HitFuel","HitEngine"];
};
if ((typeof _vehicle) isKindOf "Truck") then {
_hitpoints = ["HitGlass1","HitGlass2","HitGlass3","HitGlass4","HitLFWheel","HitLBWheel","HitRFWheel","HitRBWheel","HitLMWheel","HitRMWheel","HitFuel","HitEngine"];
};
// _allFixed = true;
//_hitpoints = _vehicle call vehicle_getHitpoints; // old Hitpoints
// diag_log format["DEBUG SALVAGE: %1", _hitpoints];
{
_damage = [_vehicle,_x] call object_getHit;
_part = "PartGeneric";
//change "HitPart" to " - Part" rather than complicated string replace
_cmpt = toArray (_x);
_cmpt set [0,20];
_cmpt set [1,toArray ("-") select 0];
_cmpt set [2,20];
_cmpt = toString _cmpt;
if(["Engine",_x,false] call fnc_inString) then {
_part = "PartEngine";
};
if(["HRotor",_x,false] call fnc_inString) then {
_part = "PartVRotor"; //yes you need PartVRotor to fix HRotor LOL
};
if(["Fuel",_x,false] call fnc_inString) then {
_part = "PartFueltank";
};
if(["Wheel",_x,false] call fnc_inString) then {
_part = "PartWheel";
};
if(["Glass",_x,false] call fnc_inString) then {
_part = "PartGlass";
};
// allow removal of any lightly damaged parts
if (_damage <= 0.95 and _damage >= 0) then {
// Do not allow removal of engine || fueltanks
if( _part == "PartGlass" || _part == "PartWheel" ) then {
_color = "color='#ffff00'"; //yellow
if (_damage >= 0.5) then {_color = "color='#ff8800'";}; //orange
if (_damage >= 0.75) then {_color = "color='#ff0000'";}; //red
_percent = round(_damage*100);
_string = format["<t %2>Remove%1 (%3 %4)</t>",_cmpt,_color,_percent,"%"]; //Remove - Part
_handle = dayz_myCursorTarget addAction [_string, "\z\addons\dayz_code\actions\salvage.sqf",[_vehicle,_part,_x], 0, false, true, "",""];
s_player_repairActions set [count s_player_repairActions,_handle];
};
};
} count _hitpoints;
if(count _hitpoints > 0 ) then {
_cancel = dayz_myCursorTarget addAction [localize "STR_EPOCH_PLAYER_CANCEL", "\z\addons\dayz_code\actions\repair_cancel.sqf","repair", 0, true, false, "",""];
s_player_repairActions set [count s_player_repairActions,_cancel];
s_player_repair_crtl = 1;
};
If you like to change the max salvage damage just change this line:
if (_damage <= 0.95 [<<max damage] and _damage >= 0 [<< min damage]) then {
Credits:
I dont take Credits for the Salvage Script, just for the Fixes
Guy(s) who made this Script
Last edited: