Kirka.io Portal Xray, ESP, Wireframe, | I FIXXING

First Script For KIRKA.IO // Primeiro script pro kirka.io agradece ae pae

目前为 2024-09-01 提交的版本。查看 最新版本

// ==UserScript==
// @name         Kirka.io Portal Xray, ESP, Wireframe, | I FIXXING
// @namespace    http://tampermonkey.net/
// @version      0.1.1
// @description  First Script For KIRKA.IO // Primeiro script pro kirka.io agradece ae pae
// @author       Whoami
// @match        *://kirka.io/*
// @require      https://cdnjs.cloudflare.com/ajax/libs/three.js/r128/three.min.js
// @icon         https://media.giphy.com/media/CxYGmxv0Oyz4I/giphy.gif
// @license      MIT
// @grant        none
// ==/UserScript==

const THREE = window.THREE;
const prototype_ = {
    world: {
        wireframe: false,
        visibleOnDamage: true,
        notVisible: true,
        depthFunc: 2
    },
    player: {
        opacity: 0.5,
        wireframe: false
    }
};

const originalArrayPush = Array.prototype.push;

Array.prototype.push = function(...args) {
    if (args[0] && args[0].material && args[0].material.type && args[0].material.type === "ShaderMaterial") {
        const material = args[0].material;
        material.opacity = 0;
        material.transparent = prototype_.world.visibleOnDamage;
        material.side = 2;
        material.depthFunc = prototype_.world.depthFunc;
        material.wireframe = prototype_.world.wireframe;
        material.visible = prototype_.world.notVisible;
    }
    if (args[0] && args[0].material && args[0].material.type && args[0].material.type === "MeshBasicMaterial") {
        const material = args[0].material;
        material.opacity = prototype_.player.opacity;
        material.wireframe = prototype_.player.wireframe;
    }
    return originalArrayPush.apply(this, args);
};

const style = document.createElement('style');
style.innerHTML = `
    #menuContainer {
        position: fixed;
        top: 50%;
        left: 50%;
        transform: translate(-50%, -50%);
        background-color: rgba(0, 0, 0, 0.8);
        padding: 20px;
        border-radius: 10px;
        border: 1px solid #fff;
        z-index: 1000;
        max-width: 400px;
        font-size: 14px;
        line-height: 1.5;
        box-shadow: 0 0 15px rgba(0, 0, 0, 0.5);
        color: #fff;
        font-family: 'Arial', sans-serif;
    }
    #menuContainer h2 {
        text-align: center;
        font-size: 28px;
        margin-bottom: 15px;
    }
    #menuContainer label {
        display: block;
        margin-bottom: 10px;
    }
    #menuContainer select, #menuContainer input[type="text"] {
        width: calc(100% - 12px);
        padding: 5px;
        margin-bottom: 10px;
        background: #333;
        border: 1px solid #444;
        color: #fff;
    }
    #menuContainer .tab {
        display: flex;
        justify-content: space-around;
        margin-bottom: 15px;
    }
    #menuContainer .tab button {
        background-color: #444;
        border: none;
        padding: 10px 15px;
        cursor: pointer;
        color: #fff;
    }
    #menuContainer .tab button.active {
        background-color: #666;
    }
    #menuContainer .tabcontent {
        display: none;
    }
    #menuContainer .tabcontent.active {
        display: block;
    }
`;
document.head.appendChild(style);

const menuContainer = document.createElement('div');
menuContainer.id = 'menuContainer';
menuContainer.style.display = 'none';
document.body.appendChild(menuContainer);

const header = document.createElement('h2');
header.textContent = 'DOGEWARE';
menuContainer.appendChild(header);

const tabLinks = document.createElement('div');
tabLinks.classList.add('tab');
menuContainer.appendChild(tabLinks);

const tabContents = {};
const tabNames = Object.keys(prototype_);

tabNames.forEach(tabName => {
    const tabButton = document.createElement('button');
    tabButton.textContent = tabName.charAt(0).toUpperCase() + tabName.slice(1);
    tabButton.addEventListener('click', () => openTab(tabName));
    tabLinks.appendChild(tabButton);

    const tabContent = document.createElement('div');
    tabContent.classList.add('tabcontent');
    menuContainer.appendChild(tabContent);

    tabContents[tabName] = tabContent;
    populateTab(tabName);
});

openTab(tabNames[0]);

function populateTab(tabName) {
    const tabContent = tabContents[tabName];
    const tabOptions = prototype_[tabName];
    for (const option in tabOptions) {
        if (typeof tabOptions[option] !== 'object') {
            const label = document.createElement('label');
            label.textContent = option.charAt(0).toUpperCase() + option.slice(1);
            tabContent.appendChild(label);

            if (typeof tabOptions[option] === 'boolean') {
                const select = document.createElement('select');
                const optionTrue = document.createElement('option');
                optionTrue.value = 'true';
                optionTrue.textContent = 'Yes';
                const optionFalse = document.createElement('option');
                optionFalse.value = 'false';
                optionFalse.textContent = 'No';
                select.appendChild(optionTrue);
                select.appendChild(optionFalse);
                select.value = tabOptions[option].toString();
                select.addEventListener('change', event => {
                    tabOptions[option] = event.target.value === 'true';
                });
                tabContent.appendChild(select);
            } else {
                const inputField = document.createElement('input');
                inputField.type = 'text';
                inputField.value = tabOptions[option];
                inputField.addEventListener('change', event => {
                    tabOptions[option] = event.target.value;
                });
                tabContent.appendChild(inputField);
            }
        }
    }
}

function openTab(tabName) {
    const tabs = document.querySelectorAll('.tabcontent');
    tabs.forEach(tab => tab.classList.remove('active'));

    const tabButtons = document.querySelectorAll('.tab button');
    tabButtons.forEach(tabButton => tabButton.classList.remove('active'));

    const tabContent = tabContents[tabName];
    tabContent.classList.add('active');

    const tabButton = [...tabLinks.querySelectorAll('button')].find(button => button.textContent === tabName.charAt(0).toUpperCase() + tabName.slice(1));
    tabButton.classList.add('active');
}

document.addEventListener('keydown', function(event) {
    if (event.keyCode === 79) {
        menuContainer.style.display = menuContainer.style.display === 'none' ? 'block' : 'none';
    }
});

QingJ © 2025

镜像随时可能失效,请加Q群300939539或关注我们的公众号极客氢云获取最新地址