Fix sprinting for players with the fast and fly privileges.

Sprinting didn't work when a player has fast but it was turned off. With
fly, fast was always enabled and sprinting didn't make them any faster,
now it does.
This commit is contained in:
auouymous 2020-09-10 04:27:51 -06:00 committed by texmex
parent c3e00a68ba
commit 899d246832
1 changed files with 13 additions and 14 deletions

View File

@ -182,16 +182,15 @@ end)
local function sprint_step(player, dtime) local function sprint_step(player, dtime)
local name = player:get_player_name() local name = player:get_player_name()
local fast = minetest.get_player_privs(name).fast
if minetest.get_player_privs(name).fast then if not fast then
return if stamina then
end stamina_timer[name] = (stamina_timer[name] or 0) + dtime
end
if stamina then if breath then
stamina_timer[name] = (stamina_timer[name] or 0) + dtime breath_timer[name] = (breath_timer[name] or 0) + dtime
end end
if breath then
breath_timer[name] = (breath_timer[name] or 0) + dtime
end end
local ctrl = player:get_player_control() local ctrl = player:get_player_control()
@ -204,7 +203,7 @@ local function sprint_step(player, dtime)
if not key_press then if not key_press then
stop_sprint(player) stop_sprint(player)
if stamina and stamina_timer[name] >= replenish then if stamina and not fast and stamina_timer[name] >= replenish then
replenish_stamina(player) replenish_stamina(player)
stamina_timer[name] = 0 stamina_timer[name] = 0
end end
@ -235,15 +234,15 @@ local function sprint_step(player, dtime)
hunger = hunger_ng.get_hunger_information(name).hunger.exact hunger = hunger_ng.get_hunger_information(name).hunger.exact
end end
if player_stamina > 0 and hunger > starve_limit and ground then if (player_stamina > 0 and hunger > starve_limit and ground) or fast then
start_sprint(player) start_sprint(player)
if stamina then drain_stamina(player) end if stamina and not fast then drain_stamina(player) end
if starve then drain_hunger(player, name) end if starve then drain_hunger(player, name) end
if breath and breath_timer[name] >= 2 then if breath and not fast and breath_timer[name] >= 2 then
drain_breath(player) drain_breath(player)
breath_timer[name] = 0 breath_timer[name] = 0
end end
if particles then if particles and ground then
create_particles(player, name, ground) create_particles(player, name, ground)
end end
else else