您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Adds buttons for quick withdrawal and deposit to the vault. See Screenshots.
// ==UserScript== // @name Vault Buttons // @namespace Titanic_, zstorm // @version 1.3.2 // @description Adds buttons for quick withdrawal and deposit to the vault. See Screenshots. // @license MIT // @author Titanic_, zstorm // @match https://www.torn.com/properties.php* // @grant none // ==/UserScript== //====================UPDATE:=============================== // 1.3.2 remove depositButton.click(); at line 111 to avoid captcha. // 1.3.1 Adapt the script from Titanic_'s one. //======================================================== function addElements() { // Check if the buttons are already added if (document.getElementById("custom-buttons-container")) { return; // Exit the function if buttons already exist } let parent = document.createElement("div"); let leftContainer = document.createElement("div"); let rightContainer = document.createElement("div"); parent.id = "custom-buttons-container"; leftContainer.id = "custom-buttons"; rightContainer.id = "custom-buttonsright"; // Add buttons to their respective containers addButton(leftContainer, "-352", 352500); addButton(leftContainer, "-15m", 15000000); addButton(leftContainer, "-23m", 23000000); addPasteButton(leftContainer); addMagicButton(); // Append the containers to the parent parent.appendChild(leftContainer); parent.appendChild(rightContainer); let div = document.querySelector("form.left .cont.torn-divider"); if (div) { div.parentNode.insertBefore(parent, div.nextSibling); } } function addButton(parent, label, amount) { let btn = document.createElement("input"); btn.value = label; btn.type = "button"; btn.classList.add("torn-btn"); btn.addEventListener("click", () => { let $inputVisible = document.querySelector("form.left > div.torn-divider > div.input-money-group > input.input-money"); let $inputHidden = document.querySelectorAll("form.left > div.torn-divider > div.input-money-group > input.input-money")[1]; let value = parseInt($inputHidden.value); if(isNaN(value)) { value = 0 } $inputVisible.value = amount + value; $inputVisible.dispatchEvent(new Event("input", { bubbles: true })); }); parent.appendChild(btn); } function addPasteButton(parent) { let btn = document.createElement("input"); btn.value = "Clear"; btn.type = "button"; btn.classList.add("torn-btn"); btn.addEventListener("click", () => { let $inputVisible = document.querySelector("form.left > div.torn-divider > div.input-money-group > input.input-money"); let $inputHidden = document.querySelectorAll("form.left > div.torn-divider > div.input-money-group > input.input-money")[1]; $inputVisible.value = 0; $inputVisible.dispatchEvent(new Event("input", { bubbles: true })); }); parent.appendChild(btn); } function addMagicButton() { let depositButtonWrapper = document.querySelector(".vault-cont.right.deposit-box .btn-wrap.silver .btn"); if (depositButtonWrapper) { let btn = document.createElement("input"); btn.value = "$"; btn.type = "button"; btn.classList.add("torn-btn"); btn.id = "qdeposit-btn"; // Give it an ID for easy manipulation btn.addEventListener("click", () => { // Perform the QDeposit logic let $inputVisible = document.querySelector("form.right > div.torn-divider > div.input-money-group > input.input-money"); let amountOnHand = document.querySelector(".dvalue").textContent.replace(/[^0-9]/g, ''); $inputVisible.value = amountOnHand; $inputVisible.dispatchEvent(new Event("input", { bubbles: true })); // Hide the QDeposit button after it's clicked btn.style.display = "none"; // Enable and click the underlying Deposit button let depositButton = document.querySelector(".vault-cont.right.deposit-box .btn-wrap.silver .btn input.torn-btn"); if (depositButton) { depositButton.disabled = false; } }); // Append the QDeposit button to the Deposit button's wrapper depositButtonWrapper.style.position = "relative"; // Ensure the wrapper is positioned relative depositButtonWrapper.appendChild(btn); } } function inputCheck() { setTimeout(function() { if (document.querySelector('.input-money-group > .input-money')) { addElements(); } }, 300); } const observer = new MutationObserver(() => { if (window.location.href.includes("tab=vault")) { inputCheck(); } }); observer.observe(document.body, { childList: true, subtree: true }); if (window.location.href.includes("tab=vault")) { inputCheck(); } function addGlobalStyle(css) { var head, style; head = document.getElementsByTagName('head')[0]; if (!head) { return; } style = document.createElement('style'); style.type = 'text/css'; style.innerHTML = css; head.appendChild(style); } // Add CSS to position the QDeposit button directly over the Deposit button addGlobalStyle(` #qdeposit-btn { position: absolute; top: 0; left: 0; width: 100%; height: 100%; background-color: rgba(106, 13, 173, 0.8); /* Slightly transparent background */ color: #ffffff; border-radius: 5px; z-index: 1000; text-shadow: 0 0 5px rgba(255, 255, 255, 0.5); font-size: 16px; } `); addGlobalStyle('#custom-buttons { justify-content: center; margin: 0 auto 50 auto; display: flex; gap: 10px; padding-top: 2.5px; padding-bottom: 2.5px; }'); addGlobalStyle('#custom-buttons > input:nth-of-type(1) { background: #2aab2a ; color: #ffffff;'); addGlobalStyle('#custom-buttons > input:nth-of-type(1):hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1); }'); addGlobalStyle('#custom-buttons > input:nth-of-type(2) { background: #208220 ; color: #ffffff;'); addGlobalStyle('#custom-buttons > input:nth-of-type(2):hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1); }'); addGlobalStyle('#custom-buttons > input:nth-of-type(3) { background: #114511 ; color: #ffffff;'); addGlobalStyle('#custom-buttons > input:nth-of-type(3):hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1), 0 0 15px rgba(42, 171, 42, 1); }'); addGlobalStyle('#custom-buttons > input:nth-of-type(4) { background: #8b0000 ; color: #ffffff;'); addGlobalStyle('#custom-buttons > input:nth-of-type(4):hover { transform: scale(1.1); box-shadow: 0 0 15px rgba(139, 0, 0, 1), 0 0 15px rgba(139, 0, 0, 1), 0 0 15px rgba(139, 0, 0, 1); }'); addGlobalStyle('.vault-cont.right.deposit-box .btn-wrap.silver .btn > input:nth-of-type(2) { background: #8b0000; color: #ffffff; border: 1.5px solid #8a2be2; border-radius: 12px; font-size: 16px; box-shadow: 0 0 10px rgba(138, 43, 226, 0.5), 0 0 20px rgba(138, 43, 226, 0.5), 0 0 30px rgba(138, 43, 226, 0.5); text-shadow: 0 0 5px rgba(255, 255, 255, 0.5); transition: transform 0.3s ease, box-shadow 0.3s ease; }'); addGlobalStyle('.vault-cont.right.deposit-box .btn-wrap.silver .btn > input:nth-of-type(2):hover { transform: scale(1.1); box-shadow: 0 0 20px rgba(138, 43, 226, 0.7), 0 0 30px rgba(138, 43, 226, 0.7), 0 0 40px rgba(138, 43, 226, 0.7); }');