Folgender code tut genau das was ich möchte:
Code: Select all
minetest.register_on_punchplayer(
function(player, hitter, time_from_last_punch, tool_capabilities, dir, damage)
if not player or not hitter then
print("[pvpdis] on_punchplayer called with nil objects")
end
local pos = player:getpos()
local playername = player:get_player_name()
local hittername = hitter:get_player_name()
local old_is_protected = minetest.is_protected
if(minetest.is_protected(pos, hittername)) then
print("[pvpdis] Area is owned by " .. playername .. ": PvP inactive")
return true
else
print("[pvpdis] Area is NOT owned by " .. playername .. ": PvP active")
return false
end
return old_is_protected(pos, hittername)
end)
Code: Select all
|Spieler1 |Spieler2
--------------------+--------------------+--------------------
Gebiet von Spieler1 |macht Schaden |macht keinen Schaden
Gebiet von Spieler2 |macht keinen Schaden|macht Schaden
gehört niemandem |macht Schaden |macht Schaden
gehört einem Fremden|macht keinen Schaden|macht keinen Schaden
Was genau prüft denn minetest.is_protected(pos, playername)?
- nur ob pos geschützt ist?
- ob pos von playername geschützt ist?
- ob pos von demjenigen geschützt ist, der den code ausgelöst hat?
Ich habe keine Ahnung was hier geschieht. Wäre prima wenn mich wer erleuchten könnte ;-)
Liebe Grüße,
Hectic