您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Blocks flying through an OC
// ==UserScript== // @name OC travel check // @namespace https://gitgud.com/stephenlynx // @version 0.0.2 // @description Blocks flying through an OC // @author Stephen Lynx // @license MIT // @match https://www.torn.com/travelagency.php // @icon https://www.google.com/s2/favicons?sz=64&domain=torn.com // @run-at document-idle // ==/UserScript== const countryTimes = { 2 : 26, 12 : 35, 9 : 41, 3 : 134, 10 : 159, 7 : 167, 8 : 175, 5 : 225, 6 : 242, 11 : 271, 4 : 297 }; /* mexico: 2 haway: 3 africa: 4 japan:5 china: 6 argentina: 7 switch: 8 canada: 9 uk: 10 uae: 11 cayman: 12 */ var referenceTime = 950; function getConvertedTime(date) { return date.getUTCMinutes() + (date.getUTCHours() * 60); } function getTimeModifier() { var element = $("#tab-menu4 > ul > li[aria-selected='true'] .travel-name"); switch (element ? element.html().toLowerCase() : 'standard') { case "standard": return 1; case "airstrip": return 0.7; case "private": return 0.5; case "business": return 0.3; default: console.error("Unknown travel type"); return 1; } } var timeoutId; var lynx = {}; function checkOCAlert(baseElement) { //if it conflicts with the OC, hide, but show 5 seconds later if (baseElement.getElementsByClassName('travel-confirm')[0].getElementsByClassName('t-red')[0]) { $('.travel-confirm .btn').hide(); timeoutId = setTimeout(function() { $('.travel-confirm .btn').show(); }, 5000); } } (function() { 'use strict'; lynx.reminderCheckbox = document.createElement('input'); lynx.reminderCheckbox.type = 'checkbox'; lynx.reminderCheckbox.onchange = function() { localStorage.setItem('lynxRehab', lynx.reminderCheckbox.checked ? 1 : 0); } lynx.reminderCheckbox.checked = !!+localStorage.getItem('lynxRehab'); var titleElement = document.getElementsByClassName('content-title')[0]; var rehabSpan = document.createElement('div'); rehabSpan.appendChild(lynx.reminderCheckbox); var rehabLabel = document.createElement('span'); rehabLabel.innerHTML = 'Rehab before next work day'; rehabSpan.appendChild(rehabLabel); titleElement.appendChild(rehabSpan); $('.travel-info .btn').live('click', function(event) { clearTimeout(timeoutId); $('.travel-confirm .btn').show(); var baseElement = event.srcElement.parentNode.parentNode.parentNode.parentNode var locationId = baseElement.getElementsByClassName('travel-buttons')[0].getAttribute('data-id'); var currentTime = getConvertedTime(new Date()); //if we do not checked the box, are going to rehab or it's already past 15:50 TCT, ignore if (!lynx.reminderCheckbox.checked || locationId == 8 || currentTime > referenceTime) { return checkOCAlert(baseElement); } var toAdd = countryTimes[locationId] * getTimeModifier() * 2; //if we will get back in time, ignore if ((toAdd + currentTime) < referenceTime) { return checkOCAlert(baseElement); } //hide permanently $('.travel-confirm .btn').hide(); }); })();