Geçmişten gelen bir oyun! ClupPenguin
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">×</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.');
})();
Tartışma