From 454d7e8b041fc3aa42345b8fafcb6128f50aadfc Mon Sep 17 00:00:00 2001 From: GNU Hacker Date: Wed, 29 Jun 2022 20:44:21 +0200 Subject: [PATCH 1/5] arrow check if pvp is enable --- mods/ITEMS/mcl_bows/arrow.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_bows/arrow.lua b/mods/ITEMS/mcl_bows/arrow.lua index 8edf75011..a2ba96f36 100644 --- a/mods/ITEMS/mcl_bows/arrow.lua +++ b/mods/ITEMS/mcl_bows/arrow.lua @@ -1,6 +1,7 @@ local S = minetest.get_translator(minetest.get_current_modname()) local mod_target = minetest.get_modpath("mcl_target") +local enable_pvp = minetest.settings:get_bool("enable_pvp") local math = math local vector = vector @@ -204,7 +205,7 @@ function ARROW_ENTITY.on_step(self, dtime) if hitpoint.type == "object" then -- find the closest object that is in the way of the arrow local ok = false - if hitpoint.ref:is_player() then + if hitpoint.ref:is_player() and enable_pvp then ok = true elseif hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then From b7f8a75d0417413c8a96d18063f153d633f47fac Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 15 Jul 2022 17:07:51 +0200 Subject: [PATCH 2/5] Add PVP check for rocket arrows --- mods/ITEMS/mcl_bows/rocket.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_bows/rocket.lua b/mods/ITEMS/mcl_bows/rocket.lua index c47989e3e..3d311eeb2 100644 --- a/mods/ITEMS/mcl_bows/rocket.lua +++ b/mods/ITEMS/mcl_bows/rocket.lua @@ -231,6 +231,7 @@ end local mod_awards = minetest.get_modpath("awards") and minetest.get_modpath("mcl_achievements") local mod_button = minetest.get_modpath("mesecons_button") local mod_target = minetest.get_modpath("mcl_target") +local enable_pvp = minetest.settings:get_bool("enable_pvp") minetest.register_craftitem("mcl_bows:rocket", { description = S("Arrow"), @@ -417,7 +418,7 @@ function ARROW_ENTITY.on_step(self, dtime) if hitpoint.type == "object" then -- find the closest object that is in the way of the arrow local ok = false - if hitpoint.ref:is_player() then + if hitpoint.ref:is_player() and enable_pvp then ok = true elseif hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then From 77d834ac5ed442a66472789315ee63956a2e8827 Mon Sep 17 00:00:00 2001 From: cora Date: Fri, 15 Jul 2022 17:09:04 +0200 Subject: [PATCH 3/5] Add PVP check to tipped arrows --- mods/ITEMS/mcl_potions/tipped_arrow.lua | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_potions/tipped_arrow.lua b/mods/ITEMS/mcl_potions/tipped_arrow.lua index a3dbe84c2..3c18fe725 100644 --- a/mods/ITEMS/mcl_potions/tipped_arrow.lua +++ b/mods/ITEMS/mcl_potions/tipped_arrow.lua @@ -30,6 +30,7 @@ local how_to_shoot = minetest.registered_items["mcl_bows:arrow"]._doc_items_usag local mod_awards = minetest.get_modpath("awards") and minetest.get_modpath("mcl_achievements") local mod_button = minetest.get_modpath("mesecons_button") +local enable_pvp = minetest.settings:get_bool("enable_pvp") local arrow_longdesc = minetest.registered_items["mcl_bows:arrow"]._doc_items_longdesc or "" local arrow_tt = minetest.registered_items["mcl_bows:arrow"]._tt_help or "" @@ -217,7 +218,7 @@ function mcl_potions.register_arrow(name, desc, color, def) if hitpoint.type == "object" then -- find the closest object that is in the way of the arrow local ok = false - if hitpoint.ref:is_player() then + if hitpoint.ref:is_player() and enable_pvp then ok = true elseif hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then From bf23c61e34b36fcd0a9c788d5088c882f6b66edc Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 16 Jul 2022 00:43:18 +0200 Subject: [PATCH 4/5] skip damage completely when player & pvp disabled --- mods/ITEMS/mcl_bows/arrow.lua | 2 +- mods/ITEMS/mcl_bows/rocket.lua | 2 +- mods/ITEMS/mcl_potions/tipped_arrow.lua | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/mods/ITEMS/mcl_bows/arrow.lua b/mods/ITEMS/mcl_bows/arrow.lua index a2ba96f36..a03b875cb 100644 --- a/mods/ITEMS/mcl_bows/arrow.lua +++ b/mods/ITEMS/mcl_bows/arrow.lua @@ -207,7 +207,7 @@ function ARROW_ENTITY.on_step(self, dtime) local ok = false if hitpoint.ref:is_player() and enable_pvp then ok = true - elseif hitpoint.ref:get_luaentity() then + elseif not hitpoint.ref:is_player() and hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then ok = true end diff --git a/mods/ITEMS/mcl_bows/rocket.lua b/mods/ITEMS/mcl_bows/rocket.lua index 3d311eeb2..d25c52647 100644 --- a/mods/ITEMS/mcl_bows/rocket.lua +++ b/mods/ITEMS/mcl_bows/rocket.lua @@ -420,7 +420,7 @@ function ARROW_ENTITY.on_step(self, dtime) local ok = false if hitpoint.ref:is_player() and enable_pvp then ok = true - elseif hitpoint.ref:get_luaentity() then + elseif not hitpoint.ref:is_player() and hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then ok = true end diff --git a/mods/ITEMS/mcl_potions/tipped_arrow.lua b/mods/ITEMS/mcl_potions/tipped_arrow.lua index 3c18fe725..f42718a12 100644 --- a/mods/ITEMS/mcl_potions/tipped_arrow.lua +++ b/mods/ITEMS/mcl_potions/tipped_arrow.lua @@ -220,7 +220,7 @@ function mcl_potions.register_arrow(name, desc, color, def) local ok = false if hitpoint.ref:is_player() and enable_pvp then ok = true - elseif hitpoint.ref:get_luaentity() then + elseif not hitpoint.ref:is_player() and hitpoint.ref:get_luaentity() then if (hitpoint.ref:get_luaentity().is_mob or hitpoint.ref:get_luaentity()._hittable_by_projectile) then ok = true end From 0b157c953f95589955f6d181d4839d1cd7df14ca Mon Sep 17 00:00:00 2001 From: cora Date: Sat, 16 Jul 2022 00:44:04 +0200 Subject: [PATCH 5/5] fix wrong argument to sound_play --- mods/ITEMS/mcl_potions/tipped_arrow.lua | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mods/ITEMS/mcl_potions/tipped_arrow.lua b/mods/ITEMS/mcl_potions/tipped_arrow.lua index f42718a12..53a37705e 100644 --- a/mods/ITEMS/mcl_potions/tipped_arrow.lua +++ b/mods/ITEMS/mcl_potions/tipped_arrow.lua @@ -284,7 +284,7 @@ function mcl_potions.register_arrow(name, desc, color, def) if is_player then if self._shooter and self._shooter:is_player() then -- “Ding” sound for hitting another player - minetest.sound_play({name="mcl_bows_hit_player", gain=0.1}, {to_player=self._shooter}, true) + minetest.sound_play({name="mcl_bows_hit_player", gain=0.1}, {to_player=self._shooter:get_player_name()}, true) end end