garik

ggg

Vous devrez installer une extension telle que Tampermonkey, Greasemonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Violentmonkey pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey ou Userscripts pour installer ce script.

Vous devrez installer une extension telle que Tampermonkey pour installer ce script.

Vous devrez installer une extension de gestionnaire de script utilisateur pour installer ce script.

(J'ai déjà un gestionnaire de scripts utilisateur, laissez-moi l'installer !)

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension telle que Stylus pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

Vous devrez installer une extension du gestionnaire de style pour utilisateur pour installer ce style.

(J'ai déjà un gestionnaire de style utilisateur, laissez-moi l'installer!)

// ==UserScript==
// @name         garik
// @namespace    http://tampermonkey.net/
// @version      1.0
// @description  ggg
// @author       g
// @match        https://gartic.io/*
// @icon         https://www.google.com/s2/favicons?sz=64&domain=gartic.io
// @grant        none
// ==/UserScript==

(function() {
    'use strict';

    /*
    Burada "Strict Mode" kullanıyoruz ki JavaScript hatalarımızı affetmesin,
    daha temiz kod yazalım.
    */

    // --- 1. DEĞİŞKENLER VE AYARLAR ---
    let menuAcik = false; // Menünün açık/kapalı durumunu tutar
    let overlayGorsel = null; // Eklediğimiz resim elementi

    // --- 2. HTML ARAYÜZÜ (MENÜ TASARIMI) ---
    /*
    HTML'i JavaScript içinde string (yazı) olarak oluşturuyoruz.
    Buna 'Template Literal' denir..
    */
    const menuHTML = `
        <div id="ressam-menu" style="
            position: fixed;
            top: 20px;
            left: 20px;
            background: rgba(0, 0, 0, 0.85);
            color: #00ff00;
            padding: 20px;
            border: 2px solid #00ff00;
            border-radius: 10px;
            z-index: 9999;
            font-family: 'Courier New', monospace;
            box-shadow: 0 0 15px #00ff00;
            display: none; /* Başlangıçta gizli */
        ">
            <h3 style="margin-top:0; text-align:center;">🎨 RESSAM MODU</h3>
            <hr style="border-color: #00ff00;">

            <label>Resim URL'si:</label><br>
            <input type="text" id="img-url" placeholder="Link yapıştır..." style="
                width: 200px;
                background: #222;
                color: white;
                border: 1px solid #555;
                padding: 5px;
            "><br><br>

            <label>Opaklık (Şeffaflık):</label><br>
            <input type="range" id="opacity-slider" min="0" max="1" step="0.1" value="0.5"><br><br>

            <button id="btn-yukle" style="
                width: 100%;
                background: #00ff00;
                color: black;
                font-weight: bold;
                border: none;
                padding: 10px;
                cursor: pointer;
            ">RESMİ YANSIT</button>

            <p style="font-size: 10px; color: gray; margin-top: 10px;">Menü: [INSERT] Tuşu</p>
        </div>
    `;

    // --- 3. ARAYÜZÜ SAYFAYA EKLEME (INJECTION) ---
    // Oluşturduğumuz HTML'i body'nin en sonuna ekliyoruz.
    const div = document.createElement('div');
    div.innerHTML = menuHTML;
    document.body.appendChild(div);

    // --- 4. RESMİ OYUN ALANINA YERLEŞTİRME FONKSİYONU ---
    function resmiYansit() {
        /*
        VIDEO NOTU:
        Burada oyunun çizim alanını (Canvas) bulmamız lazım.
        Gartic.io'da çizim alanı genellikle 'canvas' etiketidir.
        Biz resmimizi bu canvas'ın tam üzerine, "pointer-events: none" ile koyacağız.
        Böylece tıkladığımızda resme değil, arkasındaki tuvale tıklamış olacağız.
        */

        const url = document.getElementById('img-url').value;
        const opacity = document.getElementById('opacity-slider').value;
        const oyunCanvas = document.querySelector('canvas'); // Oyundaki canvası bul

        if (!url) {
            alert('Lütfen bir resim linki yapıştırın!');
            return;
        }

        if (!oyunCanvas) {
            alert('Oyun alanı bulunamadı! Oyuna girdiğinden emin ol.');
            return;
        }

        // Eğer zaten bir overlay varsa, eskisini güncelle
        if (!overlayGorsel) {
            overlayGorsel = document.createElement('img');
            overlayGorsel.style.position = 'absolute';
            overlayGorsel.style.pointerEvents = 'none'; // ÖNEMLİ: Tıklamalar arkaya geçsin
            overlayGorsel.style.zIndex = '100'; // Canvas'ın üstünde durmalı
            document.body.appendChild(overlayGorsel);
        }

        // Resim özelliklerini ayarla
        overlayGorsel.src = url;
        overlayGorsel.style.opacity = opacity;

        // Resmi Canvas'ın tam üzerine oturt (Konumlandırma)
        const rect = oyunCanvas.getBoundingClientRect();
        overlayGorsel.style.top = rect.top + 'px';
        overlayGorsel.style.left = rect.left + 'px';
        overlayGorsel.style.width = rect.width + 'px';
        overlayGorsel.style.height = rect.height + 'px';

        console.log("Ressam Modu: Resim başarıyla yansıtıldı.");
    }

    // --- 5. OLAY DİNLEYİCİLERİ (EVENT LISTENERS) ---

    // Butona tıklayınca çalışacak
    document.getElementById('btn-yukle').addEventListener('click', resmiYansit);

    // Opaklık slider'ı değişince anlık güncelle
    document.getElementById('opacity-slider').addEventListener('input', (e) => {
        if(overlayGorsel) {
            overlayGorsel.style.opacity = e.target.value;
        }
    });

    // Klavye kontrolleri (INSERT ile aç/kapa)
    document.addEventListener('keydown', function(e) {
        if (e.code === 'Insert') {
            const menu = document.getElementById('ressam-menu');
            menuAcik = !menuAcik;

            if (menuAcik) {
                menu.style.display = 'block';
            } else {
                menu.style.display = 'none';
            }
        }
    });

    // Pencere boyutu değişirse resim kaymasın diye güncelleme
    window.addEventListener('resize', () => {
        if(overlayGorsel) resmiYansit();
    });

})();