Added protector_flip bool for .conf settings
This commit is contained in:
parent
a9981e3518
commit
f5dd6da563
2 changed files with 27 additions and 2 deletions
|
|
@ -37,6 +37,8 @@ Released under WTFPL
|
||||||
1.7 - Included an edited version of WTFPL doors mod since protected doors didn't
|
1.7 - Included an edited version of WTFPL doors mod since protected doors didn't
|
||||||
work with the doors mod in the latest daily build... Now it's fine :)
|
work with the doors mod in the latest daily build... Now it's fine :)
|
||||||
added support for "protection_bypass" privelage.
|
added support for "protection_bypass" privelage.
|
||||||
|
1.8 - Added 'protector_flip' setting to stop players using lag to grief into
|
||||||
|
another players house, it flips them around to stop them digging.
|
||||||
|
|
||||||
Usage: (requires server privelage)
|
Usage: (requires server privelage)
|
||||||
|
|
||||||
|
|
@ -53,4 +55,4 @@ remove all names from list
|
||||||
/delprot -
|
/delprot -
|
||||||
|
|
||||||
Whenever a player is near any protectors with name1 or name2 then it will be
|
Whenever a player is near any protectors with name1 or name2 then it will be
|
||||||
replaced by an air block.
|
replaced by an air block.
|
||||||
|
|
|
||||||
25
init.lua
25
init.lua
|
|
@ -5,6 +5,7 @@ protector = {}
|
||||||
protector.mod = "redo"
|
protector.mod = "redo"
|
||||||
protector.radius = (tonumber(minetest.setting_get("protector_radius")) or 5)
|
protector.radius = (tonumber(minetest.setting_get("protector_radius")) or 5)
|
||||||
protector.drop = minetest.setting_getbool("protector_drop") or false
|
protector.drop = minetest.setting_getbool("protector_drop") or false
|
||||||
|
protector.flip = minetest.setting_getbool("protector_flip") or false
|
||||||
protector.hurt = (tonumber(minetest.setting_get("protector_hurt")) or 0)
|
protector.hurt = (tonumber(minetest.setting_get("protector_hurt")) or 0)
|
||||||
|
|
||||||
-- Intllib
|
-- Intllib
|
||||||
|
|
@ -246,6 +247,29 @@ function minetest.is_protected(pos, digger)
|
||||||
player:set_hp(player:get_hp() - protector.hurt)
|
player:set_hp(player:get_hp() - protector.hurt)
|
||||||
end
|
end
|
||||||
|
|
||||||
|
-- flip player around when protection violated
|
||||||
|
if protector.flip
|
||||||
|
and player then
|
||||||
|
|
||||||
|
local pla_pos = player:getpos()
|
||||||
|
local vec = {
|
||||||
|
x = pos.x - pla_pos.x,
|
||||||
|
y = pos.y - pla_pos.y,
|
||||||
|
z = pos.z - pla_pos.z
|
||||||
|
}
|
||||||
|
if vec.x ~= 0
|
||||||
|
and vec.z ~= 0 then
|
||||||
|
|
||||||
|
local yaw = math.atan(vec.z / vec.x) + 3 * math.pi / 2
|
||||||
|
|
||||||
|
if pos.x > pla_pos.x then
|
||||||
|
yaw = yaw + math.pi
|
||||||
|
end
|
||||||
|
|
||||||
|
player:set_look_yaw(yaw)
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
-- drop tool/item if protection violated
|
-- drop tool/item if protection violated
|
||||||
if protector.drop == true
|
if protector.drop == true
|
||||||
and player then
|
and player then
|
||||||
|
|
@ -270,7 +294,6 @@ function minetest.is_protected(pos, digger)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
end
|
end
|
||||||
|
|
||||||
return true
|
return true
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue