From c6743a8fd57bf6ff449607f04d066caa68850067 Mon Sep 17 00:00:00 2001 From: Chalwk77 Date: Fri, 7 Jul 2023 18:28:22 +1200 Subject: [PATCH] ... --- INDEV/Battle Royale/about.md | 3 +- .../Battle Royale/map settings/bloodgulch.lua | 36 +++++++++-------- .../map settings/dangercanyon.lua | 30 +++++++------- .../map settings/deathisland.lua | 30 +++++++------- .../map settings/gephyrophobia.lua | 30 +++++++------- .../Battle Royale/map settings/icefields.lua | 30 +++++++------- INDEV/Battle Royale/map settings/infinity.lua | 30 +++++++------- .../Battle Royale/map settings/sidewinder.lua | 30 +++++++------- .../Battle Royale/map settings/timberland.lua | 30 +++++++------- .../weapon degradation/degradation.lua | 40 ++++++++++--------- 10 files changed, 148 insertions(+), 141 deletions(-) diff --git a/INDEV/Battle Royale/about.md b/INDEV/Battle Royale/about.md index 5e0dcb7f..19f93ee9 100644 --- a/INDEV/Battle Royale/about.md +++ b/INDEV/Battle Royale/about.md @@ -34,7 +34,6 @@ Planned features: - [x] Weapon degradation: (**done**) - Weapons will degrade over time. - Weapons will have a limited number of shots before they break. - - Weapons will have a limited number of reloads before they break. - [ ] Weapons (**WIP**) - Players will start with no weapons. (**done**) - Weapons will have different stats, such as damage and degradation. (**WIP**) @@ -53,4 +52,4 @@ Planned features: - `deathisland`, `gephyrophobia` # Progress: -![alt text](https://progress-bar.dev/58/?title=Progress) \ No newline at end of file +![alt text](https://progress-bar.dev/70/?title=Progress) \ No newline at end of file diff --git a/INDEV/Battle Royale/map settings/bloodgulch.lua b/INDEV/Battle Royale/map settings/bloodgulch.lua index ea00e983..1e7b17fc 100644 --- a/INDEV/Battle Royale/map settings/bloodgulch.lua +++ b/INDEV/Battle Royale/map settings/bloodgulch.lua @@ -168,6 +168,10 @@ return { --- Weapon degradation (decay): + -- Weapons will jam over time, as they degrade. + -- They will progressively jam more often as they get closer to breaking. + -- When a weapon jams, it will not fire until it is unjammed. + -- The player will have to unjam the weapon by pressing the reload button. weapon_degradation = { -- If enabled, weapons will degrade over time. @@ -177,17 +181,10 @@ return { decay_rate = { - -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 1.98% = 0.066%*30 per second. - - -- 2.12% every second (0.070% every 1/30th second) - ['weapons\\pistol\\pistol'] = 2.12, - ['weapons\\needler\\mp_needler'] = 2.12, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- All weapons start with a decay value of 0 and a max decay value of 100. + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -196,15 +193,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 0.45% every second (0.015% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 3.45, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, - -- 2.45% every second (0.078% every 1/30th second) - ['weapons\\sniper rifle\\sniper rifle'] = 5.0, - ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, -- 2.35% every second (0.078% every 1/30th second) ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + + -- 2.45% every second (0.081% every 1/30th second) + ['weapons\\sniper rifle\\sniper rifle'] = 2.45, + ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, + + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/dangercanyon.lua b/INDEV/Battle Royale/map settings/dangercanyon.lua index 89a07ab8..868ee23e 100644 --- a/INDEV/Battle Royale/map settings/dangercanyon.lua +++ b/INDEV/Battle Royale/map settings/dangercanyon.lua @@ -184,16 +184,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -202,15 +195,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/deathisland.lua b/INDEV/Battle Royale/map settings/deathisland.lua index fca9ca90..b441a95f 100644 --- a/INDEV/Battle Royale/map settings/deathisland.lua +++ b/INDEV/Battle Royale/map settings/deathisland.lua @@ -199,16 +199,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -217,15 +210,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/gephyrophobia.lua b/INDEV/Battle Royale/map settings/gephyrophobia.lua index c3995526..96f185a2 100644 --- a/INDEV/Battle Royale/map settings/gephyrophobia.lua +++ b/INDEV/Battle Royale/map settings/gephyrophobia.lua @@ -194,16 +194,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -212,15 +205,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/icefields.lua b/INDEV/Battle Royale/map settings/icefields.lua index 03403bad..635a867b 100644 --- a/INDEV/Battle Royale/map settings/icefields.lua +++ b/INDEV/Battle Royale/map settings/icefields.lua @@ -181,16 +181,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -199,15 +192,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/infinity.lua b/INDEV/Battle Royale/map settings/infinity.lua index 7effe207..8c6635bd 100644 --- a/INDEV/Battle Royale/map settings/infinity.lua +++ b/INDEV/Battle Royale/map settings/infinity.lua @@ -204,16 +204,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -222,15 +215,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/sidewinder.lua b/INDEV/Battle Royale/map settings/sidewinder.lua index e1432b15..e3a306e2 100644 --- a/INDEV/Battle Royale/map settings/sidewinder.lua +++ b/INDEV/Battle Royale/map settings/sidewinder.lua @@ -178,16 +178,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -196,15 +189,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/map settings/timberland.lua b/INDEV/Battle Royale/map settings/timberland.lua index 4698ccf3..983e30b2 100644 --- a/INDEV/Battle Royale/map settings/timberland.lua +++ b/INDEV/Battle Royale/map settings/timberland.lua @@ -183,16 +183,9 @@ return { decay_rate = { -- All weapons start with a decay value of 0 and a max decay value of 100. - -- The lower the percentage value, the faster the weapon will degrade. - -- The percentage is added to the weapons decay value every 1/30th second (while firing). - -- Example: 0.066%*30 = 1.98% per second. - - -- 1.98% every second (0.066% every 1/30th second) - ['weapons\\pistol\\pistol'] = 1.98, - ['weapons\\needler\\mp_needler'] = 1.98, - - -- 2.10% every second (0.07% every 1/30th second) - ['weapons\\flamethrower\\flamethrower'] = 2.10, + -- The higher the percentage value, the faster the weapon will degrade. + -- Example: 1.98% = 0.066*30% per 30 ticks. + -- [note]: Weapons will only decay while in use (firing, but not reloading). -- 1.20% every second (0.04% every 1/30th second) ['weapons\\plasma rifle\\plasma rifle'] = 1.2, @@ -201,15 +194,22 @@ return { -- 1.90% every second (0.063% every 1/30th second) ['weapons\\shotgun\\shotgun'] = 1.90, - -- 2.30% every second (0.078% every 1/30th second) - ['weapons\\assault rifle\\assault rifle'] = 2.30, + -- 2.10% every second (0.07% every 1/30th second) + ['weapons\\flamethrower\\flamethrower'] = 2.10, + + -- 2.12% every second (0.070% every 1/30th second) + ['weapons\\pistol\\pistol'] = 2.12, + ['weapons\\needler\\mp_needler'] = 2.12, + + -- 2.35% every second (0.078% every 1/30th second) + ['weapons\\rocket launcher\\rocket launcher'] = 2.35, - -- 2.45% every second (0.078% every 1/30th second) + -- 2.45% every second (0.081% every 1/30th second) ['weapons\\sniper rifle\\sniper rifle'] = 2.45, ['weapons\\plasma_cannon\\plasma_cannon'] = 2.45, - -- 2.35% every second (0.078% every 1/30th second) - ['weapons\\rocket launcher\\rocket launcher'] = 2.35, + -- 3.45% every second (0.115% every 1/30th second) + ['weapons\\assault rifle\\assault rifle'] = 3.45, } }, diff --git a/INDEV/Battle Royale/weapon degradation/degradation.lua b/INDEV/Battle Royale/weapon degradation/degradation.lua index adde2117..49a45299 100644 --- a/INDEV/Battle Royale/weapon degradation/degradation.lua +++ b/INDEV/Battle Royale/weapon degradation/degradation.lua @@ -8,6 +8,10 @@ local function reloading(dynamic_player) return (read_byte(dynamic_player + 0x2A4) == 5) end +local function reloadButton(dynamic_player) + return (read_word(dynamic_player + 0x208) == 1024) +end + function weapons:getWeapon(object) return self.decay[object] end @@ -50,7 +54,7 @@ function weapons:degrade() weapon = self:getWeapon(object) - local jammed = self:isJammed(weapon) + local jammed = self:isJammed(weapon, dyn) local decay = (not jammed and isFiring(dyn) and not in_vehicle and not is_reloading) if (decay) then @@ -75,7 +79,6 @@ function weapons:degrade() local max = 101 -- weapons will always jam if the decay is above this value local interval = rand(1, 6) - local unjam_after = (time + 5) if (time >= interval and rand(min, max) <= (weapon.decay / 2)) then local ammo = read_word(object + 0x2B8) -- clip @@ -83,8 +86,7 @@ function weapons:degrade() if (ammo > 0) then weapon.ammo = { ammo, mag } weapon.jammed = true - weapon.interval = unjam_after - self:newMessage('Your weapon has jammed', 15) + self:newMessage('Your weapon has jammed. Press reload to unjam.', 15) return end elseif (weapon.decay >= 10) then @@ -101,29 +103,31 @@ function weapons:degrade() end end -function weapons:isJammed(weapon) +function weapons:isJammed(weapon, dyn) if (not weapon.jammed) then return false end - local time = weapon.timer:get() - if (time < weapon.interval) then - write_word(weapon.object + 0x2B8, 0) - write_word(weapon.object + 0x2B6, 0) + --todo add support for energy weapons + + local reload_pressed = reloadButton(dyn) + if (not reload_pressed) then + write_word(weapon.object + 0x2B8, 0) -- primary clip + write_word(weapon.object + 0x2B6, 0) -- reserve ammo sync_ammo(weapon.weapon) return true - elseif (time >= weapon.interval) then - write_word(weapon.object + 0x2B8, weapon.ammo[1]) - write_word(weapon.object + 0x2B6, weapon.ammo[2]) - sync_ammo(weapon.weapon) - weapon.jammed = nil - weapon.interval = nil - weapon.ammo = nil - weapon.timer:restart() - return false end + write_word(weapon.object + 0x2B8, weapon.ammo[1]) -- primary + write_word(weapon.object + 0x2B6, weapon.ammo[2]) -- reserve + sync_ammo(weapon.weapon) + + weapon.jammed = nil + weapon.ammo = nil + weapon.timer:restart() + + self:newMessage('Weapon unjammed!', 10) return false end