Shit Client

Itz shitty but sophisticated

이 스크립트는 직접 설치하는 용도가 아닙니다. 다른 스크립트에서 메타 지시문 // @require https://update.greasyfork.org/scripts/586293/1871372/Shit%20Client.js을(를) 사용하여 포함하는 라이브러리입니다.

이 스크립트를 설치하려면 Tampermonkey, Greasemonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램을 설치해야 합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Violentmonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey 또는 Userscripts와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 Tampermonkey와 같은 확장 프로그램이 필요합니다.

이 스크립트를 설치하려면 유저 스크립트 관리자 확장 프로그램이 필요합니다.

(이미 유저 스크립트 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 Stylus와 같은 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

이 스타일을 설치하려면 유저 스타일 관리자 확장 프로그램이 필요합니다.

(이미 유저 스타일 관리자가 설치되어 있습니다. 설치를 진행합니다!)

Advertisement:

// ==UserScript==
// @name         Shit Client
// @namespace    Idk
// @version      1.0
// @description  Itz shitty but sophisticated
// @author       ToMo
// @match        https://bloxd.io/*
// @grant        none
// ==/UserScript==
(function () {
'use strict';

// ================= STATE =================
let menuOpen = true;
let auto = false;
let timer = null;
let mouseX = 0;
let mouseY = 0;
let cps = 60;
let uiColor = "#00ff99";

// ================= MOUSE TRACK =================
document.addEventListener("mousemove", (e) => {
    mouseX = e.clientX;
    mouseY = e.clientY;
});

// ================= CLICK LOOP =================
function clickLoop() {
    if (!auto) return;

    const el = document.elementFromPoint(mouseX, mouseY) || document.body;

    const opts = {
        bubbles: true,
        cancelable: true,
        view: window,
        clientX: mouseX,
        clientY: mouseY
    };

    el.dispatchEvent(new MouseEvent("mousedown", opts));
    el.dispatchEvent(new MouseEvent("mouseup", opts));
    el.dispatchEvent(new MouseEvent("click", opts));

    const variation = cps * (0.75 + Math.random() * 0.5);
    const microJitter = Math.random() * 12;

    const delay = 1000 / variation + microJitter;

    timer = setTimeout(clickLoop, delay);
}

// ================= STYLE =================
const style = document.createElement("style");
style.innerHTML = `
:root {
    --accent: #00ff99;
}

#gangtax-menu {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    background: rgba(10,10,10,0.95);
    border-radius: 12px;
    padding: 18px;
    color: white;
    font-family: Arial;
    width: 320px;
    z-index: 9999;
}

#gangtax-btn {
    position: fixed;
    bottom: 20px;
    right: 20px;
    width: 45px;
    height: 45px;
    border-radius: 50%;
    background: black;
    color: var(--accent);
    font-weight: bold;
    font-size: 20px;
    display: flex;
    align-items: center;
    justify-content: center;
    cursor: pointer;
    z-index: 9999;
    border: 2px solid var(--accent);
}

#hud {
    position: fixed;
    top: 10px;
    left: 50%;
    transform: translateX(-50%);
    color: var(--accent);
    font-family: monospace;
    z-index: 9999;
    text-align: center;
}

#keystrokes {
    position: fixed;
    bottom: 20px;
    left: 20px;
}

.key {
    display: inline-block;
    border: 2px solid #555;
    padding: 10px;
    margin: 4px;
    width: 28px;
    text-align: center;
    color: white;
}

.key.active {
    background: var(--accent);
    color: black;
}

#crosshair {
    position: fixed;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    font-size: 22px;
    font-weight: bold;
    pointer-events: none;
    text-shadow: 0 0 3px black, 0 0 6px var(--accent);
}

.snowflake {
    position: fixed;
    top: -10px;
    font-size: 12px;
    z-index: 9998;
    pointer-events: none;
    color: var(--accent);
    animation: fall linear forwards;
}

@keyframes fall {
    to { transform: translateY(110vh); }
}
`;
document.head.appendChild(style);

// ================= MENU =================
const menu = document.createElement("div");
menu.id = "gangtax-menu";
menu.innerHTML = `
<h2 style="text-align:center;">---Gangtax Client---</h2>

<label><input type="checkbox" id="fps" checked> FPS</label><br>
<label><input type="checkbox" id="ping" checked> Ping</label><br>
<label><input type="checkbox" id="cpsHud" checked> CPS</label><br>

<hr>

<label><input type="checkbox" id="cross" checked> Crosshair</label><br>
<label><input type="checkbox" id="snow"> Snow</label><br>

<hr>

<label><input type="checkbox" id="autoClickToggle"> AutoClick (R)</label><br>

<br>

<label>
CPS:
<input type="range" id="cpsSlider" min="10" max="200" value="60">
<span id="cpsValue">60</span>
</label>

<hr>

<label>
UI Color:
<input type="color" id="uiColorPicker" value="#00ff99">
</label>

<hr>

<select id="crossType">
  <option value="+">+</option>
  <option value="x">X</option>
  <option value="dot">•</option>
</select>

<select id="crossColor">
  <option value="white">White</option>
  <option value="#00ff99">Green</option>
  <option value="red">Red</option>
</select>
`;
document.body.appendChild(menu);

// ================= BUTTON =================
const btn = document.createElement("div");
btn.id = "gangtax-btn";
btn.innerText = "G";
document.body.appendChild(btn);

// ================= HUD =================
const hud = document.createElement("div");
hud.id = "hud";
document.body.appendChild(hud);

// ================= KEYS =================
const keys = document.createElement("div");
keys.id = "keystrokes";
keys.innerHTML = `
<div><div class="key" id="z">Z</div></div>
<div>
<div class="key" id="q">Q</div>
<div class="key" id="s">S</div>
<div class="key" id="d">D</div>
</div>
`;
document.body.appendChild(keys);

// ================= CROSSHAIR =================
const crosshair = document.createElement("div");
crosshair.id = "crosshair";
document.body.appendChild(crosshair);

// ================= MENU TOGGLE =================
btn.onclick = () => {
    menuOpen = !menuOpen;
    menu.style.display = menuOpen ? "block" : "none";
};

document.addEventListener("keydown", (e) => {
    if (e.key.toLowerCase() === "g") {
        menuOpen = !menuOpen;
        menu.style.display = menuOpen ? "block" : "none";
    }
});

// ================= FPS =================
let fps = 0, last = performance.now();
function fpsLoop(){
    let now = performance.now();
    fps = Math.round(1000 / (now - last));
    last = now;
    requestAnimationFrame(fpsLoop);
}
fpsLoop();

// ================= CPS =================
let clicks = 0;
let cpsHud = 0;
document.addEventListener("click", ()=> clicks++);

setInterval(()=>{
    cpsHud = clicks;
    clicks = 0;
}, 1000);

// ================= PING =================
let ping = 0;

setInterval(async ()=>{
    let t = performance.now();
    try {
        await fetch(location.href, {method:"HEAD"});
        ping = Math.round(performance.now() - t);
    } catch {}
}, 3000);

// ================= HUD =================
setInterval(()=>{
    let parts = [];

    if(document.getElementById("fps").checked) parts.push("FPS: " + fps);
    if(document.getElementById("ping").checked) parts.push("Ping: " + ping + "ms");
    if(document.getElementById("cpsHud").checked) parts.push("CPS: " + cpsHud);

    hud.innerText = parts.join(" | ");
}, 200);

// ================= KEYS =================
document.addEventListener("keydown", e=>{
    let el = document.getElementById(e.key.toLowerCase());
    if(el) el.classList.add("active");
});

document.addEventListener("keyup", e=>{
    let el = document.getElementById(e.key.toLowerCase());
    if(el) el.classList.remove("active");
});

// ================= CROSSHAIR =================
function updateCrosshair(){
    if(!document.getElementById("cross").checked){
        crosshair.innerText = "";
        return;
    }

    let type = document.getElementById("crossType").value;
    let color = document.getElementById("crossColor").value;

    crosshair.style.color = color;

    crosshair.innerText =
        type === "dot" ? "•" :
        type === "x" ? "X" : "+";
}
setInterval(updateCrosshair, 100);

// ================= SNOW =================
setInterval(()=>{
    if(!document.getElementById("snow").checked) return;

    let snow = document.createElement("div");
    snow.className = "snowflake";
    snow.innerText = "❄";

    snow.style.left = Math.random() * window.innerWidth + "px";
    snow.style.animationDuration = (3 + Math.random()*5) + "s";

    document.body.appendChild(snow);
    setTimeout(()=> snow.remove(), 8000);
}, 200);

// ================= AUTOCLICK =================
const autoToggle = document.getElementById("autoClickToggle");
const cpsSlider = document.getElementById("cpsSlider");
const cpsValue = document.getElementById("cpsValue");

cpsSlider.addEventListener("input", ()=>{
    cps = parseInt(cpsSlider.value);
    cpsValue.innerText = cps;
});

document.addEventListener("keydown", (e)=>{
    if (e.key.toLowerCase() === "r" && autoToggle.checked) {
        if (!auto) {
            auto = true;
            clickLoop();
        }
    }
});

document.addEventListener("keyup", (e)=>{
    if (e.key.toLowerCase() === "r") {
        auto = false;
        clearTimeout(timer);
    }
});

// ================= UI COLOR =================
const uiColorPicker = document.getElementById("uiColorPicker");

uiColorPicker.addEventListener("input", () => {
    uiColor = uiColorPicker.value;
    document.documentElement.style.setProperty("--accent", uiColor);
});

})();
(function() {
    'use strict';
    function betterChat() {
    const chatMessages = document.querySelectorAll('.ChatMessages');
    const chatInput = document.querySelector('.ChatInput');

    const messageStyles = {
        color: '#fff',
        padding: '10px',
        borderRadius: '15px 0 15px 15px',
        borderTopLeftRadius: '15px',
        boxShadow: '0 4px 8px rgba(0, 0, 0, 0.1), 0 0 20px rgba(0, 0, 0, 0.7)',
        backdropFilter: 'blur(5px)'
    };

    const inputStyles = {
        color: '#fff',
        padding: '10px',
        borderRadius: '5px 0 5px 5px',
        borderTopLeftRadius: '5px',
        boxShadow: '0 4px 8px rgba(0, 0, 0, 0.1), 0 0 20px rgba(0, 0, 0, 0.7)',
        backdropFilter: 'blur(5px)'
    };

    if (chatMessages.length > 0) {
        chatMessages.forEach((chatMessage) => {
            Object.assign(chatMessage.style, messageStyles);
        });
    }

    if (chatInput) {
        Object.assign(chatInput.style, inputStyles);
    }
}

setInterval(betterChat, 730)
})();