您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Change villa every iteration
当前为
- // ==UserScript==
- // @name Fake bot Change Villa
- // @version 1
- // @description Change villa every iteration
- // @include https://*/game.php*screen=place*
- // @namespace https://greasyfork.org/users/1388863
- // ==/UserScript==
- (function() {
- 'use strict';
- // Create Start/Stop button
- const startStopButton = document.createElement('button');
- startStopButton.textContent = 'Start';
- startStopButton.style.position = 'fixed';
- startStopButton.style.bottom = '20px';
- startStopButton.style.right = '20px';
- startStopButton.style.padding = '10px 20px';
- startStopButton.style.fontSize = '16px';
- startStopButton.style.backgroundColor = '#4CAF50';
- startStopButton.style.color = 'white';
- startStopButton.style.border = 'none';
- startStopButton.style.borderRadius = '5px';
- startStopButton.style.cursor = 'pointer';
- startStopButton.style.zIndex = '9999';
- document.body.appendChild(startStopButton);
- // Create Loop Count button
- const loopButton = document.createElement('button');
- loopButton.textContent = 'Set Loops';
- loopButton.style.position = 'fixed';
- loopButton.style.bottom = '20px';
- loopButton.style.right = '120px';
- loopButton.style.padding = '10px 20px';
- loopButton.style.fontSize = '16px';
- loopButton.style.backgroundColor = '#FF9800';
- loopButton.style.color = 'white';
- loopButton.style.border = 'none';
- loopButton.style.borderRadius = '5px';
- loopButton.style.cursor = 'pointer';
- loopButton.style.zIndex = '9999';
- document.body.appendChild(loopButton);
- // Create remaining loop counter display
- const loopCounterDisplay = document.createElement('div');
- loopCounterDisplay.style.position = 'fixed';
- loopCounterDisplay.style.bottom = '70px';
- loopCounterDisplay.style.right = '20px';
- loopCounterDisplay.style.fontSize = '18px';
- loopCounterDisplay.style.color = 'white';
- loopCounterDisplay.style.zIndex = '9999';
- loopCounterDisplay.textContent = 'Remaining Loops: 0';
- document.body.appendChild(loopCounterDisplay);
- // Retrieve the last state from localStorage
- let isRunning = localStorage.getItem('botState') === 'running';
- let remainingLoops = parseFloat(localStorage.getItem('remainingLoops')) || 0;
- let currentloop = parseFloat(localStorage.getItem('currentloop')) || remainingLoops;
- // Set initial button and loop counter state
- startStopButton.textContent = isRunning ? 'Stop' : 'Start';
- loopCounterDisplay.textContent = `Remaining Loops: ${remainingLoops}`;
- // Start the bot if it was running
- if (isRunning) {
- startBot();
- }
- // Start/Stop button event
- startStopButton.addEventListener('click', () => {
- if (isRunning) {
- stopBot();
- } else {
- startBot();
- }
- });
- // Loop button event
- loopButton.addEventListener('click', () => {
- const loopsInput = parseInt(prompt("Enter the number of loops to run:", remainingLoops), 10);
- if (!isNaN(loopsInput) && loopsInput > 0) {
- remainingLoops = loopsInput;
- currentloop = remainingLoops;
- localStorage.setItem('remainingLoops', remainingLoops);
- localStorage.setItem('currentloop', currentloop);
- loopCounterDisplay.textContent = `Remaining Loops: ${remainingLoops}`;
- console.log(`Set loops to: ${remainingLoops}`);
- }
- });
- function startBot() {
- isRunning = true;
- localStorage.setItem('botState', 'running');
- startStopButton.textContent = 'Stop';
- console.log("Bot started");
- loopCounterDisplay.textContent = `Remaining Loops: ${remainingLoops}`;
- runBotLoop();
- }
- function stopBot() {
- isRunning = false;
- localStorage.setItem('botState', 'stopped');
- startStopButton.textContent = 'Start';
- console.log("Bot stopped");
- }
- function runBotLoop() {
- if (remainingLoops > 0) {
- if (!window.location.href.includes("&screen=place&try=confirm")) {
- if (currentloop !== remainingLoops) {
- setTimeout(() => {
- clickKeyD(() => {
- console.log("Clicked key 'D' and resuming...");
- });
- currentloop = remainingLoops;
- localStorage.setItem('currentloop', currentloop);
- }, 300 + Math.random() * 200);
- }
- setTimeout(() => {
- document.dispatchEvent(new KeyboardEvent('keydown', {
- key: '0', code: 'Digit0', keyCode: 48, which: 48, bubbles: true
- }));
- console.log("Key '0' pressed.");
- setTimeout(() => {
- const attackButton = document.getElementById("target_attack");
- if (attackButton) {
- attackButton.click();
- console.log("Clicked target_attack button.");
- } else {
- console.log("Button with ID 'target_attack' not found.");
- }
- }, 500 + Math.random() * 300);
- }, 1000 + Math.random() * 300);
- }
- setTimeout(() => {
- const url = window.location.href;
- if (url.includes("&screen=place&try=confirm")) {
- const confirmButton = document.querySelector('#troop_confirm_submit');
- if (confirmButton) {
- console.log("Detected &screen=place&try=confirm and #troop_confirm_submit exists");
- // setTimeout(()=> clickButton('#troop_confirm_submit', Math.random() * 100 + 100), 100);
- setTimeout(() => {
- clickButton('#troop_confirm_submit')
- }, 200 + Math.random() * 100);
- remainingLoops -= 1;
- localStorage.setItem('remainingLoops', remainingLoops);
- localStorage.setItem('currentloop', currentloop);
- loopCounterDisplay.textContent = `Remaining Loops: ${remainingLoops}`;
- console.log("Sent confirmation");
- } else {
- // const newUrl = url.replace("&try=confirm", "");
- // window.location.href = newUrl;
- currentloop -= 1;
- localStorage.setItem('currentloop', currentloop);
- const newUrl = url.replace(/(&screen=place).*$/, "$1");
- window.location.href = newUrl;
- }
- }
- if (remainingLoops > 0) {
- runBotLoop();
- } else {
- stopBot();
- }
- }, 700 + Math.random() * 300);
- }
- }
- function clickKeyD(callback) {
- setTimeout(() => {
- document.dispatchEvent(new KeyboardEvent('keydown', {
- key: 'D', code: 'KeyD', keyCode: 68, which: 68, bubbles: true
- }));
- console.log("Key 'D' pressed.");
- if (callback) callback();
- }, Math.random() * 200 + 100);
- }
- // function clickButton(selector, delay) {
- // const button = document.querySelector(selector);
- // if (button) {
- // setTimeout(() => button.click(), delay);
- // console.log(`Button clicked after ${delay}ms`);
- // } else {
- // console.log("Button not found!");
- // }
- // }
- function clickButton(selector) {
- const button = document.querySelector(selector);
- if (button) {
- console.log(`Button clicked`);
- button.click()
- } else {
- console.log("Button not found!");
- }
- }
- })();