区间为 1 ~ 60,默认 50
`,"啤酒提醒时间设定");let e=document.createElement("button");e.innerHTML="确定";e.style.float="right";e.addEventListener("click",()=>{let e=i.querySelector("input");let t=e.value|0;if(t===f()["_15AlarmTime"])return;if(t<1||t>60)t=50;e.value=t.toString();y("_15AlarmTime",t);let n=P.is_running();P.set_time(t);if(n)P.start();i.close()});i.appendChild(e)}});e.push({domType:"plain",domId:"",domHTML:"其他",tagName:"h4"});e.push({domType:"checkbox",domId:"wh-mission-lint",domText:" 任务助手",dictName:"missionHint",tip:"Duke任务的一些中文小提示",isHide:true});e.push({domType:"checkbox",domId:"wh-city-finder",domText:" 捡垃圾助手",dictName:"cityFinder",tip:"城市地图中放大显示物品并且估计价值",isHide:true});e.push({domType:"checkbox",domId:"wh-quick-crime",domText:" 快速犯罪",dictName:"quickCrime",tip:"显示快捷操作按钮,目前不支持自定义",isHide:true});e.push({domType:"checkbox",domId:"wh-SEProtect-check",domText:" 叠E保护",dictName:"SEProtect",tip:"隐藏健身房的锻炼按钮,防止误操作",isHide:true});e.push({domType:"checkbox",domId:"wh-ptQuickBuy-check",domText:" PT一键购买",dictName:"ptQuickBuy",tip:"PT市场页面购买时跳过确认",isHide:true});e.push({domType:"checkbox",domId:"",domText:" 4条转跳",dictName:"barsRedirect",tip:"点击4条时转跳对应页面"});e.push({domType:"checkbox",domId:"",domText:" 清除多余的脚本",dictName:"removeScripts",tip:"清除Google相关脚本、顶部横幅等"});if(f()["dangerZone"]===true){e.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:"危险功能:接机时常用,将自动刷新页面直到目标落地"});e.push({domType:"checkbox",domId:"wh-auto-start-finish",domText:" ⚠️自动开打和结束",dictName:"autoStartFinish",tip:"脚本将会自动按下战斗和结束按钮",isHide:true})}else{y("autoStartFinish",false,false);y("attReload",6,false)}e.push({domType:"checkbox",domId:"wh-dev-mode",domText:` 开发者模式${j()?' ':""}`,dictName:"isDev",isHide:true});if(j())e.push({domType:"button",domId:"wh-otherBtn",domText:"更多设定",clickFunc:()=>{const e=`清空设置数据、请求通知权限、测试跨域请求`;const t=m(e,"更多设定")},isHide:true});const i=[];if(A.userID!==0){i.push({domType:"plain",domId:"wh-trans-welcome",domHTML:`欢迎 ${A.playername}[${A.userID}] 大佬`})}let q=": ";{const yt={"0105":{name:"周末自驾游",eff:"获得双倍的赛车点数与赛车技能等级增益"},"0114":{name:"情人节",eff:"使用爱情果汁(Love Juice)后获得降低攻击与复活的能量消耗的增益"},"0204":{name:"员工激励日",eff:"获得三倍的工作点数与火车增益"},"0217":{name:"圣帕特里克日",eff:"获得双倍的酒类效果增益,城市中可以捡到绿色世涛(Green Stout)"},"0320":{name:"420日",eff:"获得三倍的大麻(Cannabis)效果增益"},"0418":{name:"博物馆日",eff:"获得10%提高的博物馆PT兑换增益"},"0514":{name:"世界献血日",eff:"获得减半的抽血CD和扣血增益"},"0611":{name:"世界人口日",eff:"获得双倍的通过攻击获取的经验的增益"},"0629":{name:"世界老虎日",eff:"获得5倍的狩猎技能增益"},"0705":{name:"国际啤酒节",eff:"获得5倍的啤酒物品效果增益"},"0827":{name:"旅游节",eff:"获得双倍的起飞后物品携带容量增益"},"0915":{name:"饮料节",eff:"获得双倍的能量饮料效果增益"},1014:{name:"世界糖尿病日",eff:"获得三倍的糖类效果增益"},1015:{name:"周年庆",eff:"左上角的TORN图标可以食用"},1025:{name:"黑色星期五",eff:"某些商家将提供1元购活动"},1114:{name:"住院日",eff:"获得降低75%的住院时间增益"}};i.fest_date_dict=yt;i.fest_date_list=Object.keys(yt);const bt=(e,t)=>{const n=e<10?`0${e}`:e.toString();const i=t<10?`0${t}`:t.toString();return n+i};const gt=bt(s.getUTCMonth(),s.getUTCDate());if(yt[gt])q+=`今天 - ${yt[gt]["name"]}()`;else{let e=Object.keys(yt);e.push(gt);const wt=e.sort().indexOf(gt)+1;const vt=yt[e[wt]||e[0]];const xt=(new Date(wt!==e.length?s.getUTCFullYear():s.getUTCFullYear()+1,e[wt!==e.length?wt:0].slice(0,2)/1,e[wt!==e.length?wt:0].slice(2)/1,8)-s)/864e5|0;q+=`${xt}天后 - ${vt.name}()`}}i.push({domType:"plain",domId:"wh-trans-fest-date",domHTML:q});let l={onEv:false,daysLeft:Infinity,events:[{start:[0,17,8],end:[0,24,8],name:"捡垃圾周",eff:"获得捡垃圾概率提升的增益"},{start:[3,5,20],end:[3,25,20],name:"复活节狩猎",eff:"复活节彩蛋会随机出现,集齐10个可兑换金蛋和一个独特的头像框(章)。"},{start:[5,20,20],end:[5,29,20],name:"狗牌",eff:"击败其他玩家以获得狗牌,小心保护你的狗牌。"},{start:[6,5,20],end:[6,25,20],name:"托恩先生和托恩女士",eff:"上传你的真实图片,然后拿章"},{start:[8,5,20],end:[8,23,20],name:"大逃杀",eff:"加入特定队伍后,攻击其他队伍玩家,存活下来的3个队伍可以拿章"},{start:[9,25,20],end:[10,1,20],name:"不给糖就捣蛋",eff:"买篮子之后攻击其他玩家后会随机掉落糖果,可用于兑换许多高价值物品"},{start:[11,14,20],end:[11,31,20],name:"圣诞小镇",eff:"在小镇中闲逛来获取随机掉落的物品"}]};i.events=l.events;l.events.forEach((e,t)=>{if(l.onEv)return;const n=s.getFullYear();const i=new Date(n,e.start[0],e.start[1],e.start[2]);const o=new Date(n,e.end[0],e.end[1],e.end[2]);if(i主要用途:出院秒飞
点起飞,页面加载完成后会马上飞走
点击开打:
})
NNB(Natural Nerve Bar)意思是:扣除所有加成后,玩家本身的犯罪条上限,可用于衡量大佬隐藏的犯罪技能等级
一般来说,左侧红色的犯罪条(Nerve Bar/NB)的上限都是包含加成的,如来自帮派、天赋的加成等。额外的加成不会影响玩家的犯罪技能
查看NNB的方法很简单,在Torn主页面的最下方有一栏Perks,NB-Perks=NNB
以下是两种计算NNB的方法:
";t.forEach(e=>{n+=`${e.name}`});n+="
";let i=m(n,"常用链接");i.classList.add("wh-link-collection-cont");i.addEventListener("click",e=>{if(e.target.tagName.toLowerCase()==="a"||e.target.tagName.toLowerCase()==="span"){i.close()}})}});i.push({domType:"button",domId:"wh-gs-btn",domText:"🐏 飞贼小助手",clickFunc:function(e){e.target.blur();X(J())},tip:"加载从PC端移植的伞佬的油猴版飞贼小助手"});i.push({domType:"button",domId:"wh-price-watcher-btn",domText:"💊 价格监视",clickFunc:function(){const n=f()["priceWatcher"];const i=JSON.stringify(n);const e=`输入需要监视的价格,低于该价格发出通知,-1为关闭
注:需要APIKey,当前可用APIKey为
(来自冰蛙)
(来自PDA)
PT
XAN
`;const o=m(e,"价格监视设置");o.querySelector("button").onclick=()=>{const[e,t]=o.querySelectorAll('input[type="number"]');n.pt=e.value|0;n.xan=t.value|0;if(JSON.stringify(n)!==i)y("priceWatcher",n);o.close()}}});i.push({domType:"button",domId:"wh-crime-iframe-btn",domText:"🤑 小窗犯罪",clickFunc:function(){const t=``;const e=`加载中请稍后${D()}
`;const n=m(e,"小窗快速犯罪");let i=n.querySelector("p:first-of-type");const o=n.querySelector("#wh-quick-crime-if-container");o.innerHTML=t;const a=document.createElement("div");a.classList.add("wh-translate");a.innerHTML=`即将打开危险功能,使用这些功能可能会造成账号封禁。请自行考虑是否使用。
`;const n=m(t,"⚠️警告");const i=n.querySelector("input");const o=n.querySelector("button");i.onchange=()=>o.disabled=false;o.onclick=()=>{y("dangerZone",i.checked);n["close"]();window.location.reload()}}});i.push({domType:"button",domId:"",domText:"📜️ 传单助手",clickFunc:it});i.push({domType:"button",domId:"",domText:"🛡️ 守望者",clickFunc:function(){ct()}});i.push({domType:"button",domId:"",domText:"🐞 更新历史",clickFunc:()=>{m('更新历史现已迁移:| URL | ${window.location.href} |
| 页面尺寸 | ${window.innerWidth}x${window.innerHeight} |
| 设备类型 | ${Y().toUpperCase()} |
| 脚本运行方式 | ${{gm:"油猴",raw:"直接运行",pda:"TornPDA"}[J()]} |
| 时间 | ${e.getFullYear()}/${e.getMonth()+1}/${e.getDate()} ${e.getHours()}:${e.getMinutes()}:${e.getSeconds()} |
| 插件版本 | ${d} |
| 操作系统 | ${t} |
| UA | ${window.navigator.userAgent} |
| 用户ID | ${A.userID} |
| 用户名 | ${A.playername} |
❌ 没有权限
点击网页内任意位置以激活闹钟
正在${n==="回城"?n:"飞往"+n} ✈
如果当前商店没有啤酒这个商品可以提前显示以省去刷新步骤,增加抢酒成功率。
`;a.querySelector("button").addEventListener("click",e=>{const t=a.querySelector("#wh-msg");if(o.querySelector('span[id="180-name"]')){t.innerHTML="❌ 页面已经有啤酒了";return}const n=o.querySelector("li.clear");const i=document.createElement("li");i.classList.add("torn-divider","divider-vertical");i.style.backgroundColor="#c8c8c8";i.innerHTML=`${G(Kt[e])}
来源:Torn City公众号,图文详情请查看公众号文章
${en[t].title}
${en[t].wt}
`)})}})}if(Qt){const nn={1:"金",2:"银",3:"铜"};const on={1:"gold",2:"silver",3:"sandybrown"};const an={chests:"钥匙箱",gifts:"礼物",combinationChest:"密码箱",keys:"钥匙"};const rn={b:"铜",s:"银",g:"金"};let b=localStorage.getItem("wh-loot-store")?JSON.parse(localStorage.getItem("wh-loot-store")):{};const u=localStorage.getItem("wh-loot-setting")?JSON.parse(localStorage.getItem("wh-loot-setting")):{blink:"y",sound:"y",chest:"y"};let g;let w=false;const sn=new MutationObserver(()=>{g=v.querySelector("#ct-wrap");if(g){sn.disconnect();const e=`- 长时间不清空会出现奇怪的问题
| 历史记录 | ||||
|---|---|---|---|---|
| 坐标 | 地图 | 类型 | 发现 | 获取 |
| 123 | 456 |
|---|---|
| 789 | 012 |
当前版本: ${d.slice(-1)==="$"?"DEV":d}
最新版本:
通常电脑浏览器装有油猴等用户脚本扩展时可以使用链接安装(自动更新):点此安装。
这些扩展长这样:

安卓 KIWI 等可以用油猴脚本的浏览器也可以点上面的链接安装👆
Torn PDA app 或 Alook 用户可打开这个网页快捷复制粘贴。
加载脚本然后直接复制粘贴到用户脚本处。
`;const n=m(t,"如何更新");n.querySelector("button").onclick=async t=>{t.target.innerHTML="加载中";const n=await U(`https://jjins.github.io/fyfuzhi/release.min.user.js?${performance.now()}`);t.target.innerHTML="点击复制到剪切板";t.target.onclick=()=>{const e=document.createElement("textarea");e.innerHTML=n;t.target.parentElement.append(e);e.focus();e.select();document.execCommand("Copy");e.remove();t.target.innerHTML="已复制";t.target.onclick=null;M("脚本已复制,请前往粘贴")}}};n.querySelectorAll("#wh-trans-fest-date button").forEach((e,t)=>t===0?e.addEventListener("click",()=>{let t="| ${1+(e.slice(0,2)|0)}月${e.slice(2)}日 | ${i.fest_date_dict[e].name} | ${i.fest_date_dict[e].eff} |
| ${e.name} | ${e.start[0]+1}月${e.start[1]}日${e.start[2]}:00~${e.end[0]+1}月${e.end[1]}日${e.end[2]}:00 |
| ${e.eff} | |
更多信息请关注群聊和公众号
","活动")}):e.addEventListener("click",null));document.body.append(n);window["initializeTooltip"]&&window["initializeTooltip"](".wh-container","white-tooltip");Ue("#wh-trans-icon");return n}function j(){try{return f()["isDev"]||false}catch(e){console.error(`[wh] dev状态错误 ${e}`);return false}}function m(e,t="芜湖助手"){if($)$.close();const n=document.querySelector("#chatRoot");n.classList.add("wh-hide");const i=document.createElement("div");i.id="wh-popup";i.innerHTML=`${t}
${a}
`;m(e,"飞花库存")}else{const t=m(`请稍后${D()}`,"飞花库存");let i=`| 目的地 - 更新时间 | 库存 | |||
|---|---|---|---|---|
| ${t.show} | ${e/60|0}分${e%60|0}秒前 | `;let n=0;a.stocks[t.name]["stocks"].forEach(e=>{if(t.stocks[e.name]){i+=`${t.stocks[e.name]} (${e["quantity"]}) | `;n++}});while(n<3){n++;i+=""}i+=" | |
监测目标ID玩家的防御状态,找出隐身攻击者
","守望者 (测试中)");let t=document.createElement("p");let l=document.createElement("input");let n=document.createElement("button");let i=document.createElement("button");let o=document.createElement("button");let c=document.createElement("div");c.obj={};let d=document.createElement("div");d.list=[];d.details={};let u=null;let p=function(){let t="进攻者: