您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Prevents joining OCs if success rate is too low
当前为
- // ==UserScript==
- // @name OC - Prevent Joining Low %
- // @namespace Titanic_
- // @version 1.2
- // @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: 75,
- 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();
- })();