/* ============================================= tools.js — 工具箱页面 ============================================= */ // 工具开关状态 const _toolsState = { infiniteZoom: false, bloodPatch: false, autoAccept: false, createRoom: false, }; // 段位选项 const RANK_TIERS = ['未设置','铁牌','铜牌','银牌','金牌','铂金','翡翠','钻石','大师','宗师','最强王者']; const RANK_DIVS = ['未设置','I','II','III','IV']; // 游戏模式选项 const GAME_MODES = ['未设置','匹配模式','排位单双','排位灵活','极地大乱斗','斗魂竞技场','云顶之弈']; function renderTools() { const page = document.getElementById('page-tools'); const tierOpts = RANK_TIERS.map(t => ``).join(''); const divOpts = RANK_DIVS.map(d => ``).join(''); const modeOpts = GAME_MODES.map(m => ``).join(''); page.innerHTML = `
🧍
无限视距
游戏中鼠标滚轮上下
🐷
血液补丁
红色流血特效,增强视觉效果
🎮
自动接受对局
自动帮您接受对局匹配或其他模式
🏆
创建 5v5 房间
只能添加人机玩家训练技术
🔮 段位修改
▾
▾
▾
`; } async function toggleTool(key) { _toolsState[key] = !_toolsState[key]; const el = document.getElementById('toggle-' + key); if (el) el.classList.toggle('on', _toolsState[key]); const onMsgs = { infiniteZoom: '✓ 无限视距已开启', bloodPatch: '✓ 血液补丁已开启', autoAccept: '✓ 自动接受对局已开启', createRoom: '✓ 5v5训练营创建成功', }; const offMsgs = { infiniteZoom: '无限视距已关闭', bloodPatch: '血液补丁已关闭', autoAccept: '自动接受对局已关闭', createRoom: '房间已解散', }; try { await fetch('/api/setTool?key=' + key + '&val=' + (_toolsState[key] ? '1' : '0')); showToast(_toolsState[key] ? onMsgs[key] : offMsgs[key], _toolsState[key] ? 'ok' : 'err'); } catch(e) { showToast('操作失败,请检查连接', 'err'); // 回滚状态 _toolsState[key] = !_toolsState[key]; if (el) el.classList.toggle('on', _toolsState[key]); } } async function onRankChange() { const mode = encodeURIComponent(document.getElementById('rankMode')?.value || ''); const tier = encodeURIComponent(document.getElementById('rankTier')?.value || ''); const div = encodeURIComponent(document.getElementById('rankDiv')?.value || ''); try { await fetch('/api/setRank?mode=' + mode + '&tier=' + tier + '&div=' + div); } catch(e) { /* 静默失败 */ } }