Use a timer

master
James Stevenson 2016-07-28 11:16:45 -04:00
parent 7e2b90e0f8
commit e456b14094
1 changed files with 19 additions and 23 deletions

View File

@ -1,34 +1,30 @@
local death_kick = {}
minetest.register_on_joinplayer(function(player)
death_kick[player:get_player_name()] = 0
death_kick[player:get_player_name()] = nil
end)
minetest.register_on_leaveplayer(function(player)
death_kick[player:get_player_name()] = nil
end)
minetest.register_on_dieplayer(function(player)
minetest.after(10, function()
if (not player) or player:get_hp() ~= 0 then
return false
else
player:set_hp(player:get_hp() - 1)
end
local name = player:get_player_name()
if not death_kick[name] then
death_kick[name] = 1
else
death_kick[name] = death_kick[name] + 1
end
if death_kick[name] == 5 then
minetest.kick_player(name, "You died.")
end
end, player)
end)
minetest.register_on_respawnplayer(function(player)
death_kick[player:get_player_name()] = 0
death_kick[player:get_player_name()] = nil
end)
minetest.register_on_dieplayer(function(player)
if not death_kick[player:get_player_name()] then
death_kick[player:get_player_name()] = minetest.get_us_time()
end
if minetest.get_us_time() - death_kick[player:get_player_name()] < 120 * 1000000 then
minetest.after(10, function()
if (not player) or player:get_hp() ~= 0 then
return
end
player:set_hp(0)
end, player)
else
minetest.kick_player(player:get_player_name(), "You died.")
end
end)