Page 1 of 1
[Mod] Death Kick [death_kick]

Posted:
Sat Jul 16, 2016 02:35
by everamzah
Description: Give players about two minutes to click the Respawn button before being kicked.
License: LGPL v2.1+
Git Repo:
https://github.com/everamzah/death_kickDownload:
death_kick.zip
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
local death_kick = {}
minetest.register_on_joinplayer(function(player)
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_respawnplayer(function(player)
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)
Re: [Mod] Death Kick [death_kick]

Posted:
Sat Jul 16, 2016 09:57
by azekill_DIABLO
nice! this will help servers with afk player!!! but it would be nice to do a mod to kick player after 1min if they are afk
Re: [Mod] Death Kick [death_kick]

Posted:
Sat Jul 16, 2016 10:00
by Krock
With the current code you also get kicked after dying 5 times - no matter how fast.
EDIT: Haven't seen "minetest.register_on_respawnplayer", so it should work as expected.
Re: [Mod] Death Kick [death_kick]

Posted:
Sat Jul 16, 2016 10:42
by everamzah
Register on respawn resets count to 0.
Edit: Though, I haven't tested. ^_^
Edit2: Tested, died >5 times, did not get kicked. *\o/*
Edit3: Hrm.
Re: [Mod] Death Kick [death_kick]

Posted:
Thu Jul 21, 2016 15:34
by everamzah
I updated this:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
local death_kick = {}
minetest.register_on_joinplayer(function(player)
death_kick[player:get_player_name()] = 0
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
end)
Re: [Mod] Death Kick [death_kick]

Posted:
Thu Jul 28, 2016 15:24
by everamzah
I updated this again. The license is now LGPL v2.1+. I spent more time on this than I care to admit:
Your phone or window isn't wide enough to display the code box. If it's a phone, try rotating it to landscape mode.
- Code: Select all
local death_kick = {}
minetest.register_on_joinplayer(function(player)
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_respawnplayer(function(player)
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)
Re: [Mod] Death Kick [death_kick]

Posted:
Thu Jul 28, 2016 18:36
by azekill_DIABLO
actually, the code is pretty light! nice :)
Re: [Mod] Death Kick [death_kick]

Posted:
Wed Nov 09, 2016 16:26
by Fixerol