diff --git a/mods/ctf/ctf_stats/init.lua b/mods/ctf/ctf_stats/init.lua index e3ec456..4c10bd2 100644 --- a/mods/ctf/ctf_stats/init.lua +++ b/mods/ctf/ctf_stats/init.lua @@ -417,6 +417,20 @@ function ctf_stats.calculateKillReward(victim, killer, toolcaps) return reward end +ctf.register_on_killedplayer(function(victim, killer) + -- Suicide is not encouraged here at CTF + if victim == killer then + return + end + local main, match = ctf_stats.player(killer) + if main and match then + main.kills = main.kills + 1 + match.kills = match.kills + 1 + match.kills_since_death = match.kills_since_death + 1 + _needs_save = true + end +end) + minetest.register_on_dieplayer(function(player) local main, match = ctf_stats.player(player:get_player_name()) diff --git a/mods/pvp/kill_assist/init.lua b/mods/pvp/kill_assist/init.lua index ff0fafa..25d5e38 100644 --- a/mods/pvp/kill_assist/init.lua +++ b/mods/pvp/kill_assist/init.lua @@ -30,11 +30,18 @@ function kill_assist.add_heal_assist(victim, healed_hp) end function kill_assist.reward_assists(victim, killer, reward) - if not kill_assists[victim] then return end + local max_hp = minetest.get_player_by_name(victim):get_properties().max_hp or 20 + + if not kill_assists[victim] then + if victim ~= killer then + kill_assist.add_assist(victim, killer, max_hp) + else + return + end + end for name, damage in pairs(kill_assists[victim].players) do - if name ~= "!offset" and minetest.get_player_by_name(name) then - local max_hp = minetest.get_player_by_name(victim):get_properties().max_hp or 20 + if minetest.get_player_by_name(name) then local help_percent = damage / (max_hp + kill_assists[victim].hp_offset) local main, match = ctf_stats.player(name) local color = "0x00FFFF" @@ -48,9 +55,6 @@ function kill_assist.reward_assists(victim, killer, reward) if name == killer then color = "0x00FF00" - main.kills = main.kills + 1 - match.kills = match.kills + 1 - match.kills_since_death = match.kills_since_death + 1 end hud_score.new(name, {