From fc0f3a1211e06f671db261aba5477a9eadaf2817 Mon Sep 17 00:00:00 2001 From: Zughy <4279489-marco_a@users.noreply.gitlab.com> Date: Wed, 19 Apr 2023 23:06:37 +0200 Subject: [PATCH] stop people from shooting if they're shooting with a continous fire weapon when someone scores (closes #80) --- src/game/TD/ball.lua | 5 +++++ src/weapons/weapons.lua | 6 ++++-- 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/game/TD/ball.lua b/src/game/TD/ball.lua index 42178a0..a692d76 100644 --- a/src/game/TD/ball.lua +++ b/src/game/TD/ball.lua @@ -349,8 +349,13 @@ end function after_point(teamID, arena) + -- disabilita le armi e interrompi spari vari arena.weapons_disabled = true + for pl_name, _ in pairs(arena.players) do + minetest.get_player_by_name(pl_name):get_meta():set_int("bl_is_shooting", 0) + end + -- se rimane troppo poco tempo, aspetta la fine del match if arena.current_time <= 6 then return end diff --git a/src/weapons/weapons.lua b/src/weapons/weapons.lua index bc9d08a..37cde4b 100644 --- a/src/weapons/weapons.lua +++ b/src/weapons/weapons.lua @@ -66,7 +66,7 @@ function block_league.register_weapon(name, def) else groups = {bl_weapon = 1} end - + minetest.register_node(name, { name = def.name, groups = groups, @@ -475,9 +475,11 @@ function shoot_loop(weapon, player, pointed_thing) end -- interrompo lo sparo, se non รจ un'arma a fuoco continuo + if not weapon.continuos_fire then return end + minetest.after(0.1, function() if not arena_lib.is_player_in_arena(p_name, "block_league") then return end - if weapon.continuos_fire and player:get_player_control().LMB and player:get_meta():get_int("bl_is_shooting") == 1 then + if player:get_player_control().LMB and player:get_meta():get_int("bl_is_shooting") == 1 then shoot_loop(weapon, player, pointed_thing) else shoot_end(player, weapon)