您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Just show Cooldown, Education, Hospital timers, big and clear
// ==UserScript== // @name Torn: Show Timers // @namespace N/A // @version 0.1 // @description Just show Cooldown, Education, Hospital timers, big and clear // @author VQT [2599861] // @match https://www.torn.com/* // @grant GM_setValue // @grant GM_getValue // ==/UserScript== var tornAPI = "" var cooldown_timer_drug = 0 var cooldown_timer_medical = 0 var cooldown_timer_booster = 0 var hospital_timer = 0 var education_timer = 0 var refresh_counter = 0 function getAPI() { tornAPI = GM_getValue("tornApiKey"); if(tornAPI == null || tornAPI == "") { var apiPrompt = prompt("Show Timers | First Time Setup | Please enter your API Key (located on the preferences page under API Key.)"); GM_setValue("tornApiKey", apiPrompt); //Saves API Key } } function sec2str(t){ var d = Math.floor(t/86400), h = ('0'+Math.floor(t/3600) % 24).slice(-2), m = ('0'+Math.floor(t/60)%60).slice(-2), s = ('0' + t % 60).slice(-2); return (d>0?d+'d ':'')+(h>0?h+':':'')+(m>0?m+':':'')+(t>60?s:s+'s'); } function addUI() { var status_bar = $("#sidebarroot").find("div[class^='content']").find("ul[class^='status-icons']").parent() status_bar.append(` <div class="line-h24" style="font-weight: 400; font-size: .8rem;"> <p id="cooldown-timer-drug" style="display: none"> <b style="width: 60px; padding-right: 5px">Drug:</b> <span id="cooldown-timer-drug-value" style="color: red"></span> </p> <p id="cooldown-timer-medical" style="display: none"> <b style="width: 60px; padding-right: 5px">Medical:</b> <span id="cooldown-timer-medical-value" style="color: red"></span> </p> <p id="cooldown-timer-booster" style="display: none"> <b style="width: 60px; padding-right: 5px">Booster:</b> <span id="cooldown-timer-booster-value" style="color: red"></span> </p> <p id="education-timer" style="display: none"> <b style="width: 60px; padding-right: 5px">Education:</b> <span id="education-timer-value" style="color: blue"></span> </p> <p id="hospital-timer" style="display: none"> <b style="width: 60px; padding-right: 5px">Hospital:</b> <span id="hospital-timer-value" style="color: blueviolet"></span> </p> <hr style="height: 0; border: none; border-top: 1px solid #ccc; border-bottom: 1px solid #fff; margin-bottom: 5px;"/> </div> `) } function getData() { var dataURL = `https://api.torn.com/user/?selections=cooldowns,profile,education&key=` + tornAPI $.getJSON(dataURL, function(data){ cooldown_timer_drug = parseInt(data.cooldowns.drug) cooldown_timer_medical = parseInt(data.cooldowns.medical) cooldown_timer_booster = parseInt(data.cooldowns.booster) try { var hospital_timer_str = data.basicicons.icon15.split(" - ")[2].trim().split(":") hospital_timer = parseInt(hospital_timer_str[0]) * 3600 + parseInt(hospital_timer_str[1] * 60) + parseInt(hospital_timer_str[2]) } catch (err) { } try { education_timer = parseInt(data.education_timeleft) } catch (err) { } }) } function renderData() { // get data from server every minute if(refresh_counter == 0) { getData() } // keep track seconds in a minute refresh_counter++ if(refresh_counter == 60) { refresh_counter = 0 } // count down if(cooldown_timer_drug > 0) { cooldown_timer_drug-- $("#cooldown-timer-drug")[0].style.display = "block" $("#cooldown-timer-drug-value")[0].innerText = sec2str(cooldown_timer_drug) } else { $("#cooldown-timer-drug")[0].style.display = "none" } if(cooldown_timer_medical > 0) { cooldown_timer_medical-- $("#cooldown-timer-medical")[0].style.display = "block" $("#cooldown-timer-medical-value")[0].innerText = sec2str(cooldown_timer_medical) } else { $("#cooldown-timer-medical")[0].style.display = "none" } if(cooldown_timer_booster > 0) { cooldown_timer_booster-- $("#cooldown-timer-booster")[0].style.display = "block" $("#cooldown-timer-booster-value")[0].innerText = sec2str(cooldown_timer_booster) } else { $("#cooldown-timer-booster")[0].style.display = "none" } if(education_timer > 0) { education_timer-- $("#education-timer")[0].style.display = "block" $("#education-timer-value")[0].innerText = sec2str(education_timer) } else { $("#education-timer")[0].style.display = "none" } if(hospital_timer > 0) { hospital_timer-- $("#hospital-timer")[0].style.display = "block" $("#hospital-timer-value")[0].innerText = sec2str(hospital_timer) } else { $("#hospital-timer")[0].style.display = "none" } } $(window).load(function() { // wait for all elements loaded setTimeout(function(){ getAPI() addUI() setInterval(renderData, 1000) }, 1000) });