Swordz.io Mod Pack 2

Cleans up your game, also has a spam bot feature. Look at the collapsable UI at the bottom right!

当前为 2025-02-22 提交的版本,查看 最新版本

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Greasemonkey 油猴子Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Violentmonkey 暴力猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴Userscripts ,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey 篡改猴,才能安装此脚本。

您需要先安装一款用户脚本管理器扩展后才能安装此脚本。

(我已经安装了用户脚本管理器,让我安装!)

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展,比如 Stylus,才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

您需要先安装一款用户样式管理器扩展后才能安装此样式。

(我已经安装了用户样式管理器,让我安装!)

// ==UserScript==
// @name         Swordz.io Mod Pack 2
// @namespace    intuxs
// @version      1.2
// @description  Cleans up your game, also has a spam bot feature. Look at the collapsable UI at the bottom right!
// @author       YourName
// @match        *.swordz.io
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    // ==========================================
    // Ad and UI Cleanup Functionality
    // ==========================================

    var hideBoxesEnabled = false; // Toggle hide boxes on/off
    var showPauseEnabled = false; // Toggle show pause on/off
    var showCoinsEnabled = false; // Toggle show coins on/off

    // Store original styles for elements
    const originalStyles = new Map();

    // Function to hide ads
    function hideAds() {
        if (!hideBoxesEnabled) return; // Only hide ads if hideBoxesEnabled is true
        const ads = document.querySelectorAll('div[style*="background-color"], iframe, img[src*="ads"]');
        ads.forEach(ad => {
            if (ad.offsetWidth > 0 && ad.offsetHeight > 0 && !ad.classList.contains('custom-ui')) { // Skip custom UI elements
                originalStyles.set(ad, { display: ad.style.display, visibility: ad.style.visibility });
                ad.style.display = 'none';
                console.log('Ad hidden:', ad);
            }
        });
    }

    // Function to hide specific elements on the top left
    function hideTopLeftElements() {
        if (!hideBoxesEnabled) return; // Only hide elements if hideBoxesEnabled is true
        const elementsToHide = [
            { id: 'buttonFullscreenImage', type: 'img' },
            { id: 'buttonFullscreen', type: 'div' },
            { id: 'buttonMusicImage', type: 'img' },
            { id: 'buttonMusic', type: 'div' },
            { id: 'buttonPauseImage', type: 'img' },
            { id: 'buttonPause', type: 'div' },
            { id: 'buttonSoundImage', type: 'img' },
            { id: 'buttonSound', type: 'div' }
        ];

        elementsToHide.forEach(element => {
            const el = document.getElementById(element.id);
            if (el && !el.classList.contains('custom-ui')) { // Skip custom UI elements
                originalStyles.set(el, { display: el.style.display, visibility: el.style.visibility });
                el.style.visibility = 'hidden';
            }
        });
    }

    // Function to hide the coins display
    function hideCoinsDisplay() {
        if (!hideBoxesEnabled) return; // Only hide coins if hideBoxesEnabled is true
        const coinsText = document.getElementById('coinsText');
        if (coinsText && !coinsText.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(coinsText, { display: coinsText.style.display, visibility: coinsText.style.visibility });
            coinsText.style.visibility = 'hidden';
        }

        const coinsIcon = document.querySelector('img[src*="coins.png"]');
        if (coinsIcon && !coinsIcon.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(coinsIcon, { display: coinsIcon.style.display, visibility: coinsIcon.style.visibility });
            coinsIcon.style.visibility = 'hidden';
        }
    }

    // Function to hide the YouTube wrapper and big box on the bottom right
    function hideYouTubeWrapperAndBigBox() {
        if (!hideBoxesEnabled) return; // Only hide if hideBoxesEnabled is true

        // Hide YouTube wrapper
        const youtubeWrapper = document.querySelector('.youtube-wrapper'); // Adjust selector if needed
        if (youtubeWrapper && !youtubeWrapper.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(youtubeWrapper, { display: youtubeWrapper.style.display, visibility: youtubeWrapper.style.visibility });
            youtubeWrapper.style.visibility = 'hidden';
        }

        // Hide big box on the bottom right
        const bigBox = document.querySelector('.big-box'); // Adjust selector if needed
        if (bigBox && !bigBox.classList.contains('custom-ui')) { // Skip custom UI elements
            originalStyles.set(bigBox, { display: bigBox.style.display, visibility: bigBox.style.visibility });
            bigBox.style.visibility = 'hidden';
        }
    }

    // Function to show hidden elements
    function showHiddenElements() {
        // Restore original styles for all elements except the UI we created
        originalStyles.forEach((styles, element) => {
            if (element && !element.classList.contains('custom-ui')) { // Skip custom UI elements
                element.style.display = styles.display;
                element.style.visibility = styles.visibility;
            }
        });

        // Clear the original styles map
        originalStyles.clear();
    }

    // Function to toggle pause button visibility
    function togglePauseButton() {
        const buttonPause = document.getElementById('buttonPause');
        const buttonPauseImage = document.getElementById('buttonPauseImage');

        if (buttonPause && buttonPauseImage) {
            if (showPauseEnabled) {
                buttonPause.style.visibility = 'visible';
                buttonPauseImage.style.visibility = 'visible';
            } else {
                buttonPause.style.visibility = 'hidden';
                buttonPauseImage.style.visibility = 'hidden';
            }
        }
    }

    // Function to toggle coins visibility
    function toggleCoinsDisplay() {
        const coinsText = document.getElementById('coinsText');
        const coinsIcon = document.querySelector('img[src*="coins.png"]');

        if (coinsText && coinsIcon) {
            if (showCoinsEnabled) {
                coinsText.style.visibility = 'visible';
                coinsIcon.style.visibility = 'visible';
            } else {
                coinsText.style.visibility = 'hidden';
                coinsIcon.style.visibility = 'hidden';
            }
        }
    }

    // ==========================================
    // AI Spam Bot Functionality
    // ==========================================

    var spam = false; // Toggle spam on/off
    var spamMessage = "Subscribe to richupi YT!"; // Default spam message

    // Function to send spam messages
    function spamChat() {
        if (spam) {
            const message = input.value.trim() !== '' ? input.value : spamMessage;
            console.log('Sending message:', message);

            try {
                socket.emit('keyPressX', {
                    inputId: 'chatMessage',
                    state: message
                });
                console.log('Message sent successfully!');
            } catch (error) {
                console.error('Error sending message:', error);
            }
        }
    }

    // ==========================================
    // Toggle UI Functionality
    // ==========================================

    // Create a UI container at the bottom left
    const uiContainer = document.createElement('div');
    uiContainer.style.position = 'fixed';
    uiContainer.style.bottom = '10px';
    uiContainer.style.left = '10px';
    uiContainer.style.zIndex = '9999';
    uiContainer.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    uiContainer.style.padding = '10px';
    uiContainer.style.borderRadius = '10px';
    uiContainer.style.color = '#fff';
    uiContainer.style.fontFamily = 'Montserrat, Arial, sans-serif';
    uiContainer.style.transition = 'transform 0.3s ease';
    uiContainer.classList.add('custom-ui'); // Add a class to identify our custom UI
    document.body.appendChild(uiContainer);

    // Create an arrow button to hide/show the UI
    const arrowButton = document.createElement('div');
    arrowButton.textContent = '◄'; // Arrow pointing left
    arrowButton.style.position = 'fixed';
    arrowButton.style.bottom = '20px';
    arrowButton.style.left = '10px';
    arrowButton.style.zIndex = '10000';
    arrowButton.style.backgroundColor = 'rgba(0, 0, 0, 0.7)';
    arrowButton.style.color = 'lightblue'; // Changed from white to light blue
    arrowButton.style.padding = '10px';
    arrowButton.style.borderRadius = '50%';
    arrowButton.style.cursor = 'pointer';
    arrowButton.style.userSelect = 'none';
    arrowButton.style.transition = 'transform 0.3s ease';
    arrowButton.classList.add('custom-ui'); // Add a class to identify our custom UI
    document.body.appendChild(arrowButton);

    // Toggle UI visibility
    let uiVisible = true;
    arrowButton.addEventListener('click', () => {
        uiVisible = !uiVisible;
        if (uiVisible) {
            uiContainer.style.transform = 'translateX(0)';
            arrowButton.style.transform = 'rotate(0deg)';
            arrowButton.textContent = '◄'; // Arrow pointing left
        } else {
            uiContainer.style.transform = 'translateX(-110%)';
            arrowButton.style.transform = 'rotate(180deg)';
            arrowButton.textContent = '►'; // Arrow pointing right
        }
    });

    // Spam Bot Toggle
    const spamBotLabel = document.createElement('div');
    spamBotLabel.textContent = 'Spam Bot [1]';
    spamBotLabel.style.color = '#ffa500'; // Orange when off
    spamBotLabel.style.fontSize = '14px';
    spamBotLabel.style.fontWeight = 'bold';
    spamBotLabel.style.marginBottom = '10px';
    spamBotLabel.style.cursor = 'pointer';
    uiContainer.appendChild(spamBotLabel);

    // Hide Boxes Toggle
    const hideBoxesLabel = document.createElement('div');
    hideBoxesLabel.textContent = 'Hide Boxes [2]';
    hideBoxesLabel.style.color = '#ffa500'; // Orange when off
    hideBoxesLabel.style.fontSize = '14px';
    hideBoxesLabel.style.fontWeight = 'bold';
    hideBoxesLabel.style.marginBottom = '10px';
    hideBoxesLabel.style.cursor = 'pointer';
    uiContainer.appendChild(hideBoxesLabel);

    // Show Pause Toggle
    const showPauseLabel = document.createElement('div');
    showPauseLabel.textContent = 'Show Pause [3]';
    showPauseLabel.style.color = '#ffa500'; // Orange when off
    showPauseLabel.style.fontSize = '14px';
    showPauseLabel.style.fontWeight = 'bold';
    showPauseLabel.style.marginBottom = '10px';
    showPauseLabel.style.cursor = 'pointer';
    uiContainer.appendChild(showPauseLabel);

    // Show Coins Toggle
    const showCoinsLabel = document.createElement('div');
    showCoinsLabel.textContent = 'Show Coins [4]';
    showCoinsLabel.style.color = '#ffa500'; // Orange when off
    showCoinsLabel.style.fontSize = '14px';
    showCoinsLabel.style.fontWeight = 'bold';
    showCoinsLabel.style.marginBottom = '10px';
    showCoinsLabel.style.cursor = 'pointer';
    uiContainer.appendChild(showCoinsLabel);

    // Input for custom spam message
    const input = document.createElement('input');
    input.style.width = '100%';
    input.style.marginTop = '10px';
    input.style.height = '25px';
    input.style.borderRadius = '5px';
    input.style.backgroundColor = '#222';
    input.style.color = '#fff';
    input.style.border = '1px solid #555';
    input.style.padding = '5px';
    input.placeholder = 'Enter spam message';
    uiContainer.appendChild(input);

    // Toggle Spam Bot with '1' key
    document.addEventListener('keydown', function (e) {
        if (e.key === '1') { // '1' key to toggle spam bot
            spam = !spam;
            spamBotLabel.textContent = `Spam Bot [1] ${spam ? 'ON' : 'OFF'}`;
            spamBotLabel.style.color = spam ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
            console.log(`Spam Bot ${spam ? 'enabled' : 'disabled'}`);
        }
    });

    // Toggle Hide Boxes with '2' key
    document.addEventListener('keydown', function (e) {
        if (e.key === '2') { // '2' key to toggle hide boxes
            hideBoxesEnabled = !hideBoxesEnabled;
            hideBoxesLabel.textContent = `Hide Boxes [2] ${hideBoxesEnabled ? 'ON' : 'OFF'}`;
            hideBoxesLabel.style.color = hideBoxesEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
            console.log(`Hide Boxes ${hideBoxesEnabled ? 'enabled' : 'disabled'}`);

            if (hideBoxesEnabled) {
                hideAds();
                hideTopLeftElements();
                hideCoinsDisplay();
                hideYouTubeWrapperAndBigBox();
            } else {
                showHiddenElements();
            }
        }
    });

    // Toggle Show Pause with '3' key
    document.addEventListener('keydown', function (e) {
        if (e.key === '3') { // '3' key to toggle show pause
            showPauseEnabled = !showPauseEnabled;
            showPauseLabel.textContent = `Show Pause [3] ${showPauseEnabled ? 'ON' : 'OFF'}`;
            showPauseLabel.style.color = showPauseEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
            console.log(`Show Pause ${showPauseEnabled ? 'enabled' : 'disabled'}`);
            togglePauseButton();
        }
    });

    // Toggle Show Coins with '4' key
    document.addEventListener('keydown', function (e) {
        if (e.key === '4') { // '4' key to toggle show coins
            showCoinsEnabled = !showCoinsEnabled;
            showCoinsLabel.textContent = `Show Coins [4] ${showCoinsEnabled ? 'ON' : 'OFF'}`;
            showCoinsLabel.style.color = showCoinsEnabled ? '#32CD32' : '#ffa500'; // Lime green when on, orange when off
            console.log(`Show Coins ${showCoinsEnabled ? 'enabled' : 'disabled'}`);
            toggleCoinsDisplay();
        }
    });

    // Continuously send spam messages
    setInterval(spamChat, 1000);
})();