diff --git a/SQF/dayz_code/actions/object_build.sqf b/SQF/dayz_code/actions/object_build.sqf
index a098f81f0..cb0556066 100644
--- a/SQF/dayz_code/actions/object_build.sqf
+++ b/SQF/dayz_code/actions/object_build.sqf
@@ -15,6 +15,8 @@ _uid = getPlayerUID player;
_keepOnSlope = 0 == (getNumber (configFile >> "CfgVehicles" >> _classname >> "canbevertical"));
+//_damageArray = (getArray (configFile >> "CfgVehicles" >> _classname >> "damageValues"));
+
Dayz_constructionContext set [ 4, false ]; // Stop the construction mode, cf. player_build.sqf
//if (count Dayz_constructionContext < 5) then { Dayz_constructionContext set [ 5, false ]; // };
@@ -61,8 +63,8 @@ if (_build) then {
_variables set [ count _variables, ["ownerArray", [getPlayerUID player]]];
_variables set [ count _variables, ["padlockCombination", _passcode]];
- _object removeAllEventHandlers "HandleDamage";
- _object addeventhandler ["HandleDamage",{ diag_log (_this); if ((_this select 4) == 'PipeBomb') then { _this call fnc_Obj_FenceHandleDam; } else { false }; } ];
+ //_object removeAllEventHandlers "HandleDamage";
+ //_object addeventhandler ["HandleDamage",{ [_this,_damageArray] call fnc_Obj_FenceHandleDam; } ];
};
_object setVariable ["characterID",dayz_characterID, true];
diff --git a/SQF/dayz_code/actions/userActionConditions.sqf b/SQF/dayz_code/actions/userActionConditions.sqf
index 06a7ac15c..6554e80b6 100644
--- a/SQF/dayz_code/actions/userActionConditions.sqf
+++ b/SQF/dayz_code/actions/userActionConditions.sqf
@@ -26,7 +26,7 @@ _show = switch _action do {
//Built Items (Fence,Gates)
//case "ObjectUpgrade": {CAN_DO && !IN_VEHICLE && !(_object getVariable["BuildLock",false])};
//case "ObjectMaintenance": {CAN_DO && !IN_VEHICLE && (_object getVariable["Maintenance",false] or IS_DAMAGED)};
- //case "ObjectDisassembly": {CAN_DO && !IN_VEHICLE && HAS_TOOLBOX && !(_object getVariable["BuildLock",false]) && ((getPlayerUID player in _object getVariable["ownerArray",[]]) or (count (_object getVariable["ownerArray",[]]) == 0) or (typeOf _object in ["WoodenFence_1_foundation","WoodenGate_foundation"]))};
+ //case "ObjectDisassembly": {CAN_DO && !IN_VEHICLE && HAS_TOOLBOX && !(_object getVariable["BuildLock",false]) && (((getPlayerUID player) in (_object getVariable["ownerArray",[]])) or (count (_object getVariable["ownerArray",[]]) == 0) or (typeOf _object in ["WoodenFence_1_foundation","WoodenGate_foundation"]))};
default {false};
};
diff --git a/SQF/dayz_code/compile/fence_handleDam.sqf b/SQF/dayz_code/compile/fence_handleDam.sqf
index 846ebfcc4..b4791d7b2 100644
--- a/SQF/dayz_code/compile/fence_handleDam.sqf
+++ b/SQF/dayz_code/compile/fence_handleDam.sqf
@@ -9,49 +9,97 @@ Metal Defaults - [Object,[High Explosive(0.5),Medium Explosive(0.25),Melee damag
--Note, Melee damage runs this script 12 times per hit.
************************************************************/
-private["_obj","_total","_damage"];
-//Object the EH is assigned too
-_obj = _this select 0;
-//array holding dam sent to the eventhandler
-//_damageArray _this select 1;
+/*
+ private["_obj","_total","_damage"];
-if !((_this select 4) in ["PipeBomb","explosive_bolt","Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]) exitwith { false };
+ //Object the EH is assigned too
+ _obj = ((_this select 0) select 0);
+ //array holding dam sent to the eventhandler
+ //_damageArray _this select 1;
+
+ if !(((_this select 0) select 4) in ["PipeBomb","explosive_bolt","Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]) exitwith { false };
+
+ _damage = switch (1==1) do {
+ case (((_this select 0) select 4) in ["PipeBomb"]): { (((_this select 0) select 1) select 0) }; //0.5 High explosive
+ case (((_this select 0) select 4) in ["explosive_bolt"]): { (((_this select 0) select 1) select 1) }; //0.25 Medium explosive, maybe grenades and other such items.
+ case (((_this select 0) select 4) in ["Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]): { (((_this select 0) select 2) + random(0.05) }; //0.00001 Melee damage,
+ //default { 0 };
+ };
+
+
+ //Server running or client
+ if (isServer) then {
+ if !(_obj in needUpdate_FenceObjects) then {
+ needUpdate_FenceObjects set [count needUpdate_FenceObjects, _obj];
+ };
+
+ //TotalDamage Set by the server
+ _obj setDamage (damage _obj) + _damage;
+
+ //diag_log format["Server Reporting - %1",needUpdate_FenceObjects];
+ } else {
+ //If its a client send to server for saving and damage setting.
+ PVDZ_fence_Update = [_obj,(damage _obj) + _damage];
+ publicVariableServer "PVDZ_fence_Update";
+
+ //diag_log ("Client Reporting");
+ };
+
+ //} else {
+ // //We really coulde just send to server and have the server setDamage
+ // //send to server then back to owning client/server
+ // PVDZ_send = [_obj,"objWallDamage",_this];
+ // publicVariableServer "PVDZ_send";
+ //};
+
+
+ diag_log format["Object: %1, Damage:%2(%4), Projectile:%3",typeof ((_this select 0) select 0),((damage _obj) + _damage),((_this select 0) select 4),(damage _obj)];
+*/
+
+private["_obj","_damage"];
+
+//[_this,[0.5,0.25,0.00001]]
+
+if !(((_this select 0) select 4) in ["PipeBomb","explosive_bolt","Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]) exitwith { false };
+
+
+_obj = ((_this select 0) select 0);
+//_selectionName = ((_this select 0) select 1);
+//_damage = ((_this select 0) select 2);
+//_source = ((_this select 0) select 3);
+//_projectile = ((_this select 0) select 4);
+
+//_damageArray = (_this select 1);
_damage = switch (1==1) do {
- case ((_this select 4) in ["PipeBomb"]): { ((_this select 1) select 0) }; //0.5 High explosive
- case ((_this select 4) in ["explosive_bolt"]): { ((_this select 1) select 1) }; //0.25 Medium explosive, maybe grenades and other such items.
- case ((_this select 4) in ["Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]): { ((_this select 1) select 2) + random(0.05) }; //0.00001 Melee damage,
- default { 0 };
+ case (((_this select 0) select 4) in ["PipeBomb"]): { ((_this select 1) select 0) }; //0.5 High explosive
+ case (((_this select 0) select 4) in ["explosive_bolt"]): { ((_this select 1) select 1) }; //0.25 Medium explosive, maybe grenades and other such items.
+ case (((_this select 0) select 4) in ["Hatchet_Swing_Ammo","Crowbar_Swing_Ammo","Machete_Swing_Ammo"]): { ((_this select 1) select 2) + random(0.0005) }; //0.00001 Melee damage,
+ //default { 0 };
};
-//Server running or client
-if (isServer) then {
- if !(_obj in needUpdate_FenceObjects) then {
- needUpdate_FenceObjects set [count needUpdate_FenceObjects, _obj];
+/*
+ //Server running or client
+ if (isServer) then {
+ if !(_obj in needUpdate_FenceObjects) then {
+ needUpdate_FenceObjects set [count needUpdate_FenceObjects, _obj];
+ };
+
+ //TotalDamage Set by the server
+ _obj setDamage (damage _obj) + _damage;
+
+ //diag_log format["Server Reporting - %1",needUpdate_FenceObjects];
+ } else {
+ //If its a client send to server for saving and damage setting.
+ PVDZ_fence_Update = [_obj,(damage _obj) + _damage];
+ publicVariableServer "PVDZ_fence_Update";
+
+ //diag_log ("Client Reporting");
};
-
- //TotalDamage Set by the server
- _obj setDamage (damage _obj) + _damage;
-
- //diag_log format["Server Reporting - %1",needUpdate_FenceObjects];
-} else {
- //If its a client send to server for saving and damage setting.
- PVDZ_fence_Update = [_obj,(damage _obj) + _damage];
- publicVariableServer "PVDZ_fence_Update";
-
- //diag_log ("Client Reporting");
-};
+*/
-//} else {
-// //We really coulde just send to server and have the server setDamage
-// //send to server then back to owning client/server
-// PVDZ_send = [_obj,"objWallDamage",_this];
-// publicVariableServer "PVDZ_send";
-//};
-
-
-diag_log format["Object: %1, Damage:%2(%4), Projectile:%3",typeof (_this select 0),((damage _obj) + _damage),(_this select 4),(damage _obj)];
+diag_log format["Object: %1, Damage:%4 + %5(%2), Projectile:%3",(typeof _obj),((damage _obj) + _damage),((_this select 0) select 4),(damage _obj),_damage];
// all "HandleDamage event" functions should return the effective damage that the engine will record for that part
-false
\ No newline at end of file
+(damage _obj) + _damage
\ No newline at end of file
diff --git a/SQF/dayz_code/stringtable.xml b/SQF/dayz_code/stringtable.xml
index a7ffb8b9c..7eda73c3f 100644
--- a/SQF/dayz_code/stringtable.xml
+++ b/SQF/dayz_code/stringtable.xml
@@ -1724,11 +1724,11 @@
Wartung
- %1 Disassembly
- %1 Разборка
- Démonter la %1
- Demontáž %1
- %1 abbauen
+ Disassembly
+ Разборка
+ Démonter la
+ Demontáž
+ abbauen
Build %1