diff options
author | TenPlus1 <kinsellaja@yahoo.com> | 2017-06-06 10:26:54 +0100 |
---|---|---|
committer | TenPlus1 <kinsellaja@yahoo.com> | 2017-06-06 10:26:54 +0100 |
commit | 1130f447a62cdcb40fe24d68b7717eaa55b1f9bb (patch) | |
tree | d2592fb4925b0f0dd9c8851937e07b73127e0077 | |
parent | da742fd386f8353175865d9816148cab5e3755b2 (diff) |
added protector_night_pvp setting
-rw-r--r-- | README.md | 8 | ||||
-rw-r--r-- | init.lua | 25 | ||||
-rw-r--r-- | pvp.lua | 25 |
3 files changed, 26 insertions, 32 deletions
@@ -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) @@ -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 @@ -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")) |