Fix pl_hook player loop and timing bug

pull/38/merge
Brandon 2016-09-25 21:40:13 -05:00
parent 680943fb10
commit 6d236fe10d
1 changed files with 9 additions and 14 deletions

View File

@ -22,21 +22,16 @@ end
adventuretest.pl_hooks = {} adventuretest.pl_hooks = {}
function adventuretest.player_loop(dtime) function adventuretest.player_loop(dtime)
local p = minetest.get_connected_players() local p = minetest.get_connected_players()
local reset_hooks = { } local reset_hooks = {}
for _, player in pairs(p) do for k,hook in pairs(adventuretest.pl_hooks) do
local name = player:get_player_name() adventuretest.pl_hooks[k].timer = adventuretest.pl_hooks[k].timer + dtime
for k,hook in pairs(adventuretest.pl_hooks) do if adventuretest.pl_hooks[k].timer >= adventuretest.pl_hooks[k].timeout then
adventuretest.pl_hooks[k].timer = adventuretest.pl_hooks[k].timer + dtime for _, player in pairs(p) do
if adventuretest.pl_hooks[k].timer >= adventuretest.pl_hooks[k].timeout then local name = player:get_player_name()
reset_hooks[#reset_hooks+1] = k adventuretest.pl_hooks[k].timer = 0
adventuretest.pl_hooks[k].func(player,name,dtime) adventuretest.pl_hooks[k].func(player,name,dtime)
end end
end end
end
if #reset_hooks > 0 then
for _,hid in pairs(reset_hooks) do
adventuretest.pl_hooks[hid].timer = 0
end
end end
end end