From bf0a4b55c9a4dc120fe4e5527da4f1494b6e73ea Mon Sep 17 00:00:00 2001 From: woohoo Date: Fri, 1 Apr 2022 21:11:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0pt=E4=B8=80=E9=94=AE=E8=B4=AD?= =?UTF-8?q?=E4=B9=B0=E5=BC=80=E5=85=B3=20=E4=B8=AD=E8=8F=9C=E5=8D=95?= =?UTF-8?q?=E7=8E=B0=E5=B7=B2=E6=8A=98=E5=8F=A0=E9=83=A8=E5=88=86=E8=AE=BE?= =?UTF-8?q?=E7=BD=AE=20=E5=AE=8C=E5=96=84=E4=B8=80=E9=94=AE=E8=B5=B7?= =?UTF-8?q?=E9=A3=9E=E7=9A=84=E5=86=85=E5=AE=B9=EF=BC=8C=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=9C=89=E5=85=B3=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- torn-trans-zhcn.user.js | 839 ++++++++++++++++++++++++---------------- 1 file changed, 514 insertions(+), 325 deletions(-) diff --git a/torn-trans-zhcn.user.js b/torn-trans-zhcn.user.js index b7e5c9d..1a48949 100644 --- a/torn-trans-zhcn.user.js +++ b/torn-trans-zhcn.user.js @@ -1,8 +1,8 @@ // ==UserScript== -// @lastmodified 202203312033 +// @lastmodified 202204012110 // @name 芜湖助手 // @namespace WOOH -// @version 0.3.29 +// @version 0.3.30 // @description 托恩,起飞! // @author Woohoo[2687093] Sabrina_Devil[2696209] // @match https://www.torn.com/* @@ -23,13 +23,20 @@ if (window.WHTRANS) return; window.WHTRANS = true; // 版本 - const version = '0.3.29'; + const version = '0.3.30'; // 修改历史 const changelist = [ { todo: true, cont: `翻译:baza npc商店、imarket、imarket搜索结果`, }, + { + ver: '0.3.30', + date: '20220401', + cont: `添加pt一键购买开关 +中菜单现已折叠部分设置 +完善一键起飞的内容,修复有关错误`, + }, { ver: '0.3.29', date: '20220331', @@ -3224,6 +3231,8 @@ {key: 'cityFinder', val: false}, // 叠E保护 {key: 'SEProtect', val: false}, + // PT一键购买 + {key: 'ptQuickBuy', val: false}, // 光速拔刀 6-关闭 {key: 'quickAttIndex', val: 2}, // 光速跑路 0-leave 1-mug 2-hos 3-关闭 @@ -3391,210 +3400,257 @@ domId: 'wh-trans-event-cont', domHTML: eventObj.html, }); - // 开启翻译 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-trans-enable', - domText: ' 开启翻译 ', - dictName: 'transEnable', - }); - // 12月时加入圣诞小镇选项 - if (date.getMonth() === 11) { + // 折叠部分 + { + // 开启翻译 settingsArr.push({ domType: 'checkbox', - domId: 'wh-xmastown-wt', - domText: ' 圣诞小镇攻略', - dictName: 'xmasTownWT', + domId: 'wh-trans-enable', + domText: ' 开启翻译 ', + dictName: 'transEnable', + isHide: true, }); + // 12月时加入圣诞小镇选项 + if (date.getMonth() === 11) { + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-xmastown-wt', + domText: ' 圣诞小镇攻略', + dictName: 'xmasTownWT', + isHide: true, + }); + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-xmastown-notify', + domText: ' 圣诞小镇物品提示', + dictName: 'xmasTownNotify', + isHide: true, + }); + } + // 任务助手 settingsArr.push({ domType: 'checkbox', - domId: 'wh-xmastown-notify', - domText: ' 圣诞小镇物品提示', - dictName: 'xmasTownNotify', + domId: 'wh-mission-lint', + domText: ' 任务助手', + dictName: 'missionHint', + tip: 'Duke任务的一些中文小提示', + isHide: true, }); - } - // 快速crime - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-quick-crime', - domText: ' 快速犯罪 ', - dictName: 'quickCrime', - tip: '显示快捷操作按钮,目前不支持自定义', - }); - // 任务助手 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-mission-lint', - domText: ' 任务助手', - dictName: 'missionHint', - tip: 'Duke任务的一些中文小提示', - }); - // 起飞警告 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-energy-alert', - domText: ' 起飞爆E警告', - dictName: 'energyAlert', - tip: '起飞前计算来回是否会爆体,红字警告', - }); - // 飞行闹钟 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-trv-alarm-check', - domText: ' 飞行闹钟 (仅PC)', - dictName: 'trvAlarm', - tip: '飞行页面将显示一个内建的闹钟,落地前声音提醒,需要打开浏览器声音权限', - }); - // 啤酒提醒 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-qua-alarm-check', - domText: ' 啤酒提醒 ', - dictName: '_15Alarm', - tip: '每小时的整15分钟的倍数时通知提醒抢啤酒或者血包', - }); - // 攻击链接转跳 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-attack-relocate', - domText: ' 真·攻击界面转跳', - dictName: 'attRelocate', - tip: '在无法打开攻击界面的情况下依然可以转跳到正确的攻击页面', - }); - // 捡垃圾助手 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-city-finder', - domText: ' 捡垃圾助手', - dictName: 'cityFinder', - tip: '城市地图中放大显示物品并且估计价值', - }); - // 叠E保护 - settingsArr.push({ - domType: 'checkbox', - domId: 'wh-SEProtect-check', - domText: ' 叠E保护', - dictName: 'SEProtect', - tip: '隐藏健身房的锻炼按钮,防止误操作', - }); - // 光速拔刀 - settingsArr.push({ - domType: 'select', - domId: 'wh-quick-attack-index', - domText: '光速拔刀 ', - domSelectOpt: [ - { - domVal: 'pri', - domText: '主手', - }, - { - domVal: 'sec', - domText: '副手', - }, - { - domVal: 'wea', - domText: '近战', - }, - { - domVal: 'gre', - domText: '手雷', - }, - { - domVal: 'fis', - domText: '拳头', - }, - { - domVal: 'kic', - domText: '脚踢', - }, - { - domVal: 'none', - domText: '关闭', - }, - ], - dictName: 'quickAttIndex', - }); - // 光速跑路 - settingsArr.push({ - domType: 'select', - domId: 'wh-quick-mug', - domText: '光速跑路 ', - domSelectOpt: [ - { - domVal: 'leave', - domText: '跑路(LEAVE)', - }, - { - domVal: 'mug', - domText: '打劫(MUG)', - }, - { - domVal: 'hosp', - domText: '住院(HOSP)', - }, - { - domVal: 'none', - domText: '关闭', - }, - ], - dictName: 'quickFinishAtt', - }); - // 危险行为⚠️ - if (getWhSettingObj()['dangerZone'] === true) { - // 攻击界面自刷新 + // 起飞警告 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-energy-alert', + domText: ' 起飞爆E警告', + dictName: 'energyAlert', + tip: '起飞前计算来回是否会爆体,红字警告', + isHide: true, + }); + // 飞行闹钟 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-trv-alarm-check', + domText: ' 飞行闹钟', + dictName: 'trvAlarm', + tip: '(仅PC) 飞行页面将显示一个内建的闹钟,落地前声音提醒,需要打开浏览器声音权限', + isHide: true, + }); + // 啤酒提醒 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-qua-alarm-check', + domText: ' 啤酒提醒 ', + dictName: '_15Alarm', + tip: '每小时的整15分钟的倍数时通知提醒抢啤酒或者血包', + isHide: true, + }); + // 攻击链接转跳 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-attack-relocate', + domText: ' 真·攻击界面转跳', + dictName: 'attRelocate', + tip: '在无法打开攻击界面的情况下依然可以转跳到正确的攻击页面', + isHide: true, + }); + // 捡垃圾助手 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-city-finder', + domText: ' 捡垃圾助手', + dictName: 'cityFinder', + tip: '城市地图中放大显示物品并且估计价值', + isHide: true, + }); + // 快速crime + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-quick-crime', + domText: ' 快速犯罪 ', + // domText: ' 快速犯罪 ', + dictName: 'quickCrime', + tip: '显示快捷操作按钮,目前不支持自定义', + isHide: true, + }); + // 叠E保护 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-SEProtect-check', + domText: ' 叠E保护', + dictName: 'SEProtect', + tip: '隐藏健身房的锻炼按钮,防止误操作', + isHide: true, + }); + // PT一键购买 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-ptQuickBuy-check', + domText: ' PT一键购买', + dictName: 'ptQuickBuy', + tip: 'PT市场页面购买时跳过确认', + isHide: true, + }); + // 光速拔刀 settingsArr.push({ domType: 'select', - domId: 'wh-attack-reload', - domText: '⚠️攻击界面自动刷新 ', - dictName: 'attReload', + domId: 'wh-quick-attack-index', + domText: '光速拔刀 ', domSelectOpt: [ + { + domVal: 'pri', + domText: '主手', + }, + { + domVal: 'sec', + domText: '副手', + }, + { + domVal: 'wea', + domText: '近战', + }, + { + domVal: 'gre', + domText: '手雷', + }, + { + domVal: 'fis', + domText: '拳头', + }, + { + domVal: 'kic', + domText: '脚踢', + }, { domVal: 'none', - domText: '无间隔', - }, - { - domVal: '1', - domText: '约1s', - }, - { - domVal: '2', - domText: '约2s', - }, - { - domVal: '3', - domText: '约3s', - }, - { - domVal: '4', - domText: '约4s', - }, - { - domVal: '5', - domText: '约5s', - }, - { - domVal: 'disabled', domText: '关闭', }, ], + dictName: 'quickAttIndex', + isHide: true, + tip: '将Start Fight按钮移动到指定格子上', }); - // 自动开打和结束 + // 光速跑路 + settingsArr.push({ + domType: 'select', + domId: 'wh-quick-mug', + domText: '光速跑路 ', + domSelectOpt: [ + { + domVal: 'leave', + domText: '跑路(LEAVE)', + }, + { + domVal: 'mug', + domText: '打劫(MUG)', + }, + { + domVal: 'hosp', + domText: '住院(HOSP)', + }, + { + domVal: 'none', + domText: '关闭', + }, + ], + dictName: 'quickFinishAtt', + isHide: true, + tip: '将结束后指定按钮移动到上面指定的格子上', + }); + // 危险行为⚠️ + if (getWhSettingObj()['dangerZone'] === true) { + // 攻击界面自刷新 + settingsArr.push({ + domType: 'select', + domId: 'wh-attack-reload', + domText: '⚠️攻击界面自动刷新 ', + dictName: 'attReload', + domSelectOpt: [ + { + domVal: 'none', + domText: '无间隔', + }, + { + domVal: '1', + domText: '约1s', + }, + { + domVal: '2', + domText: '约2s', + }, + { + domVal: '3', + domText: '约3s', + }, + { + domVal: '4', + domText: '约4s', + }, + { + domVal: '5', + domText: '约5s', + }, + { + domVal: 'disabled', + domText: '关闭', + }, + ], + isHide: true, + tip: '危险功能:接机时常用,将自动刷新页面直到目标落地', + }); + // 自动开打和结束 + settingsArr.push({ + domType: 'checkbox', + domId: 'wh-auto-start-finish', + domText: ' ⚠️自动开打和结束', + dictName: 'autoStartFinish', + tip: '脚本将会自动按下战斗和结束按钮', + isHide: true, + }); + } else { + setWhSetting('autoStartFinish', false, false) + setWhSetting('attReload', 6, false) + } + // dev settingsArr.push({ domType: 'checkbox', - domId: 'wh-auto-start-finish', - domText: ' ⚠️自动开打和结束', - dictName: 'autoStartFinish', - tip: '脚本将会自动按下战斗和结束按钮', + domId: 'wh-dev-mode', + domText: ` 开发者模式${isDev() ? ' ' : ''}`, + dictName: 'isDev', + isHide: true, + }); + // 其他设置 + if (isDev()) settingsArr.push({ + domType: 'button', domId: 'wh-otherBtn', domText: '其他设置', clickFunc: () => { + const html = `清空设置数据、请求通知权限、测试跨域请求`; + const popup = popupMsg(html, '其他设置'); + }, + isHide: true, }); - } else { - setWhSetting('autoStartFinish', false, false) - setWhSetting('attReload', 6, false) } // 飞花库存 settingsArr.push({ domType: 'button', domId: 'wh-foreign-stock-btn', - domText: '飞花库存', + domText: '🌸 飞花库存', clickFunc: async function (e) { e.target.blur(); if (getScriptEngine() === UserScriptEngine.RAW) { @@ -3676,7 +3732,7 @@ settingsArr.push({ domType: 'button', domId: 'wh-quick-fly-btn', - domText: '✈一键起飞', + domText: '✈️ 一键起飞', clickFunc: async function () { if (window.hasWHQuickFlyOpt) return; window.hasWHQuickFlyOpt = true; @@ -3693,6 +3749,7 @@ width: 220px; z-index: 999999; } +#wh-quick-fly-opt p{margin:4px 0;} #wh-quick-fly-opt label{ display:block; } @@ -3702,24 +3759,31 @@ width: 100%; margin: 4px 0; } #wh-quick-fly-opt button{ -font-size:16px; -color:white; +font-size: 16px; + color: white; + cursor: pointer; + float: right; + background: #00BCD4; + padding: 8px; + border-radius: 4px; } `); const node = document.createElement('div'); node.id = 'wh-quick-fly-opt'; node.innerHTML = ` -

