From cbb838eb40cf66bc2a8e5abaf694088e84f81b4c Mon Sep 17 00:00:00 2001 From: rubenwardy Date: Fri, 4 Dec 2015 00:14:36 +0000 Subject: [PATCH] Add ctf.register_on_killedplayer callback --- ctf/teams.lua | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/ctf/teams.lua b/ctf/teams.lua index 96ac1f3..d62116f 100644 --- a/ctf/teams.lua +++ b/ctf/teams.lua @@ -423,7 +423,15 @@ minetest.register_on_joinplayer(function(player) end) -- Disable friendly fire. -minetest.register_on_punchplayer(function(player, hitter) +ctf.registered_on_killedplayer = {} +function ctf.register_on_killedplayer(func) + if ctf._mt_loaded then + error("You can't register callbacks at game time!") + end + table.insert(ctf.registered_on_killedplayer, func) +end +minetest.register_on_punchplayer(function(player, hitter, + time_from_last_punch, tool_capabilities, dir, damage) if player and hitter then local to = ctf.player(player:get_player_name()) local from = ctf.player(hitter:get_player_name()) @@ -434,5 +442,12 @@ minetest.register_on_punchplayer(function(player, hitter) return true end end + + if player:get_hp() - damage <= 0 then + for i = 1, #ctf.registered_on_killedplayer do + ctf.registered_on_killedplayer[i](player:get_player_name(), hitter:get_player_name()) + end + return false + end end end)