Kawaii Helper & Drawing Bot for Gartic.io

Helper for Gartic.io with auto-guess, drawing assistance, and drawing bot

< 脚本Kawaii Helper & Drawing Bot for Gartic.io的反馈

提问/评论

§
发表于:2025-03-13

belkide proje author kısmını anonimbiri & Gartic-Admins olarak degistirmelisiniz 😁
ne ara gördülerde hemen önlem aldılar garip

§
发表于:2025-03-13

benim auto answer a telif ve yasak gelmiş kaldırmışlar 🙃 ikondan mıdır acaba ikon gartic.io dan çekiliyordu

§
发表于:2025-03-14

dün çizim hilesini fxiledi
anında yanıt yaptım scipt i stok yapıp dc paylaşın

§
发表于:2025-03-14

buda kalkabilir

§
发表于:2025-03-14

banda da telif attı kalkabilir

§
发表于:2025-03-14

stok yapın

§
发表于:2025-03-14

şu anlık rededildi ama bu yarın tekrar ihtar gönderilemiyeceği anlamına gelmiyor

§
发表于:2025-03-14

gartic.io 0 - 1 Anonimbiri

§
发表于:2025-03-17

bak ne buldum

// ==UserScript==
// @name         code mutation for app.js
// @match        https://gartic.io/*
// @run-at       document-start
// ==/UserScript==


(function() {
    'use strict';

    // Belirleyeceğimiz nick ve avatar değerleri
    const CUSTOM_NICK = "selam";

    // MutationObserver ile script etiketlerini izle
    const observer = new MutationObserver((mutations) => {
        mutations.forEach((mutation) => {
            if (mutation.addedNodes) {
                for (let node of mutation.addedNodes) {
                    // Script etiketi ve src'sinde 'app' içeriyorsa
                    if (node.tagName === 'SCRIPT' && node.src.includes('app')) {
                        console.log('Hedef script bulundu:', node.src);

                        // Orijinal script'i kaldır
                        node.remove();

                        // Script içeriğini fetch ile al
                        fetch(node.src)
                            .then(response => response.text())
                            .then(scriptContent => {
                            // Script içeriğini manipüle et
                            let modifiedContent = scriptContent;

                            modifiedContent = modifiedContent.replace(
                                /start:function\(t,e\)\{([^}]*)\}/,
                                `start:function(t,e){
                                        t.user.nome = "${CUSTOM_NICK}";
                                        t.user.avatar = "${CUSTOM_AVATAR}";
                                        $1
                                    }`
                                );

                            // Socket emit'lerini değiştir (nick ve avatar için)
                            modifiedContent = modifiedContent.replace(
                                /emit\(1,\{v:K,nick:e\.nome,avatar:c,platform:u,idioma:e\.language\}\)/g,
                                `emit(1,{v:K,nick:"${CUSTOM_NICK}",avatar:"0",platform:u,idioma:e.language})`
                                );
                            modifiedContent = modifiedContent.replace(
                                /emit\(2,\{v:K,nick:e\.nome,avatar:c,platform:u,idioma:e\.language,tipo:n,limite:r,meta:i,visivel:s,criado:a\}\)/g,
                                `emit(2,{v:K,nick:"${CUSTOM_NICK}",avatar:"0",platform:u,idioma:e.language,tipo:n,limite:r,meta:i,visivel:s,criado:a})`
                                );
                            modifiedContent = modifiedContent.replace(
                                /emit\(3,\{v:K,nick:e\.nome,avatar:c,platform:u,sala:o\._room\.substr\(2\)\}\)/g,
                                `emit(3,{v:K,nick:"${CUSTOM_NICK}",avatar:"0",platform:u,sala:o._room.substr(2)})`
                                );

                            // Değiştirilmiş içeriği bir blob'a dönüştür
                            let blob = new Blob([modifiedContent], { type: 'application/javascript' });
                            let blobUrl = URL.createObjectURL(blob);

                            // Yeni bir script etiketi oluştur
                            const newScript = document.createElement('script');
                            newScript.src = blobUrl;
                            newScript.textContent = '';

                            // Yeni script'i DOM'a ekle
                            document.head.appendChild(newScript);
                            console.log('Script değiştirildi ve yeniden yüklendi:', blobUrl);
                        })
                            .catch(error => console.error('Hata:', error));
                    }
                }
            }
        });
    });

    // Observer'ı başlat
    observer.observe(document, { childList: true, subtree: true });

    const originalXhrOpen = XMLHttpRequest.prototype.open;
    const originalXhrSend = XMLHttpRequest.prototype.send;

    // XMLHttpRequest.prototype.open'ı override et
    XMLHttpRequest.prototype.open = function(method, url) {
        if (url && url.includes('/req/user')) {
            console.log('XHR /req/user isteği yakalandı:', url);
            this._isReqUser = true; // Bu isteği işaretle
        }
        return originalXhrOpen.apply(this, arguments);
    };

    // XMLHttpRequest.prototype.send'i override et
    XMLHttpRequest.prototype.send = function(body) {
        if (this._isReqUser && body) {
            // Orijinal body'yi parse et
            let modifiedBody = JSON.parse(body);
            // Sadece name ve avatar'ı değiştir, language orijinal kalsın
            modifiedBody.name = CUSTOM_NICK;
            modifiedBody.avatar = 0;
            body = JSON.stringify(modifiedBody);
            console.log('Gönderilen body manipüle edildi:', body);
        }

        // Yanıtı dinlemek için event listener ekle
        this.addEventListener('load', () => {
            if (this._isReqUser) {
                try {
                    const responseData = JSON.parse(this.responseText);
                    console.log('Sunucu yanıtı:', responseData);
                    if (responseData && typeof responseData.avatar === 'number') {
                        window.avatarIndex = responseData.avatar;
                        console.log('Avatar indeksi güncellendi:', window.avatarIndex);
                    } else {
                        window.avatarIndex = 0; // Varsayılan değer
                    }
                } catch (err) {
                    console.error('Yanıt JSON parse hatası:', err);
                }
            }
        }, { once: true });

        return originalXhrSend.call(this, body);
    };
})();

istdeğim script i modifye edebiliyorum. ama resmli avatar olmuyor denedim bir çok yöntem

§
发表于:2025-03-17

cok iyi

§
发表于:2025-03-17

resimli avatar konusunda da cerezler devreye giriyor o yuzden buyuk cogunlugu cerezlerle acilan websocket sunucusunuda isleniyor

§
发表于:2025-03-17

o yuzden js dosyalarindan bir sey yapabilir misiniz emin degilim ama yinede belli olmaz

§
发表于:2025-03-22

Qwyuaa istersen script i githubda Gartic-Developers a ekleyelim

§
发表于:2025-03-22

böylece herkes katkıda bulunabilir.

§
发表于:2025-03-23

tamamdir guzel olur cok fazla gelistirici yok gerci ama zararida olmaz

§
发表于:2025-03-23

kullandigin harici bir github hesabin var mi veya bir sekilde bana read.md ve diger proje dosyalarini ulastirabilir misin varsa diger eski projelerinide ekleyelim

§
发表于:2025-03-23

direk fork la projeyi

§
发表于:2025-03-23

olmustur👍👍👍 eline saglik

§
发表于:2025-03-24

olmustur👍👍👍 eline saglik

aslında repo oluşturma yetkim olsaydı direk aktaracaktım

§
发表于:2025-03-24

repoyu

§
发表于:2025-03-24

organizasyon davet istegi gonderdim girince kabul eder misin bir de oyle deneyelim

发表回复

登录(不可用)以发表回复。

QingJ © 2025

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