您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds buttons to remove at million $ intervals to the trade page to make it easier to manage money in ghost trades.
// ==UserScript== // @name Ghost Trade Buttons v2 // @namespace Titanic_ // @version 2.2 // @description Adds buttons to remove at million $ intervals to the trade page to make it easier to manage money in ghost trades. // @license MIT // @author Titanic_ [2968477] // @match https://www.torn.com/trade.php* // @grant none // ==/UserScript== (function () { 'use strict'; // Feel free to add to or change these const BUTTONS = [ { label: "-100k", amount: 100000 }, { label: "-500k", amount: 500000 }, { label: "-1m", amount: 1000000 }, { label: "-5m", amount: 5000000 }, { label: "-10m", amount: 10000000 } ]; function addElements() { const div = document.querySelector("div.input-money-group"); if (!div) return; const spacerRef = document.querySelector("span.btn-wrap.silver"); if (!spacerRef) return; const spacer = spacerRef.previousElementSibling?.cloneNode(); const parent = document.createElement("div"); if (spacer) parent.prepend(spacer); BUTTONS.forEach(btn => addButton(parent, btn.label, btn.amount)); addCustomButton(parent); addPasteButton(parent); div.parentNode.insertBefore(parent, div.nextSibling); } function addButton(parent, label, amount) { let btn = createButton(label, () => adjustMoney(-amount)); parent.appendChild(btn); } function addPasteButton(parent) { let btn = createButton("Paste", async () => { try { let text = await navigator.clipboard.readText(); let value = parseInt(text.replace(/[, $]/g, "")); if (isNaN(value)) alert("Clipboard does not contain a valid number."); else adjustMoney(value, true); } catch (err) { alert("Clipboard access denied. Please paste manually."); } }); parent.appendChild(btn); } function addCustomButton(parent) { let btn = createButton("Custom", async () => { let input = prompt("Enter amount to subtract:"); let value = parseInt(input.replace(/[, $]/g, '')); if (!isNaN(value)) adjustMoney(-value); else alert("Invalid number entered."); }); parent.appendChild(btn); } function createButton(label, onClick) { let btn = document.createElement("input"); btn.value = label; btn.type = "button"; btn.classList.add("torn-btn"); btn.addEventListener("click", onClick); return btn; } function adjustMoney(amount, set = false) { let [inputVisible, inputHidden] = document.querySelectorAll(".user-id.input-money"); if (!inputVisible || !inputHidden) return; let newValue = set ? amount : (parseInt(inputHidden.value) || 0) + amount; if (newValue < 0) newValue = 0; inputVisible.value = newValue; inputVisible.dispatchEvent(new Event("input", { bubbles: true })); } function observe() { if (!window.location.href.includes("trade.php#step=addmoney")) return; clearInterval(window.GhostTradeInterval); window.GhostTradeInterval = setInterval(() => { if (document.querySelector('.user-id.input-money') && document.querySelectorAll("ul.inputs > li > div").length < 3) { clearInterval(window.GhostTradeInterval); addElements(); } }, 100); } window.addEventListener("hashchange", observe); observe(); })();