parent
443e009f8c
commit
0188945d0a
|
@ -5,6 +5,7 @@ Sets an area for PvP control.
|
||||||
Use safemode to make areas be safe zones; otherwise they are killzones by default.
|
Use safemode to make areas be safe zones; otherwise they are killzones by default.
|
||||||
|
|
||||||
## Config
|
## Config
|
||||||
|
in minetest.conf
|
||||||
|
|
||||||
* `pvp_areas.safemode`
|
* `pvp_areas.safemode`
|
||||||
* safemode = true --> PvP Control areas are safe zones
|
* safemode = true --> PvP Control areas are safe zones
|
||||||
|
|
28
init.lua
28
init.lua
|
@ -8,8 +8,10 @@ local pvp_areas_modname = minetest.get_current_modname()
|
||||||
|
|
||||||
local hasareasmod = minetest.get_modpath("areas")
|
local hasareasmod = minetest.get_modpath("areas")
|
||||||
|
|
||||||
local safemode = minetest.setting_getbool("pvp_areas.safemode")
|
local safemode = minetest.setting_getbool("pvp_areas.safemode") or false
|
||||||
local area_label = minetest.setting_get("pvp_areas.label") or "Defined area."
|
local area_label = minetest.setting_get("pvp_areas.label") or "Defined area."
|
||||||
|
-- if false Mob does Damage
|
||||||
|
local mobsDoNoDamage = false
|
||||||
|
|
||||||
local pvp_areas_store = AreaStore()
|
local pvp_areas_store = AreaStore()
|
||||||
pvp_areas_store:from_file(pvp_areas_worlddir .. "/pvp_areas_store.dat")
|
pvp_areas_store:from_file(pvp_areas_worlddir .. "/pvp_areas_store.dat")
|
||||||
|
@ -112,19 +114,39 @@ local KILL_OK = false
|
||||||
local AREA_ACTIVATE = KILL_OK
|
local AREA_ACTIVATE = KILL_OK
|
||||||
local AREA_NOACTIVATE = KILL_NO
|
local AREA_NOACTIVATE = KILL_NO
|
||||||
|
|
||||||
|
local savemodeToString = "FALSCH" -- only for debugging
|
||||||
if safemode then
|
if safemode then
|
||||||
AREA_ACTIVATE = KILL_NO
|
AREA_ACTIVATE = KILL_NO
|
||||||
AREA_NOACTIVATE = KILL_OK
|
AREA_NOACTIVATE = KILL_OK
|
||||||
|
savemodeToString = "WAHR"
|
||||||
end
|
end
|
||||||
|
|
||||||
-- Register punchplayer callback.
|
-- Register punchplayer callback.
|
||||||
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)
|
||||||
|
local isPlayer = hitter:is_player()
|
||||||
|
|
||||||
|
if hitter:is_player() == false then
|
||||||
|
return mobsDoNoDamage -- if this is a MOB then give Damage
|
||||||
|
end
|
||||||
|
--[[
|
||||||
|
local IsPlayerToString = "PLAYER" -- only for debugging
|
||||||
|
if isplayer then
|
||||||
|
IsPlayerToString = "PLAYER" -- only for debugging
|
||||||
|
else
|
||||||
|
IsPlayerToString = "MOB" -- only for debugging
|
||||||
|
return mobsDoNoDamage -- if this is a MOB then give Damage
|
||||||
|
end
|
||||||
|
]]--
|
||||||
|
|
||||||
|
local playername = player:get_player_name()
|
||||||
for k, v in pairs(pvp_areas_store:get_areas_for_pos(player:getpos())) do
|
for k, v in pairs(pvp_areas_store:get_areas_for_pos(player:getpos())) do
|
||||||
if k then
|
if k then
|
||||||
return KILL_NO
|
--minetest.chat_send_player(playername, "in loop - safemode"..savemodeToString.." isPlayer "..IsPlayerToString)
|
||||||
|
return AREA_ACTIVATE --KILL_NO
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
return KILL_OK
|
--minetest.chat_send_player(playername, "after - safemode"..savemodeToString.." isPlayer "..IsPlayerToString)
|
||||||
|
return AREA_NOACTIVATE --KILL_OK
|
||||||
end)
|
end)
|
||||||
|
|
||||||
if hasareasmod then
|
if hasareasmod then
|
||||||
|
|
Loading…
Reference in New Issue