From db8a92a2f7bc91aac386909154d070aab9c72d1f Mon Sep 17 00:00:00 2001 From: TermiNexus Date: Mon, 12 Oct 2026 11:01:36 +0800 Subject: [PATCH] =?UTF-8?q?feat(panel):=20Alt+T=20=E9=9D=A2=E6=9D=BF?= =?UTF-8?q?=E6=96=B0=E5=A2=9E=E3=80=8C=E7=94=B5=E7=A3=81=E7=82=AE=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=E3=80=8D=E2=80=94=E2=80=94=E9=94=81=E5=AE=9A/?= =?UTF-8?q?=E8=93=84=E5=8A=9B=E6=97=B6=E9=95=BF=E5=8F=AF=E5=AE=9E=E6=97=B6?= =?UTF-8?q?=E8=B0=83?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 启用时长覆盖(checkbox) + 锁定/蓄力(s) 滑块 0.1~5.0/步进0.05,拖动立即写入 window.__hornetLockSec__ 并持久化到 localStorage(hornet_lock_on/hornet_lock_sec)。实测门槛:1.5s/2.0s 满伤,1.0s/0.1s 无伤害。 --- .../play/static/js/unpacked/hornet_bundle.js | 33 +++++++++++++++++++ 3dtank_bundle.js | 33 +++++++++++++++++++ tools/hornet_panel.js | 33 +++++++++++++++++++ 3 files changed, 99 insertions(+) diff --git a/3dtank.com/play/static/js/unpacked/hornet_bundle.js b/3dtank.com/play/static/js/unpacked/hornet_bundle.js index 0f56a38..0a262ad 100644 --- a/3dtank.com/play/static/js/unpacked/hornet_bundle.js +++ b/3dtank.com/play/static/js/unpacked/hornet_bundle.js @@ -5892,6 +5892,39 @@ if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v); }); + // ===== 电磁炮(RAILGUN / z4t)设置 ===== + // 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它), + // 拖动滑块**立即生效**,不需要重打包或刷新页面。 + // 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。 + var rgSec = MakeSettingsSection('电磁炮设置'); + var rgSecVal = 1.5; + function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); } + function SaveLock(on, v) { + try { + localStorage.setItem('hornet_lock_on', on ? '1' : '0'); + localStorage.setItem('hornet_lock_sec', String(v)); + } catch (e) {} + } + var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) { + ApplyLock(on ? rgSecVal : 0); + SaveLock(on, rgSecVal); + }); + var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) { + rgSecVal = v; + if (rgOnCtl.get()) ApplyLock(v); + SaveLock(rgOnCtl.get(), v); + }); + (function () { // 回填上次保存的配置 + try { + var on = localStorage.getItem('hornet_lock_on') === '1'; + var v = parseFloat(localStorage.getItem('hornet_lock_sec')); + if (isFinite(v) && v > 0) rgSecVal = v; + rgLockCtl.set(rgSecVal); + rgOnCtl.set(on); + ApplyLock(on ? rgSecVal : 0); + } catch (e) {} + })(); + // 从工具读取当前设置(打开面板时同步) function SyncWfSettings() { var tools = window.__hornetTools__ || {}; diff --git a/3dtank_bundle.js b/3dtank_bundle.js index 0f56a38..0a262ad 100644 --- a/3dtank_bundle.js +++ b/3dtank_bundle.js @@ -5892,6 +5892,39 @@ if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v); }); + // ===== 电磁炮(RAILGUN / z4t)设置 ===== + // 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它), + // 拖动滑块**立即生效**,不需要重打包或刷新页面。 + // 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。 + var rgSec = MakeSettingsSection('电磁炮设置'); + var rgSecVal = 1.5; + function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); } + function SaveLock(on, v) { + try { + localStorage.setItem('hornet_lock_on', on ? '1' : '0'); + localStorage.setItem('hornet_lock_sec', String(v)); + } catch (e) {} + } + var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) { + ApplyLock(on ? rgSecVal : 0); + SaveLock(on, rgSecVal); + }); + var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) { + rgSecVal = v; + if (rgOnCtl.get()) ApplyLock(v); + SaveLock(rgOnCtl.get(), v); + }); + (function () { // 回填上次保存的配置 + try { + var on = localStorage.getItem('hornet_lock_on') === '1'; + var v = parseFloat(localStorage.getItem('hornet_lock_sec')); + if (isFinite(v) && v > 0) rgSecVal = v; + rgLockCtl.set(rgSecVal); + rgOnCtl.set(on); + ApplyLock(on ? rgSecVal : 0); + } catch (e) {} + })(); + // 从工具读取当前设置(打开面板时同步) function SyncWfSettings() { var tools = window.__hornetTools__ || {}; diff --git a/tools/hornet_panel.js b/tools/hornet_panel.js index be0e5b7..f2807a3 100644 --- a/tools/hornet_panel.js +++ b/tools/hornet_panel.js @@ -543,6 +543,39 @@ if (tools.WarSandbox) tools.WarSandbox.SetMarkerSize(v); }); + // ===== 电磁炮(RAILGUN / z4t)设置 ===== + // 锁定/蓄力时长实时覆盖 window.__hornetLockSec__(游戏内 z4t.w187() 优先读它), + // 拖动滑块**立即生效**,不需要重打包或刷新页面。 + // 实测门槛:1.5s / 2.0s / 原版3~5s = 满伤;1.0s / 0.1s = 无伤害 ⇒ 门槛在 1.0~1.5s。 + var rgSec = MakeSettingsSection('电磁炮设置'); + var rgSecVal = 1.5; + function ApplyLock(v) { window.__hornetLockSec__ = (v > 0 ? v : undefined); } + function SaveLock(on, v) { + try { + localStorage.setItem('hornet_lock_on', on ? '1' : '0'); + localStorage.setItem('hornet_lock_sec', String(v)); + } catch (e) {} + } + var rgOnCtl = rgSec.checkbox('启用时长覆盖', function(on) { + ApplyLock(on ? rgSecVal : 0); + SaveLock(on, rgSecVal); + }); + var rgLockCtl = rgSec.slider('锁定/蓄力(s)', 0.1, 5.0, 0.05, function(v) { return v.toFixed(2); }, function(v) { + rgSecVal = v; + if (rgOnCtl.get()) ApplyLock(v); + SaveLock(rgOnCtl.get(), v); + }); + (function () { // 回填上次保存的配置 + try { + var on = localStorage.getItem('hornet_lock_on') === '1'; + var v = parseFloat(localStorage.getItem('hornet_lock_sec')); + if (isFinite(v) && v > 0) rgSecVal = v; + rgLockCtl.set(rgSecVal); + rgOnCtl.set(on); + ApplyLock(on ? rgSecVal : 0); + } catch (e) {} + })(); + // 从工具读取当前设置(打开面板时同步) function SyncWfSettings() { var tools = window.__hornetTools__ || {};