fix: players could enter going backwards

master
runs 2021-07-31 11:02:33 +02:00
parent e7b11c89d2
commit aa2d037312
2 changed files with 11 additions and 4 deletions

View File

@ -106,13 +106,15 @@ function ptol.remove_warning(player)
end
local timer = 0
local down_timer = 0
minetest.register_globalstep(function(dtime)
timer = timer + dtime
if timer <= ptol.settings.time then
return
else
timer = 0
end
timer = 0
for _, player in pairs(minetest.get_connected_players()) do
local player_pos = player:get_pos()
local ptol_level = player:get_meta():get_int("ptol:level")
@ -127,12 +129,17 @@ minetest.register_globalstep(function(dtime)
--minetest.chat_send_all(tostring(angle_to_center))
local frozen = ptol.is_frozen(player)
--minetest.chat_send_all(tostring(angle_to_center)..":"..tostring(ptol.settings.allowed_angle))
if not(frozen) and (angle_to_center > ptol.settings.allowed_angle) then
local controls = player:get_player_control()
local not_allowed_control = false
if controls["down"] or controls["right"] or controls["left"] then
not_allowed_control = true
end
if not(frozen) and ((angle_to_center > ptol.settings.allowed_angle) or not_allowed_control) then
ptol.freeze(player)
ptol.show_warning(player)
minetest.sound_play("ptol_warning", {to_player = player:get_player_name(), gain = 1.0, max_hear_distance = 10,})
--minetest.chat_send_all("freeze")
elseif frozen and ((angle_to_center <= ptol.settings.allowed_angle)) then
elseif frozen and (angle_to_center <= ptol.settings.allowed_angle) and not(not_allowed_control) then
ptol.unfreeze(player)
ptol.remove_warning(player)
--minetest.chat_send_all("unfreeze")

View File

@ -1,7 +1,7 @@
#Where all the concentric spheres start
world_center=(0,0,0)
#The radius between spheres
radius=256
radius=100
#Timing to check if a player is in his allowed area
time=1
#The angle for a player return to his area,