|
|
|
|
@@ -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
|
|
|
|
|
(damage _obj) + _damage
|