Selamlar,
Neden hâlâ Club Penguin’e girip çıkıyorum? Her kesimden insanın bir rahatlama yolu var. Kimisi sahile gider, kimisi kitap okur, kimisi başka şeyler yapar... İşte ben de kafa dağıtmak için iki kartopu attığım çocukluğumun oyununa giriyorum.

Aşağıdaki kodu konsola yapıştırdığımda otomatik olarak coin kazanmaya başlıyorum.

Şakası bir yana, geçmişinize bir bakmak isterseniz ya da hiç görmediyseniz, zamanının çok ileri bir oyunuydu Club Penguin. Hâlâ girip bakabileceğiniz bir ortamı var.

Aşağıdaki kodu miner’da konsola yapıştırıp belli bir alanı seçtiğinizde, o alan içinde yürüyüp D harfine basarak kazı yapıyor ve coin kasıyor.

(function() {
    // Konfigürasyon değişkenleri
    let config = {
        ilkTiklamaSonrasiSure: 3000,
        ikinciTiklamaOncesiSure: 180000,
        ikinciTiklamaSonrasiSure: 3000
    };
    
    let secilenAlan = null;
    let sonTiklananKoordinat = null;
    let calisiyorMu = false;
    let secimBaslangic = null;
    let secimKutusu = null;
    let toplamTiklama = 0;
    let geriSayimInterval = null;
    
    // Kontrol panelini oluştur
    const panel = document.createElement('div');
    panel.id = 'otomasyon-panel';
    panel.style.cssText = `
        position: fixed;
        top: 20px;
        right: 20px;
        background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
        padding: 20px;
        border-radius: 12px;
        box-shadow: 0 10px 30px rgba(0,0,0,0.3);
        z-index: 999999;
        font-family: Arial, sans-serif;
        color: white;
        min-width: 300px;
    `;
    
    panel.innerHTML = `
        <button id="kapatBtn" style="position: absolute; top: 10px; right: 10px; width: 30px; height: 30px; border: none; border-radius: 50%; background: rgba(255,255,255,0.2); color: white; font-size: 20px; font-weight: bold; cursor: pointer; display: flex; align-items: center; justify-content: center; transition: all 0.3s; line-height: 1;" title="Paneli Kapat">&times;</button>
        
        <h3 style="margin: 0 0 15px 0; font-size: 16px; text-align: center; border-bottom: 2px solid rgba(255,255,255,0.3); padding-bottom: 10px; padding-right: 30px;">🎮 CP Test Otomasyonu</h3>
        
        <div style="margin-bottom: 15px;">
            <label style="display: block; font-size: 12px; margin-bottom: 5px;">İlk Tıklama Sonrası (sn):</label>
            <input type="number" id="ilkSure" value="3" min="1" style="width: 100%; padding: 8px; border-radius: 5px; border: none; box-sizing: border-box;">
        </div>
        
        <div style="margin-bottom: 15px;">
            <label style="display: block; font-size: 12px; margin-bottom: 5px;">İkinci Tıklama Öncesi (dk):</label>
            <input type="number" id="aralikSure" value="3" min="1" style="width: 100%; padding: 8px; border-radius: 5px; border: none; box-sizing: border-box;">
        </div>
        
        <div style="margin-bottom: 15px;">
            <label style="display: block; font-size: 12px; margin-bottom: 5px;">İkinci Tıklama Sonrası (sn):</label>
            <input type="number" id="ikinciSure" value="3" min="1" style="width: 100%; padding: 8px; border-radius: 5px; border: none; box-sizing: border-box;">
        </div>
        
        <div style="margin-bottom: 10px;">
            <button id="alanSecBtn" style="width: 100%; padding: 10px; border: none; border-radius: 6px; background: #4CAF50; color: white; font-weight: bold; cursor: pointer; margin-bottom: 8px; transition: all 0.3s;">
                📍 Alan Seç (Kare Çiz)
            </button>
            <button id="baslatBtn" style="width: 100%; padding: 10px; border: none; border-radius: 6px; background: #2196F3; color: white; font-weight: bold; cursor: pointer; margin-bottom: 8px; transition: all 0.3s;" disabled>
                ▶️ Başlat
            </button>
            <button id="durdurBtn" style="width: 100%; padding: 10px; border: none; border-radius: 6px; background: #f44336; color: white; font-weight: bold; cursor: pointer; transition: all 0.3s;" disabled>
                ⏸️ Durdur
            </button>
        </div>
        
        <div id="durum" style="background: rgba(0,0,0,0.2); padding: 10px; border-radius: 6px; font-size: 12px; text-align: center; min-height: 40px;">
            Durum: Bekliyor...<br>
            <span id="tiklamaSayisi" style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: 0</span>
        </div>
    `;
    
    document.body.appendChild(panel);
    
    // Elemanları al
    const kapatBtn = document.getElementById('kapatBtn');
    const alanSecBtn = document.getElementById('alanSecBtn');
    const baslatBtn = document.getElementById('baslatBtn');
    const durdurBtn = document.getElementById('durdurBtn');
    const durumDiv = document.getElementById('durum');
    const tiklamaSayisiSpan = document.getElementById('tiklamaSayisi');
    const ilkSureInput = document.getElementById('ilkSure');
    const aralikSureInput = document.getElementById('aralikSure');
    const ikinciSureInput = document.getElementById('ikinciSure');
    
    // Geri sayım sayacını temizle
    function geriSayimTemizle() {
        if (geriSayimInterval) {
            clearInterval(geriSayimInterval);
            geriSayimInterval = null;
        }
    }
    
    // Geri sayım göster
    function geriSayimGoster(kalanSureMilisaniye, mesaj) {
        geriSayimTemizle();
        
        let kalanSaniye = Math.floor(kalanSureMilisaniye / 1000);
        
        geriSayimInterval = setInterval(() => {
            if (!calisiyorMu) {
                geriSayimTemizle();
                return;
            }
            
            kalanSaniye--;
            
            if (kalanSaniye > 0) {
                durumDiv.innerHTML = `${mesaj} ${kalanSaniye}sn bekleniyor...<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
            } else {
                geriSayimTemizle();
            }
        }, 1000);
    }
    
    // Kapatma butonu
    kapatBtn.addEventListener('click', () => {
        calisiyorMu = false;
        geriSayimTemizle();
        
        if (secimKutusu) {
            secimKutusu.remove();
        }
        
        panel.remove();
        console.log('CP Test Otomasyonu kapatıldı.');
    });
    
    // Kapatma butonu hover efekti
    kapatBtn.addEventListener('mouseenter', () => {
        kapatBtn.style.background = 'rgba(255,255,255,0.3)';
        kapatBtn.style.transform = 'scale(1.1)';
    });
    
    kapatBtn.addEventListener('mouseleave', () => {
        kapatBtn.style.background = 'rgba(255,255,255,0.2)';
        kapatBtn.style.transform = 'scale(1)';
    });
    
    // Buton hover efektleri
    [alanSecBtn, baslatBtn, durdurBtn].forEach(btn => {
        btn.addEventListener('mouseenter', () => {
            if (!btn.disabled) btn.style.transform = 'scale(1.05)';
        });
        btn.addEventListener('mouseleave', () => {
            btn.style.transform = 'scale(1)';
        });
    });
    
    // D tuşuna basma fonksiyonu
    function dTusunaBasma() {
        const event = new KeyboardEvent('keydown', {
            key: 'd',
            code: 'KeyD',
            keyCode: 68,
            which: 68,
            bubbles: true,
            cancelable: true
        });
        document.dispatchEvent(event);
        
        setTimeout(() => {
            const eventUp = new KeyboardEvent('keyup', {
                key: 'd',
                code: 'KeyD',
                keyCode: 68,
                which: 68,
                bubbles: true,
                cancelable: true
            });
            document.dispatchEvent(eventUp);
        }, 100);
        
        console.log('D tuşuna basıldı');
    }
    
    // Önceki tıklamadan farklı mı kontrol et
    function sonTiklamadanFarkliMi(x, y, minMesafe = 50) {
        if (!sonTiklananKoordinat) return true;
        
        const mesafe = Math.sqrt(
            Math.pow(x - sonTiklananKoordinat.x, 2) + 
            Math.pow(y - sonTiklananKoordinat.y, 2)
        );
        
        return mesafe >= minMesafe;
    }
    
    // Tam mouse simülasyonu fonksiyonu
    function simulateMouseClick(element, x, y) {
        const eventOptions = {
            view: window,
            bubbles: true,
            cancelable: true,
            clientX: x,
            clientY: y,
            button: 0
        };
        
        // Tam mouse tıklama simülasyonu: mousedown -> mouseup -> click
        const mousedownEvent = new MouseEvent('mousedown', eventOptions);
        const mouseupEvent = new MouseEvent('mouseup', eventOptions);
        const clickEvent = new MouseEvent('click', eventOptions);
        
        element.dispatchEvent(mousedownEvent);
        element.dispatchEvent(mouseupEvent);
        element.dispatchEvent(clickEvent);
    }
    
    // Rastgele tıklama fonksiyonu (son tıklamadan farklı)
    function alanaRastgeleTikla() {
        if (!secilenAlan) return null;
        
        const rect = secilenAlan;
        let denemeSayisi = 0;
        let x, y;
        
        // Maksimum 100 deneme ile farklı bir nokta bul
        do {
            // Alan sınırları içinde rastgele koordinat üret
            x = rect.left + (Math.random() * rect.width);
            y = rect.top + (Math.random() * rect.height);
            denemeSayisi++;
        } while (!sonTiklamadanFarkliMi(x, y) && denemeSayisi < 100);
        
        // Son koordinatı güncelle
        sonTiklananKoordinat = {x: Math.round(x), y: Math.round(y)};
        toplamTiklama++;
        
        // O koordinattaki elementi bul ve tıkla
        const element = document.elementFromPoint(x, y);
        
        if (element) {
            // Tam mouse simülasyonu
            simulateMouseClick(element, x, y);
            
            // Görsel geri bildirim için nokta ekle
            const nokta = document.createElement('div');
            nokta.style.cssText = `
                position: fixed;
                left: ${x - 8}px;
                top: ${y - 8}px;
                width: 16px;
                height: 16px;
                background: rgba(255, 0, 0, 0.7);
                border: 2px solid white;
                border-radius: 50%;
                z-index: 999997;
                pointer-events: none;
                box-shadow: 0 0 15px rgba(255, 0, 0, 0.9);
                animation: pulseTikla 0.5s ease-out;
            `;
            
            // Animasyon ekle
            const style = document.createElement('style');
            style.textContent = `
                @keyframes pulseTikla {
                    0% { transform: scale(0); opacity: 1; }
                    100% { transform: scale(2); opacity: 0; }
                }
            `;
            if (!document.getElementById('tiklamaAnimStyle')) {
                style.id = 'tiklamaAnimStyle';
                document.head.appendChild(style);
            }
            
            document.body.appendChild(nokta);
            
            // Noktayı 1 saniye sonra kaldır
            setTimeout(() => nokta.remove(), 1000);
            
            console.log(`✅ Tıklama #${toplamTiklama}: X=${Math.round(x)}, Y=${Math.round(y)}, Element: ${element.tagName}.${element.className}`);
        } else {
            console.log(`❌ Koordinatlarda element bulunamadı: X=${Math.round(x)}, Y=${Math.round(y)}`);
        }
        
        return {x: Math.round(x), y: Math.round(y)};
    }
    
    // Otomasyon döngüsü - SONSUZ
    function otomasyonuCalistir() {
        if (!calisiyorMu) return;
        
        durumDiv.innerHTML = '⏳ Döngü başlatılıyor...<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ' + toplamTiklama + '</span>';
        
        // İlk tıklama
        const ilkKoordinat = alanaRastgeleTikla();
        if (!ilkKoordinat) return;
        
        durumDiv.innerHTML = `✅ 1. Tıklama: (${ilkKoordinat.x}, ${ilkKoordinat.y})<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
        
        // Geri sayım başlat - İlk D tuşu öncesi
        geriSayimGoster(config.ilkTiklamaSonrasiSure, '🔤 D tuşuna');
        
        // İlk D tuşu
        setTimeout(() => {
            if (!calisiyorMu) return;
            
            dTusunaBasma();
            durumDiv.innerHTML = `🔤 D tuşu basıldı.<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
            
            // Geri sayım başlat - İkinci tıklama öncesi
            geriSayimGoster(config.ikinciTiklamaOncesiSure, '⏱️ 2. Tıklamaya');
            
            // İkinci tıklama bekleme
            setTimeout(() => {
                if (!calisiyorMu) return;
                
                const ikinciKoordinat = alanaRastgeleTikla();
                if (!ikinciKoordinat) return;
                
                durumDiv.innerHTML = `✅ 2. Tıklama: (${ikinciKoordinat.x}, ${ikinciKoordinat.y})<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
                
                // Geri sayım başlat - İkinci D tuşu öncesi
                geriSayimGoster(config.ikinciTiklamaSonrasiSure, '🔤 D tuşuna');
                
                // İkinci D tuşu
                setTimeout(() => {
                    if (!calisiyorMu) return;
                    
                    dTusunaBasma();
                    durumDiv.innerHTML = `✔️ Döngü tamamlandı. Yeniden başlatılıyor...<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
                    
                    // Döngüyü tekrarla - SONSUZ
                    setTimeout(() => {
                        if (calisiyorMu) {
                            otomasyonuCalistir();
                        }
                    }, 1000);
                    
                }, config.ikinciTiklamaSonrasiSure);
                
            }, config.ikinciTiklamaOncesiSure);
            
        }, config.ilkTiklamaSonrasiSure);
    }
    
    // Alan seçme - Fare ile kare çizme
    alanSecBtn.addEventListener('click', () => {
        // Eski seçim kutusunu temizle
        if (secimKutusu) {
            secimKutusu.remove();
            secimKutusu = null;
        }
        
        sonTiklananKoordinat = null;
        toplamTiklama = 0;
        
        durumDiv.innerHTML = '🖱️ Fare ile kare çizin...<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: 0</span>';
        alanSecBtn.textContent = '⏳ Kare çiziliyor...';
        alanSecBtn.disabled = true;
        baslatBtn.disabled = true;
        
        let cizimBasladi = false;
        
        const mouseDownHandler = function(e) {
            if (e.target.closest('#otomasyon-panel')) return;
            
            cizimBasladi = true;
            secimBaslangic = { x: e.clientX, y: e.clientY };
            
            // Seçim kutusunu oluştur
            secimKutusu = document.createElement('div');
            secimKutusu.style.cssText = `
                position: fixed;
                border: 3px dashed #00ff00;
                background: rgba(0, 255, 0, 0.1);
                pointer-events: none;
                z-index: 999998;
                box-shadow: 0 0 10px rgba(0, 255, 0, 0.5);
            `;
            document.body.appendChild(secimKutusu);
            
            e.preventDefault();
        };
        
        const mouseMoveHandler = function(e) {
            if (!cizimBasladi || !secimKutusu) return;
            
            const suankiX = e.clientX;
            const suankiY = e.clientY;
            
            const left = Math.min(secimBaslangic.x, suankiX);
            const top = Math.min(secimBaslangic.y, suankiY);
            const width = Math.abs(suankiX - secimBaslangic.x);
            const height = Math.abs(suankiY - secimBaslangic.y);
            
            secimKutusu.style.left = left + 'px';
            secimKutusu.style.top = top + 'px';
            secimKutusu.style.width = width + 'px';
            secimKutusu.style.height = height + 'px';
        };
        
        const mouseUpHandler = function(e) {
            if (!cizimBasladi) return;
            
            cizimBasladi = false;
            
            const suankiX = e.clientX;
            const suankiY = e.clientY;
            
            const left = Math.min(secimBaslangic.x, suankiX);
            const top = Math.min(secimBaslangic.y, suankiY);
            const width = Math.abs(suankiX - secimBaslangic.x);
            const height = Math.abs(suankiY - secimBaslangic.y);
            
            // Minimum alan kontrolü
            if (width > 20 && height > 20) {
                // Alan koordinatlarını kaydet (fixed koordinatlar)
                secilenAlan = { 
                    left: left, 
                    top: top, 
                    width: width, 
                    height: height 
                };
                
                durumDiv.innerHTML = `✅ Alan seçildi: ${width}x${height}px<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: 0</span>`;
                baslatBtn.disabled = false;
                
                console.log('✅ Alan seçildi:', secilenAlan);
            } else {
                durumDiv.innerHTML = '❌ Alan çok küçük, tekrar deneyin<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: 0</span>';
                if (secimKutusu) {
                    secimKutusu.remove();
                    secimKutusu = null;
                }
            }
            
            alanSecBtn.textContent = '📍 Alan Seç (Kare Çiz)';
            alanSecBtn.disabled = false;
            
            // Event listener'ları kaldır
            document.removeEventListener('mousedown', mouseDownHandler);
            document.removeEventListener('mousemove', mouseMoveHandler);
            document.removeEventListener('mouseup', mouseUpHandler);
        };
        
        document.addEventListener('mousedown', mouseDownHandler);
        document.addEventListener('mousemove', mouseMoveHandler);
        document.addEventListener('mouseup', mouseUpHandler);
    });
    
    // Başlat butonu
    baslatBtn.addEventListener('click', () => {
        config.ilkTiklamaSonrasiSure = parseInt(ilkSureInput.value) * 1000;
        config.ikinciTiklamaOncesiSure = parseInt(aralikSureInput.value) * 60000;
        config.ikinciTiklamaSonrasiSure = parseInt(ikinciSureInput.value) * 1000;
        
        calisiyorMu = true;
        baslatBtn.disabled = true;
        durdurBtn.disabled = false;
        alanSecBtn.disabled = true;
        ilkSureInput.disabled = true;
        aralikSureInput.disabled = true;
        ikinciSureInput.disabled = true;
        
        console.log('🚀 Otomasyon başlatıldı!');
        otomasyonuCalistir();
    });
    
    // Durdur butonu
    durdurBtn.addEventListener('click', () => {
        calisiyorMu = false;
        geriSayimTemizle();
        
        baslatBtn.disabled = false;
        durdurBtn.disabled = true;
        alanSecBtn.disabled = false;
        ilkSureInput.disabled = false;
        aralikSureInput.disabled = false;
        ikinciSureInput.disabled = false;
        
        durumDiv.innerHTML = `⏹️ Durduruldu<br><span style="font-size: 10px; opacity: 0.8;">Toplam Tıklama: ${toplamTiklama}</span>`;
        console.log('⏹️ Otomasyon durduruldu.');
    });
    
    console.log('🎮 CP Test Otomasyonu v6.0 yüklendi! Geliştirilmiş tıklama sistemi.');
})();