diff --git a/SQF/dayz_code/compile/fn_damageHandler.sqf b/SQF/dayz_code/compile/fn_damageHandler.sqf index ae7ca5d44..76a9135a6 100644 --- a/SQF/dayz_code/compile/fn_damageHandler.sqf +++ b/SQF/dayz_code/compile/fn_damageHandler.sqf @@ -182,7 +182,7 @@ if (_unit == player) then { case (_ammo == "RunOver"): {"runover"}; case (_ammo == "Dragged"): {"eject"}; case (_ammo in MeleeAmmo): {"melee"}; - case (!isNil "_wpst" && {!(_wpst select 0 in ["","Throw"])}): {"shot"}; + case (!isNil "_wpst" && {!(_wpst select 0 in ["","Throw"]) or (vehicle _source != _source)}): {"shot"}; default {"none"}; }; if (dayz_lastDamageSource != "none") then {dayz_lastDamageTime = diag_tickTime;}; diff --git a/SQF/dayz_code/init/compiles.sqf b/SQF/dayz_code/init/compiles.sqf index 829736830..871d9ec40 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)",_sourceName,_icon,_playerName,_distance]; + death_1 = format["%1 %3 (%4m)",_sourceName,_icon,_playerName,_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 71f5f0ea4..4292353d8 100644 --- a/SQF/dayz_code/init/publicEH.sqf +++ b/SQF/dayz_code/init/publicEH.sqf @@ -324,22 +324,23 @@ if (!isDedicated) then { // EPOCH ADDITION "PVDZE_deathMessage" addPublicVariableEventHandler { - private "_weapon"; + private ["_root","_weapon"]; _message = _this select 1; _message = switch (_message select 0) do { case "died": {format [localize "str_player_death_died",_message select 1,localize format["str_death_%1",_message select 2]]}; case "killed": { _weapon = _message select 3; - switch true do { - case (isClass (configFile >> "CfgWeapons" >> _weapon)): { - _message set [3, getText (configFile >> "CfgWeapons" >> _weapon >> "displayName")]; - _message set [5, getText (configFile >> "CfgWeapons" >> _weapon >> "picture")]; - }; - case (isClass (configFile >> "CfgVehicles" >> _weapon)): { - _message set [3, getText (configFile >> "CfgVehicles" >> _weapon >> "displayName")]; - _message set [5, getText (configFile >> "CfgVehicles" >> _weapon >> "picture")]; - }; - default {_message set [5,""]}; + _root = switch true do { + case (isClass (configFile >> "CfgWeapons" >> _weapon)): {"CfgWeapons"}; + case (isClass (configFile >> "CfgVehicles" >> _weapon)): {"CfgVehicles"}; + case (isClass (configFile >> "CfgMagazines" >> _weapon)): {"CfgMagazines"}; + default {""}; + }; + if (_root == "") then { + _message set [5,""]; + } else { + _message set [3,getText (configFile >> _root >> _weapon >> "displayName")]; + _message set [5,getText (configFile >> _root >> _weapon >> "picture")]; }; if (DZE_DeathMsgDynamicText) then {_message call dayz_killFeed}; format [localize "str_player_death_killed",_message select 1,_message select 2,_message select 3,_message select 4] diff --git a/SQF/dayz_server/compile/server_playerDied.sqf b/SQF/dayz_server/compile/server_playerDied.sqf index 4a87c0008..91577a047 100644 --- a/SQF/dayz_server/compile/server_playerDied.sqf +++ b/SQF/dayz_server/compile/server_playerDied.sqf @@ -44,7 +44,7 @@ diag_log format ["Player UID#%3 CID#%4 %1 as %5 died at %2", // EPOCH DEATH MESSAGES -if (_method in ["explosion","melee","runover","shot","shothead","shotheavy"]) then { +if (_method in ["explosion","melee","shot","shothead","shotheavy"]) then { if (_sourceName == _playerName) then { _message = ["suicide",_playerName]; } else { @@ -55,7 +55,7 @@ if (_method in ["explosion","melee","runover","shot","shothead","shotheavy"]) th }; } else { // No source name, distance or weapon needed: "%1 died from %2" str_death_%1 (see stringtable) - // Possible methods: ["bled","combatlog","crushed","dehyd","eject","fall","starve","sick","rad","unknown","zombie"] + // Possible methods: ["bled","combatlog","crushed","dehyd","eject","fall","starve","sick","rad","runover","unknown","zombie"] _message = ["died",_playerName,_method]; };