diff --git a/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp b/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp index e3d08d31a..88798fb17 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/CfgWeapons.hpp @@ -303,6 +303,7 @@ class CfgWeapons #include "Tools\Binocular.hpp" #include "Tools\NVG.hpp" + #include "Tools\BinocularVector.hpp" #include "Tools\Chainsaw.hpp" #include "Tools\Map.hpp" diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Binocular.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Binocular.hpp index 18b48b888..a906cd3a6 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Binocular.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Binocular.hpp @@ -1,4 +1,14 @@ class Binocular : Default { modelOptics = "z\addons\dayz_communityweapons\binocular\2dscope_binocular.p3d"; +}; + +class BinocularBroken : Default +{ + scope = 2; + type = 4096; + displayName = $STR_EQUIP_BROKEN_BINOCULAR; + descriptionShort = $STR_EQUIP_BROKEN_BINOCULAR_DESC; + model = "\ca\weapons\dalekohled_proxy"; + picture = "\dayz_epoch_c\icons\tools\ItemBinocularBroken.paa"; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/BinocularVector.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/BinocularVector.hpp new file mode 100644 index 000000000..1ea78e4f8 --- /dev/null +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/BinocularVector.hpp @@ -0,0 +1,24 @@ +class Binocular_VectorBroken : Default +{ + scope = 2; + type = 4096; + displayName = $STR_EQUIP_BROKEN_BINOCULARVECTOR; + descriptionShort = $STR_EQUIP_BROKEN_BINOCULARVECTOR_DESC; + model = "\ca\weapons_E\vector\vector21dt"; + picture = "\dayz_epoch_c\icons\tools\ItemBinocularVectorBroken.paa"; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_BIONCULARVECTOR; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {"ItemSolder_DZE"}; + output[] = {}; + outputweapons[] = {"Binocular_Vector"}; + input[] = {{"equip_floppywire",1},{"equip_scrapelectronics",1}}; + inputweapons[] = {"Binocular_VectorBroken"}; + }; + }; +}; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Crowbar.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Crowbar.hpp index 71a4ec814..5e18e28e2 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Crowbar.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Crowbar.hpp @@ -45,4 +45,19 @@ class ItemCrowbarBent : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemCrowbarBroken.paa"; displayName = $STR_EQUIP_NAME_CROWBARBENT; descriptionShort = $STR_EQUIP_DESC_CROWBARBENT; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_CROWBAR; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {"fire"}; + requiretools[] = {"ItemToolbox"}; + output[] = {}; + outputweapons[] = {"ItemCrowbar"}; + input[] = {{"PartGeneric",1}}; + inputweapons[] = {"ItemCrowbarBent"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Etool.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Etool.hpp index 45042b3c6..4a187e091 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Etool.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Etool.hpp @@ -14,4 +14,19 @@ class ItemEtoolBroken : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemEtoolBroken.paa"; displayName = $STR_EQUIP_NAME_1_BROKEN; descriptionShort = $STR_EQUIP_DESC_1_BROKEN; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_ETOOL; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemEtool"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemEtoolBroken"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/FishingPole.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/FishingPole.hpp index c9d186251..67122189e 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/FishingPole.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/FishingPole.hpp @@ -45,4 +45,19 @@ class ItemFishingPoleBroken : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemFishingpoleBroken.paa"; displayName = $STR_ITEM_NAME_FISHINGPOLEBROKEN; descriptionShort = $STR_ITEM_DESC_FISHINGPOLE_BROKEN; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_FISHINGPOLE; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemFishingPole"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemFishingPoleBroken"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/GPS.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/GPS.hpp index d9918e4c7..cbc7e9ac6 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/GPS.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/GPS.hpp @@ -10,4 +10,19 @@ class ItemGPSBroken_DZE : ItemCore model = "z\addons\dayz_communityassets\models\gps.p3d"; picture = "\dayz_epoch_c\icons\tools\ItemGPSBroken.paa"; descriptionShort = $STR_EQUIP_BROKEN_GPS_DESC; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_GPS; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {"ItemSolder_DZE"}; + output[] = {}; + outputweapons[] = {"ItemGPS"}; + input[] = {{"equip_floppywire",1},{"equip_scrapelectronics",1}}; + inputweapons[] = {"ItemGPSBroken_DZE"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Hatchet.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Hatchet.hpp index babcddeff..d18b4b61b 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Hatchet.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Hatchet.hpp @@ -33,14 +33,19 @@ class ItemHatchetBroken : ItemCore model = "\dayz_equip\models\hatchet.p3d"; displayName = $STR_name_ItemHatchetBroken; descriptionShort = $STR_desc_ItemHatchetBroken; - fixedTool = "ItemHatchet"; class ItemActions { class Repair { text = $STR_ACTIONS_FIX_HATCHET; - script="spawn player_fixHatchet;"; - }; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemHatchet"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemHatchetBroken"}; + }; }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/NVG.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/NVG.hpp index 37da48244..1fd863e6b 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/NVG.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/NVG.hpp @@ -11,11 +11,27 @@ class NVGoggles_DZE: NVGoggles model = "\dayz_epoch_c\items\nvg\nvg_dzn.p3d"; }; -class ItemNVGBroken_DZE : ItemCore +class ItemNVGBroken_DZE : Default { scope = 2; + type = 4096; displayName = $STR_EQUIP_BROKEN_NV; model = "\dayz_epoch_c\items\nvg\nvg_dzn.p3d"; picture = "\dayz_epoch_c\icons\tools\ItemNightVisionBroken.paa"; descriptionShort = $STR_EQUIP_BROKEN_NV_DESC; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_NIGHTVISION; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {"ItemSolder_DZE"}; + output[] = {}; + outputweapons[] = {"NVGoggles"}; + input[] = {{"equip_floppywire",1},{"equip_scrapelectronics",1}}; + inputweapons[] = {"ItemNVGBroken_DZE"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Pickaxe.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Pickaxe.hpp index 287694996..ec7b402e8 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Pickaxe.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Pickaxe.hpp @@ -23,14 +23,19 @@ class ItemPickaxeBroken : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemPickaxeBroken.paa"; displayName = $STR_name_ItemPickaxeBroken; descriptionShort = $STR_desc_ItemPickaxeBroken; - fixedTool = "ItemPickaxe"; class ItemActions { class Repair { text = $STR_ACTIONS_FIX_PICKAXE; - script = "spawn player_fixHatchet;"; - }; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemPickaxe"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemPickaxeBroken"}; + }; }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Radio.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Radio.hpp index 56184582f..52e2e13c5 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Radio.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Radio.hpp @@ -18,4 +18,19 @@ class ItemRadioBroken_DZE : ItemCore model = "\nst\ns_dayz\items\radio\radio_dzn.p3d"; picture = "\dayz_epoch_c\icons\tools\ItemRadioBroken.paa"; descriptionShort = $STR_EQUIP_BROKEN_RADIO_DESC; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_RADIO; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {"ItemSolder_DZE"}; + output[] = {}; + outputweapons[] = {"ItemRadio"}; + input[] = {{"equip_floppywire",1},{"equip_scrapelectronics",1}}; + inputweapons[] = {"ItemRadioBroken_DZE"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Shovel.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Shovel.hpp index eee967590..88694bfd8 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Shovel.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Shovel.hpp @@ -14,4 +14,19 @@ class ItemShovelBroken : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemShovelBroken.paa"; displayName = $STR_EQUIP_NAME_1b_BROKEN; descriptionShort = $STR_EQUIP_DESC_1b_BROKEN; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_SHOVEL; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemShovel"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemShovelBroken"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/Configs/CfgWeapons/Tools/Sledgehammer.hpp b/SQF/dayz_code/Configs/CfgWeapons/Tools/Sledgehammer.hpp index acb095532..bc62a310c 100644 --- a/SQF/dayz_code/Configs/CfgWeapons/Tools/Sledgehammer.hpp +++ b/SQF/dayz_code/Configs/CfgWeapons/Tools/Sledgehammer.hpp @@ -33,6 +33,21 @@ class ItemSledgeBroken: ItemCore picture = "\dayz_epoch_c\icons\tools\ItemSledge1Broken.paa"; displayName = $STR_name_ItemSledgeHammerBroken; descriptionShort = $STR_desc_ItemSledgeHammerBroken; + + class ItemActions + { + class Repair + { + text = $STR_ACTIONS_FIX_SLEDGE_HAMMER; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemSledge"}; + input[] = {{"equip_duct_tape",1},{"ItemSledgeHandle",1}}; + inputweapons[] = {"ItemSledgeBroken"}; + }; + }; }; //Vanilla sledge is using a different model. @@ -53,14 +68,19 @@ class ItemSledgeHammerBroken : ItemCore picture = "\dayz_epoch_c\icons\tools\ItemSledge2Broken.paa"; displayName = $STR_name_ItemSledgeHammerBroken; descriptionShort = $STR_desc_ItemSledgeHammerBroken; - fixedTool = "ItemSledgeHammer"; class ItemActions { - class Toolbelt + class Repair { text = $STR_ACTIONS_FIX_SLEDGE_HAMMER; - script = "spawn player_fixHatchet;"; - }; - }; + script = ";['Repair','CfgWeapons', _id] spawn player_craftItem;"; + neednearby[] = {}; + requiretools[] = {}; + output[] = {}; + outputweapons[] = {"ItemSledgeHammer"}; + input[] = {{"equip_duct_tape",1},{"equip_lever",1}}; + inputweapons[] = {"ItemSledgeHammerBroken"}; + }; + }; }; \ No newline at end of file diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index 2927aad38..c482b4db7 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -115,12 +115,12 @@ if (!isDedicated) then { player_fillquiver = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fillQuiver.sqf"; call compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_switchWeapon.sqf"; player_gather = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_gather.sqf"; - player_tearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_tearClothes.sqf"; - player_fixHatchet = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fixTools.sqf"; + player_tearClothes = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_tearClothes.sqf"; player_sharpen = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_sharpen.sqf"; player_butcher = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\gather_meat.sqf"; player_pushPlane = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_pushPlane.sqf"; + //player_fixHatchet = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_fixTools.sqf"; //player_repairVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\repair_vehicle.sqf"; //player_salvageVehicle = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\salvage_vehicle.sqf"; //player_makeFire = compile preprocessFileLineNumbers "\z\addons\dayz_code\actions\player_makefire.sqf"; diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml index da710dd6c..056b87d7c 100644 --- a/SQF/dayz_code/stringtable.xml +++ b/SQF/dayz_code/stringtable.xml @@ -25274,7 +25274,23 @@ Broken APSI (Anti PSI) device, that must be repaired. Kaputter APSI (Anti PSI) Emitter, welcher repariert werden muss. - + + + Broken Binocular + Kaputtes Fernglas + + + Broken Binocular that must be repaired. + Ein kaputtes Fernglas, welches repariert werden muss. + + + Broken Rangefinder + Kaputter Entfernungsmesser + + + Broken Rangefinder that must be repaired. + Ein kaputter Entfernungsmesser, welcher repariert werden muss. + Disabled: Deaktiviert: @@ -25493,6 +25509,38 @@ %1 or %2 %1 oder %2 + + Fix Shovel + Schaufel reparieren + + + Fix Crowbar + Brechstange reparieren + + + Fix Entrenching Tool + Klappspaten reparieren + + + Fix Fishing Pole + Angel reparieren + + + Fix Nightvision + Nachtsichtgerät reparieren + + + Fix Rangefinder + Entfernungsmesser reparieren + + + Fix Radio + Funkgerät reparieren + + + Fix GPS + GPS reparieren +