fix: players could enter going backwards
parent
e7b11c89d2
commit
aa2d037312
13
init.lua
13
init.lua
|
@ -106,13 +106,15 @@ function ptol.remove_warning(player)
|
||||||
end
|
end
|
||||||
|
|
||||||
local timer = 0
|
local timer = 0
|
||||||
|
local down_timer = 0
|
||||||
|
|
||||||
minetest.register_globalstep(function(dtime)
|
minetest.register_globalstep(function(dtime)
|
||||||
timer = timer + dtime
|
timer = timer + dtime
|
||||||
if timer <= ptol.settings.time then
|
if timer <= ptol.settings.time then
|
||||||
return
|
return
|
||||||
|
else
|
||||||
|
timer = 0
|
||||||
end
|
end
|
||||||
timer = 0
|
|
||||||
for _, player in pairs(minetest.get_connected_players()) do
|
for _, player in pairs(minetest.get_connected_players()) do
|
||||||
local player_pos = player:get_pos()
|
local player_pos = player:get_pos()
|
||||||
local ptol_level = player:get_meta():get_int("ptol:level")
|
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))
|
--minetest.chat_send_all(tostring(angle_to_center))
|
||||||
local frozen = ptol.is_frozen(player)
|
local frozen = ptol.is_frozen(player)
|
||||||
--minetest.chat_send_all(tostring(angle_to_center)..":"..tostring(ptol.settings.allowed_angle))
|
--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.freeze(player)
|
||||||
ptol.show_warning(player)
|
ptol.show_warning(player)
|
||||||
minetest.sound_play("ptol_warning", {to_player = player:get_player_name(), gain = 1.0, max_hear_distance = 10,})
|
minetest.sound_play("ptol_warning", {to_player = player:get_player_name(), gain = 1.0, max_hear_distance = 10,})
|
||||||
--minetest.chat_send_all("freeze")
|
--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.unfreeze(player)
|
||||||
ptol.remove_warning(player)
|
ptol.remove_warning(player)
|
||||||
--minetest.chat_send_all("unfreeze")
|
--minetest.chat_send_all("unfreeze")
|
||||||
|
|
|
@ -1,7 +1,7 @@
|
||||||
#Where all the concentric spheres start
|
#Where all the concentric spheres start
|
||||||
world_center=(0,0,0)
|
world_center=(0,0,0)
|
||||||
#The radius between spheres
|
#The radius between spheres
|
||||||
radius=256
|
radius=100
|
||||||
#Timing to check if a player is in his allowed area
|
#Timing to check if a player is in his allowed area
|
||||||
time=1
|
time=1
|
||||||
#The angle for a player return to his area,
|
#The angle for a player return to his area,
|
||||||
|
|
Loading…
Reference in New Issue