您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Disables travel for individual countries based on flight type if you would be late for an organized crime. Includes a button to enable or disable the script. Green 'OC' means enabled.
- // ==UserScript==
- // @name Torn - OC Travel Restrictions
- // @namespace http://tampermonkey.net/
- // @version 0.3.3
- // @description Disables travel for individual countries based on flight type if you would be late for an organized crime. Includes a button to enable or disable the script. Green 'OC' means enabled.
- // @author Baccy
- // @match https://www.torn.com/page.php?sid=travel
- // @icon https://www.google.com/s2/favicons?sz=64&domain=torn.com
- // @grant none
- // ==/UserScript==
- (function() {
- 'use strict';
- function apply() {
- const elements = {
- "Mexico": { pc: "Mexico - Ciudad Juarez", mobile: '/images/v2/travel_agency/flags/fl_mexico.svg' },
- "Cayman Islands": { pc: "Cayman Islands - George Town", mobile: '/images/v2/travel_agency/flags/fl_cayman_islands.svg' },
- "Canada": { pc: "Canada - Toronto", mobile: '/images/v2/travel_agency/flags/fl_canada.svg' },
- "Hawaii": { pc: "Hawaii - Honolulu", mobile: '/images/v2/travel_agency/flags/fl_hawaii.svg' },
- "United Kingdom": { pc: "United Kingdom - London", mobile: '/images/v2/travel_agency/flags/fl_uk.svg' },
- "Argentina": { pc: "Argentina - Buenos Aires", mobile: '/images/v2/travel_agency/flags/fl_argentina.svg' },
- "Switzerland": { pc: "Switzerland - Zurich", mobile: '/images/v2/travel_agency/flags/fl_switzerland.svg' },
- "Japan": { pc: "Japan - Tokyo", mobile: '/images/v2/travel_agency/flags/fl_japan.svg' },
- "China": { pc: "China - Beijing", mobile: '/images/v2/travel_agency/flags/fl_china.svg' },
- "UAE": { pc: "UAE - Dubai", mobile: '/images/v2/travel_agency/flags/fl_uae.svg' },
- "South Africa": { pc: "South Africa - Johannesburg", mobile: '/images/v2/travel_agency/flags/fl_south_africa.svg' }
- };
- const dataElement = document.querySelector('#travel-root');
- if (dataElement) {
- const dataModel = dataElement.getAttribute('data-model');
- const data = JSON.parse(dataModel.replace(/"/g, '"'));
- data.destinations.forEach(destination => {
- const country = destination.country;
- if (destination[active] && destination[active].ocReadyBeforeBack) {
- const elementData = elements[country];
- if (elementData) {
- if (mobile) {
- const element = document.querySelector(`[src="${elementData.mobile}"]`);
- if (element) {
- const parent = element.parentElement.parentElement.parentElement.parentElement;
- parent.style.display = 'none';
- parent.classList.add('oc-restriction');
- }
- } else {
- const element = document.querySelector(`[aria-label="${elementData.pc}"]`);
- if (element) {
- element.nextSibling.style.opacity = '0.5';
- element.classList.add('oc-restriction');
- const parent = element.parentElement;
- parent.style.pointerEvents = 'none';
- }
- }
- }
- }
- });
- }
- }
- function remove() {
- const elements = document.querySelectorAll('.oc-restriction');
- elements.forEach(element => {
- if (mobile) {
- element.style.display = '';
- } else {
- element.nextSibling.style.opacity = '';
- element.classList.remove('oc-restriction');
- const parent = element.parentElement;
- parent.style.pointerEvents = '';
- }
- });
- }
- function init() {
- const travelTabs = document.querySelector('fieldset[class^="travelTypeSelector"]');
- let enabled = JSON.parse(localStorage.getItem('ocTravelRestriction')) ?? true;
- const checkedTab = [...document.querySelectorAll('[aria-checked]')].find(tab => tab.getAttribute('aria-checked') === "true");
- if (checkedTab) active = checkedTab.getAttribute('value');
- const observer = new MutationObserver(() => {
- const checkedTab = [...document.querySelectorAll('[aria-checked]')].find(tab => tab.getAttribute('aria-checked') === "true");
- if (checkedTab) active = checkedTab.getAttribute('value');
- if (enabled) {
- remove();
- apply();
- }
- });
- observer.observe(travelTabs, { childList: true, subtree: true, attributes: true });
- const header = Array.from(document.querySelectorAll('h4')).find(el => el.childNodes[0]?.nodeValue.trim() === 'Travel Agency');
- const button = document.createElement('button');
- button.textContent = 'OC';
- button.style.cssText = 'margin-left: 10px; padding: 5px 10px; border-radius: 5px; background-color: #555; cursor: pointer;';
- button.style.color = enabled ? 'lightgreen' : 'white';
- button.addEventListener('click', () => {
- enabled = !enabled;
- localStorage.setItem('ocTravelRestriction', enabled);
- if (enabled) {
- apply();
- button.style.color = 'lightgreen';
- } else {
- remove();
- button.style.color = 'white';
- }
- });
- button.addEventListener("mouseenter", () => {
- button.style.backgroundColor = "#444";
- });
- button.addEventListener("mouseleave", () => {
- button.style.backgroundColor = "#555";
- });
- if (header) header.appendChild(button);
- if (enabled) apply();
- }
- let mobile = false;
- let loaded = false;
- let active;
- let data;
- function wait() {
- const travelTabs = document.querySelector('fieldset[class^="travelTypeSelector"]');
- if (travelTabs) {
- const mobileElement = document.querySelector('[src="/images/v2/travel_agency/flags/fl_uk.svg"]');
- if (mobileElement || document.querySelector('[aria-label="United Kingdom - London"]')) {
- if (mobileElement) mobile = true;
- return true;
- }
- }
- return false;
- }
- loaded = wait();
- if (loaded) {
- init();
- } else {
- const observer = new MutationObserver(() => {
- loaded = wait();
- if (loaded) {
- init();
- observer.disconnect();
- }
- });
- observer.observe(document.body, { childList: true, subtree: true });
- }
- })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址