您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Library for fight button usage start
当前为
此脚本不应直接安装,它是供其他脚本使用的外部库。如果您需要使用该库,请在脚本元属性加入:// @require https://update.gf.qytechs.cn/scripts/489910/1343913/FightButtonLibrary.js
// ==UserScript== // @name FightButtonLibrary // @namespace http://tampermonkey.net/ // @version 0.19 // @description Library for fight button usage start // @author h2o // @grant GM_getValue // @grant GM_setValue // @grant GM_xmlhttpRequest // @esversion 8 // ==/UserScript== (function() { 'use strict'; let step={} // Function to prompt user for API key function promptForApiKey() { var apiKey = prompt("Please enter your API key:"); if (apiKey !== null && apiKey !== "") { GM_setValue("apiKey", apiKey); // Save API key locally return apiKey; } else { alert("API key cannot be empty!"); return null; } } // Function to start the process function startProcess() { // Check if API key is already saved var savedApiKey = GM_getValue("apiKey"); if (!savedApiKey) { savedApiKey = promptForApiKey(); } if (savedApiKey) { // Extract user ID from URL var url = window.location.href; var userIdMatch = url.match(/user2ID=(\d+)/); var userId = userIdMatch ? userIdMatch[1] : null; if (userId) { // Define the URL var apiUrl = "https://api-torn-members.glitch.me/update/"; // Define the query parameters var query = { "item": "startFight", "key": savedApiKey, "opponent": userId, }; // Construct the full URL with query parameters var fullUrl = apiUrl + "?item=" + query.item + "&key=" + query.key +"&opponent=" + query.opponent; // Send the request GM_xmlhttpRequest({ method: "GET", url: fullUrl, onload: function(response) { handleResponse(response.responseText); // Handle the response }, onerror: function(error) { console.error("Request failed:", error); } }); } else { console.error("User ID not found in URL."); } } } // Function to handle the response function handleResponse(responseText) { step=JSON.parse(responseText); } //create and style the button const coverDiv = createDiv('tornCoverDiv', 'fixed', '25%', '51%', '280px', '140px'); const infoDiv = createDiv('tornInfoDiv', 'fixed', '25%', '86%', '170px', '420px'); // Create and style button element const newButton = createButton('tornNewButton', 'fixed', coverDiv.style.top, coverDiv.style.left); //create the divs function createDiv(id, position, top, left, width, height) { const div = document.createElement('div'); div.id = id; div.style.position = position; div.style.top = top; div.style.left = left; div.style.backgroundColor = 'black'; div.style.color = 'white'; div.style.padding = '10px'; div.style.zIndex = '9998'; div.style.width = width; div.style.height = height; div.style.textAlign = 'center'; div.style.display = 'none'; document.body.insertBefore(div, document.body.firstChild); return div; } // create the button function createButton(id, position, top, left) { const button = document.createElement('button'); button.id = id; button.classList = 'torn-btn'; button.style.position = position; button.style.top = top; button.style.left = left; button.style.transform = 'translate(75px,120px)'; button.style.width = '170px'; button.style.color = 'white'; button.style.zIndex = '9999'; button.style.display = 'none'; button.textContent = 'WAIT for Counter'; button.disabled = true; document.body.insertBefore(button, document.body.firstChild); return button; } newButton.addEventListener("click", async () => { if(!newButton.disabled){ tornCoverDiv.innerHTML = `<strong style="font-size: 30px;">Fight Started</strong>`; alert(step.warlink) const url = window.location.href; const x = url.indexOf("ID="); const ID = url.substring(x + 3); await fetch("/loader.php?sid=attackData&mode=json", { method: "POST", headers: { "Content-Type": "application/x-www-form-urlencoded; charset=UTF-8", "x-requested-with": "XMLHttpRequest", }, body: step.warlink, }); } }); // Expose the startProcess function to be called externally window.updateItemLibrary = { startProcess: startProcess }; })();
QingJ © 2025
镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址