先选好目的地和飞机,出院后点起飞

+

主要用途:出院秒飞

+

选好目的地和飞机,出院后点起飞

+

页面加载完成后会马上飞走

- - - + + +
`; const [dest_node, type_node] = node.querySelectorAll('select'); const btn_node = node.querySelector('button'); btn_node.addEventListener('click', () => { - WHNotify('即将转跳'); + WHNotify('正在转跳'); sessionStorage['wh-quick-fly'] = `${dest_node.selectedIndex} ${type_node.selectedIndex} ${new Date().getTime()}`; location.href = 'https://www.torn.com/travelagency.php'; }); @@ -3730,7 +3794,7 @@ color:white; settingsArr.push({ domType: 'button', domId: 'wh-npc-loot-btn', - domText: 'NPC LOOT (真·世界BOSS)', + domText: '🔫 LOOT', clickFunc: function (e) { e.target.blur(); const insert = `

点击开打:

@@ -3744,12 +3808,13 @@ color:white;
stock.png
`; popupMsg(insert, 'NPC LOOT'); }, + tip: '显示5个可击杀NPC的开打时间', }); // 查看NNB settingsArr.push({ domType: 'button', domId: 'wh-nnb-info', - domText: '查看NNB', + domText: '👮‍ 查看NNB', clickFunc: function (e) { e.target.blur(); const insert = `