diff --git a/SQF/dayz_code/compile/fn_damageHandler.sqf b/SQF/dayz_code/compile/fn_damageHandler.sqf index 02169860c..1edc43daa 100644 --- a/SQF/dayz_code/compile/fn_damageHandler.sqf +++ b/SQF/dayz_code/compile/fn_damageHandler.sqf @@ -5,7 +5,7 @@ scriptName "Functions\misc\fn_damageHandler.sqf"; - Function - [unit, selectionName, damage, source, projectile] call fnc_usec_damageHandler; ************************************************************/ -private ["_HitBy","_end","_unit","_hit","_damage","_unconscious","_source","_ammo","_Viralzed","_isMinor","_isHeadHit","_isPlayer","_isBandit","_punishment","_humanityHit","_myKills","_wpst","_sourceDist","_sourceWeap","_scale","_type","_nrj","_rndPain","_hitPain","_wound","_isHit","_isbleeding","_rndBleed","_hitBleed","_isInjured","_lowBlood","_rndInfection","_hitInfection","_isCardiac","_chance","_falling","_model","_isZombieHit"]; +private ["_HitBy","_end","_unit","_hit","_damage","_unconscious","_source","_ammo","_Viralzed","_isMinor","_isHeadHit","_isPlayer","_isBandit","_punishment","_humanityHit","_myKills","_wpst","_sourceDist","_sourceWeap","_scale","_type","_nrj","_rndPain","_hitPain","_wound","_isHit","_isbleeding","_rndBleed","_hitBleed","_isInjured","_lowBlood","_rndInfection","_hitInfection","_isCardiac","_chance","_falling","_model","_isZombieHit","_sourceType","_sourceVehicleType"]; _unit = _this select 0; _hit = _this select 1; _damage = _this select 2; diff --git a/SQF/dayz_code/compile/player_death.sqf b/SQF/dayz_code/compile/player_death.sqf index 3cecfb2d2..72e6588dc 100644 --- a/SQF/dayz_code/compile/player_death.sqf +++ b/SQF/dayz_code/compile/player_death.sqf @@ -1,4 +1,4 @@ -private ["_pos","_display","_body","_playerID","_array","_source","_method","_isBandit","_punishment","_humanityHit","_myKills","_humanity","_kills","_killsV","_myGroup","_model","_infected","_distance","_sourceVehicle","_sourceWeapon","_sourceName","_ammo"]; +private ["_pos","_display","_body","_playerID","_array","_source","_method","_isBandit","_punishment","_humanityHit","_myKills","_humanity","_kills","_killsV","_myGroup","_model","_infected","_distance","_sourceVehicleType","_sourceWeapon","_sourceName","_ammo"]; disableSerialization; if (deathHandled) exitWith {}; deathHandled = true; @@ -39,10 +39,10 @@ if (count _this > 0) then { if (!isNull _source) then { if (!isNull _body) then {_distance = round (_body distance _source);}; - _sourceVehicle = vehicle _source; - _sourceWeapon = if (_sourceVehicle != _source) then {typeOf _sourceVehicle} else {currentWeapon _source}; + _sourceVehicleType = typeOf (vehicle _source); + _sourceWeapon = if (_sourceVehicleType isKindOf "LandVehicle" or _sourceVehicleType isKindOf "Air" or _sourceVehicleType isKindOf "Ship") then {_sourceVehicleType} else {currentWeapon _source}; if (_sourceWeapon == "Throw") then {_sourceWeapon = (weaponState _source) select 3;}; - if (_ammo in ["PipeBomb","RunOver"]) then {_sourceWeapon = _ammo;}; // Mine or Satchel + if (_ammo in ["PipeBomb","Mine","MineE"]) then {_sourceWeapon = _ammo;}; if (alive _source) then { _sourceName = if (isPlayer _source) then {name _source} else {localize "STR_EPOCH_AI"}; }; diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index ce4667753..a65bd8d80 100644 --- a/SQF/dayz_code/init/compiles.sqf +++ b/SQF/dayz_code/init/compiles.sqf @@ -605,7 +605,7 @@ if (!isDedicated) then { death_4 = ""; }; - death_1 = format["%1 %3 (%4m)",_playerName,_icon,_sourceName,_distance]; + death_1 = format["%1 %3 (%4m)",_playerName,_icon,_sourceName,_distance]; death_1_time = diag_ticktime; _message = format ["%1
%2
%3
%4",death_1,death_2,death_3,death_4]; [_message,safeZoneX,safeZoneY,10,0,0,8000] spawn BIS_fnc_dynamicText; diff --git a/SQF/dayz_code/init/publicEH.sqf b/SQF/dayz_code/init/publicEH.sqf index 88dfedf53..e0184525b 100644 --- a/SQF/dayz_code/init/publicEH.sqf +++ b/SQF/dayz_code/init/publicEH.sqf @@ -331,6 +331,7 @@ if (!isDedicated) then { case "killed": { _weapon = _message select 3; _root = switch true do { + case (_weapon in ["PipeBomb","Mine","MineE"]): {"CfgMagazines"}; // isClass in both case (isClass (configFile >> "CfgWeapons" >> _weapon)): {"CfgWeapons"}; case (isClass (configFile >> "CfgVehicles" >> _weapon)): {"CfgVehicles"}; case (isClass (configFile >> "CfgMagazines" >> _weapon)): {"CfgMagazines"}; diff --git a/SQF/dayz_server/compile/server_playerDied.sqf b/SQF/dayz_server/compile/server_playerDied.sqf index 843259656..2409960f7 100644 --- a/SQF/dayz_server/compile/server_playerDied.sqf +++ b/SQF/dayz_server/compile/server_playerDied.sqf @@ -1,6 +1,6 @@ #include "\z\addons\dayz_server\compile\server_toggle_debug.hpp" -private ["_characterID","_minutes","_newObject","_playerID","_key","_pos","_infected","_sourceName","_sourceWeapon","_distance","_message","_method","_isMine"]; +private ["_characterID","_minutes","_newObject","_playerID","_key","_pos","_infected","_sourceName","_sourceWeapon","_distance","_message","_method"]; //[unit, weapon, muzzle, mode, ammo, magazine, projectile] _characterID = _this select 0; @@ -43,9 +43,7 @@ diag_log format ["Player UID#%3 CID#%4 %1 as %5 died at %2", // EPOCH DEATH MESSAGES -_isMine = _sourceWeapon == "RunOver"; - -if (_method in ["explosion","melee","shot","shothead","shotheavy"] && !_isMine) then { +if (_method in ["explosion","melee","shot","shothead","shotheavy"]) then { if (_sourceName == _playerName) then { _message = ["suicide",_playerName]; } else {