kirka.io ESP

ESP behind the wall players show cheat for kirka.io

您需要先安裝使用者腳本管理器擴展,如 TampermonkeyGreasemonkeyViolentmonkey 之後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyViolentmonkey 後才能安裝該腳本。

您需要先安裝使用者腳本管理器擴充功能,如 TampermonkeyUserscripts 後才能安裝該腳本。

你需要先安裝一款使用者腳本管理器擴展,比如 Tampermonkey,才能安裝此腳本

您需要先安裝使用者腳本管理器擴充功能後才能安裝該腳本。

(我已經安裝了使用者腳本管理器,讓我安裝!)

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展,比如 Stylus,才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

你需要先安裝一款使用者樣式管理器擴展後才能安裝此樣式

(我已經安裝了使用者樣式管理器,讓我安裝!)

// ==UserScript==
// @name         kirka.io ESP
// @namespace    http://tampermonkey.net/
// @version      2024-01-30
// @description  ESP behind the wall players show cheat for kirka.io
// @author       anonimbiri
// @match        https://kirka.io/*
// @require https://update.greasyfork.org/scripts/482771/1321969/Malayala%20Kit.js
// @require      https://unpkg.com/three@latest/build/three.min.js
// @icon         https://www.google.com/s2/favicons?sz=64&domain=kirka.io
// @lisans Mid
// @grant        none
// ==/UserScript==


const AnonimbiriAPI = {
    THREE: window.THREE,
    chams: false,
    skin: false,
    scene: null,
    camera: null,
    gun: null,
    debug: false,
};

delete window.THREE;

var toastManager = new MalayalaKit.ToastManager();
const kit = new MalayalaKit.CreateMenu({
    title: "Kirka Menu",
    icon: "",
    size: { width: 500, height: 400 },
    position: { top: 50, left: 50 },
    hotkey: {
        keyCode: 113,
        ctrlKey: false,
        altKey: false,
        shiftKey: false
    },
    pointerLock: true
});
const general = new MalayalaKit.Tab("General");
general.addSwitch({
    label: "Player Chams",
    value: false,
    onchange: (value) => {
        AnonimbiriAPI.chams = value;
        toastManager.showToast({ message: 'Player Chams is ' + (value ? 'ON' : 'OFF'), type: 'info' });
    },
});
general.addSwitch({
    label: "Rapid Fire",
    value: false,
    onchange: (value) => {
        window.Date.now = new Proxy(Date.now, {
            apply: (target, thisArg, argumentsList) => (target.apply(thisArg, argumentsList) * (value ? 2123 : 1 / 2123))
        });
        toastManager.showToast({ message: 'Rapid Fire is ' + (value ? 'ON' : 'OFF'), type: 'info' });
    },
});
/*general.addSwitch({
    label: "Skin Changer",
    value: false,
    onchange: (value) => {
        AnonimbiriAPI.skin = value;
        toastManager.showToast({ message: 'Skin Changer is ' + (value ? 'ON' : 'OFF'), type: 'info' });
    },
});*/
kit.addTab(general);

WeakMap.prototype.set = new Proxy(WeakMap.prototype.set, {
    apply(target, thisArgs, [object]) {

        if (object && typeof object === 'object'){
            if (object.type == 'Scene' && object.autoUpdate === false){
                AnonimbiriAPI.debug && console.log("%cScene Found: ", "color: pink", object);
                AnonimbiriAPI.scene = object;
            }else if (object.type == 'Scene' && object.autoUpdate === true){
                AnonimbiriAPI.debug && console.log("%cCamera Found: ", "color: pink", object.children[0].children[0]);
                AnonimbiriAPI.camera = object.children[0].children[0];
            }else if(object.type == 1009 && object.image && object.image.currentSrc && !object.image.currentSrc.includes("data:image")){
                AnonimbiriAPI.debug && console.log("%cSkin Found: ", "color: pink", object);
                AnonimbiriAPI.gun = object;
            }
        }

        return Reflect.apply(...arguments);
    }
});
window.requestAnimationFrame = new Proxy(window.requestAnimationFrame, {
    apply(target, prop, args) {
        if(AnonimbiriAPI.gun && AnonimbiriAPI.skin){
            AnonimbiriAPI.gun.image.currentSrc = "https://kirka.io/assets/img/texture.61357e1e.webp";
            AnonimbiriAPI.gun.image.src = "https://kirka.io/assets/img/texture.61357e1e.webp";
        }
        if(AnonimbiriAPI.chams){
            AnonimbiriAPI.scene.children.filter(object => {
                return object.type == 'Group'
            }).forEach(player => {
                const character = player.children[0].children[0].children[1];
                if (
                    player.entity?.hasOwnProperty('colyseusObject') &&
                    player.entity?.colyseusObject?.hasOwnProperty('team')
                ) {
                    const color = player.entity.colyseusObject.team === 'blue' ? [0, 0, 1] : [1, 0, 0];
                    character.material.alphaTest = 1;
                    character.material.depthTest = false;
                    character.material.fog = false;
                    character.material.color.setRGB(...color);
                } else {
                    character.material.alphaTest = 1;
                    character.material.depthTest = false;
                    character.material.fog = false;
                    character.material.color.setRGB(1, 0, 0);
                }
                AnonimbiriAPI.debug && console.log("%cPlayer: ", "color: pink", player);
            });
        }
        return Reflect.apply(target, prop, args);
    }
});

window.AnonimbiriAPI = AnonimbiriAPI;
kit.render();