您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevents joining OCs if success rate is too low
// ==UserScript== // @name OC - Prevent Joining Low % // @namespace Titanic_ // @version 1.3 // @description Prevents joining OCs if success rate is too low // @author Titanic_ [2968477] // @license MIT // @match https://www.torn.com/factions.php?step=your* // @grant none // ==/UserScript== (function () { 'use strict'; // minimum oc level (disables join btn if oc level is below this) const MIN_LEVEL = 5; // minimum % for each level (default is used if % is undefined) // default must be set to either Red, Orange or Green const LEVEL_REQUIREMENTS = { 7: 70, 8: 65, 9: 0, 10: 0, default: "Green" }; const COLOR_ORDER = ["Red", "Orange", "Green"]; function observe() { if (!window.location.href.includes("tab=crimes")) return; clearInterval(window.OCCheckInterval); window.OCCheckInterval = setInterval(() => { if (document.querySelector("[class*=joinButton_]")) process(); }, 500); } function process() { document.querySelectorAll("#faction-crimes-root div[class*=contentLayer_]:not([data-checked]").forEach(row => { const ocLevel = parseInt(row.querySelector("span[class*=levelValue_]")?.textContent) if (!ocLevel) return console.warn("Failed to find OC Level"); row.querySelectorAll("[class*=joinButton_]").forEach(btn => { const wrapper = btn.closest("[class*=wrapper]"); const minSuccessRate = LEVEL_REQUIREMENTS[ocLevel]; const successRate = parseInt(wrapper?.querySelector("[class*=successChance]")?.textContent); if (!successRate) return console.warn("Failed to find OC Success Rate"); btn.disabled = ocLevel < MIN_LEVEL || (minSuccessRate !== undefined ? successRate < minSuccessRate : !COLOR_ORDER.slice(COLOR_ORDER.indexOf(LEVEL_REQUIREMENTS.default)).some(c => wrapper.className.includes(c))); }); row.dataset.checked = "checked"; }); } window.addEventListener("hashchange", observe); observe(); })();