summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTenPlus1 <kinsellaja@yahoo.com>2017-06-06 10:26:54 +0100
committerTenPlus1 <kinsellaja@yahoo.com>2017-06-06 10:26:54 +0100
commit1130f447a62cdcb40fe24d68b7717eaa55b1f9bb (patch)
treed2592fb4925b0f0dd9c8851937e07b73127e0077
parentda742fd386f8353175865d9816148cab5e3755b2 (diff)
added protector_night_pvp setting
-rw-r--r--README.md8
-rw-r--r--init.lua25
-rw-r--r--pvp.lua25
3 files changed, 26 insertions, 32 deletions
diff --git a/README.md b/README.md
index 9ecb6de..c5cc739 100644
--- a/README.md
+++ b/README.md
@@ -46,6 +46,8 @@ Change log:
stand on a protector, face in a direction and it places a new one at a set
distance to cover protection radius. Added /protector_show command (thanks agaran)
Protectors and chest cannot be moved by mesecon pistons or machines.
+2.1 - Added 'protector_night_pvp' setting so night-time becomes a free for all and
+ players can hurt one another even inside protected areas (not spawn protected)
Lucky Blocks: 6
@@ -93,12 +95,12 @@ protector_radius = 5
protector_pvp = true
- true or false this setting disabled pvp inside of protected areas for all players apart from those listed on the protector node.
+protector_night_pvp = false
+- when true this setting enables pvp at night time only, even inside protected areas, requires protector_pvp to be active to work.
+
protector_spawn = 10
- Sets an area 10 nodes around static spawnpoint that is protected.
-protector_drop = true
-- When true players who dig inside a protected area will automatically drop tools to stop them going any further.
-
protector_hurt = 2
- When set to above 0, players digging in protected areas will be hurt by 2 health points (or whichever number it's set to)
diff --git a/init.lua b/init.lua
index 0a133a7..9007ac1 100644
--- a/init.lua
+++ b/init.lua
@@ -7,7 +7,6 @@
protector = {}
protector.mod = "redo"
protector.radius = tonumber(minetest.setting_get("protector_radius")) or 5
---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.spawn = tonumber(minetest.setting_get("protector_spawn")
@@ -307,30 +306,6 @@ function minetest.is_protected(pos, digger)
})
end
end
---[[
- -- drop tool/item if protection violated
- if protector.drop == true then
-
- local holding = player:get_wielded_item()
-
- if holding:to_string() ~= "" then
-
- -- take stack
- local sta = holding:take_item(holding:get_count())
- player:set_wielded_item(holding)
-
- -- incase of lag, reset stack
- minetest.after(0.1, function()
- player:set_wielded_item(holding)
-
- -- drop stack
- local obj = minetest.add_item(player:getpos(), sta)
- if obj then
- obj:setvelocity({x = 0, y = 5, z = 0})
- end
- end)
- end
- end]]
end
return true
diff --git a/pvp.lua b/pvp.lua
index 6cc5407..90a8d3f 100644
--- a/pvp.lua
+++ b/pvp.lua
@@ -7,13 +7,16 @@ local statspawn = minetest.setting_get_pos("static_spawnpoint") or {x = 0, y = 2
-- is pvp protection enabled
protector.pvp = minetest.setting_getbool("protector_pvp")
+-- is night-only pvp enabled
+protector.night_pvp = minetest.setting_getbool("protector_night_pvp")
+
-- disables PVP in your own protected areas
if minetest.setting_getbool("enable_pvp") and protector.pvp then
if minetest.register_on_punchplayer then
- minetest.register_on_punchplayer(
- function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
+ minetest.register_on_punchplayer(function(player, hitter,
+ time_from_last_punch, tool_capabilities, dir, damage)
if not player
or not hitter then
@@ -36,12 +39,26 @@ if minetest.setting_getbool("enable_pvp") and protector.pvp then
return true
end
+ -- do we enable pvp at night time only ?
+ if protector.night_pvp then
+
+ -- get time of day
+ local tod = minetest.get_timeofday() or 0
+
+ if tod > 0.2 and tod < 0.8 then
+ --
+ else
+ return false
+ end
+ end
+
+ -- is player being punched inside a protected area ?
if minetest.is_protected(pos, hitter:get_player_name()) then
return true
- else
- return false
end
+ return false
+
end)
else
print(S("[Protector] pvp_protect not active, update your version of Minetest"))