您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
Wormax2.io için havalı bir mod menüsü ile zoom hack! Pwzz ile zoom seviyesini slider ile ayarla.
// ==UserScript== // @name Pwzz Mod Menu - Wormax2.io Zoom Hack // @namespace http://tampermonkey.net/ // @version 1.3 // @description Wormax2.io için havalı bir mod menüsü ile zoom hack! Pwzz ile zoom seviyesini slider ile ayarla. // @author mf // @license pwzz and mf ai // @match https://wormax2.io/* // @grant none // ==/UserScript== (function() { 'use strict'; console.log('[Pwzz] Mod Menüsü ve Zoom Hack Başlatılıyor...'); // Debug log fonksiyonu function log(message) { console.log(`[Pwzz] ${message}`); } // Global değişkenler window.pwzz = window.pwzz || {}; // Global bir namespace oluştur window.pwzz.targetCamera = window.pwzz.targetCamera || null; // Kamerayı saklamak için window.pwzz.cameraControllerInstance = window.pwzz.cameraControllerInstance || null; // CameraController instance’ını saklamak için window.pwzz.isCameraFound = window.pwzz.isCameraFound || false; // Kameranın bulunup bulunmadığını takip et window.pwzz.desiredZoom = 2; // Slider’dan alınacak istenen zoom değeri (varsayılan 2x) // Derin nesne tarama fonksiyonu (recursive) function deepSearch(obj, targetKey, depth = 0, maxDepth = 5) { if (depth > maxDepth) return null; if (!obj || typeof obj !== 'object') return null; for (let key in obj) { if (key === targetKey) { log(`Hedef bulundu: ${key} (derinlik: ${depth})`); return obj[key]; } if (typeof obj[key] === 'object') { const result = deepSearch(obj[key], targetKey, depth + 1, maxDepth); if (result) { log(`Derin tarama sonucu bulundu: ${key}.${targetKey}`); return result; } } } return null; } // Kamerayı bir kez bul ve global olarak sakla function findCameraOnce() { if (window.pwzz.isCameraFound) { log('Kamera nesnesi zaten global olarak saklandı, tekrar aranmıyor.'); return true; } log('Kamera nesnesi aranıyor...'); const namespaces = [window, window.SnakeGame, window.cggl, window.nescc, window.nescg2]; for (let ns of namespaces) { if (!ns) continue; // PlayerCameraController’ı ara let cameraController = deepSearch(ns, 'PlayerCameraController'); if (cameraController) { try { // Prototip üzerinden kamera bul if (cameraController.prototype && cameraController.prototype.camera) { window.pwzz.targetCamera = cameraController.prototype.camera; window.pwzz.targetCamera.zoom = window.pwzz.desiredZoom; // Varsayılan zoom log('PlayerCameraController zoom bulundu (prototip).'); overrideAct1(cameraController); window.pwzz.isCameraFound = true; return true; } // Instance tarama for (let key in cameraController) { if (cameraController[key] && cameraController[key].camera && typeof cameraController[key].camera.zoom === 'number') { window.pwzz.targetCamera = cameraController[key].camera; window.pwzz.cameraControllerInstance = cameraController[key]; window.pwzz.targetCamera.zoom = window.pwzz.desiredZoom; // Varsayılan zoom log('PlayerCameraController instance zoom bulundu.'); overrideAct1(cameraController); window.pwzz.isCameraFound = true; return true; } } } catch (e) { log('PlayerCameraController zoom hatası: ' + e); } } // Genel kamera nesnesi ara let camera = deepSearch(ns, 'camera'); if (camera && typeof camera.zoom === 'number') { window.pwzz.targetCamera = camera; window.pwzz.targetCamera.zoom = window.pwzz.desiredZoom; // Varsayılan zoom log('Genel kamera nesnesi bulundu.'); window.pwzz.isCameraFound = true; return true; } } log('Kamera nesnesi bulunamadı.'); return false; } // act_1 fonksiyonunu override et (sunucu kontrolünü devre dışı bırak) function overrideAct1(cameraController) { try { // Prototip üzerinden override if (cameraController.prototype && cameraController.prototype.act_1) { cameraController.prototype.act_1 = function() { if (this.camera) { this.camera.zoom = window.pwzz.desiredZoom; // Dinamik zoom const snakeView = this.gameView.getPlayerSnakeView(); if (snakeView && this.follow) { this.camera.position_0.set_30(snakeView.getX_0(), snakeView.getY_0(), 0); } log('act_1 override (prototip): Zoom dinamik olarak ayarlandı.'); } }; log('act_1 fonksiyonu (prototip) override edildi.'); } // Instance üzerinden override if (window.pwzz.cameraControllerInstance && window.pwzz.cameraControllerInstance.act_1) { window.pwzz.cameraControllerInstance.act_1 = function() { if (this.camera) { this.camera.zoom = window.pwzz.desiredZoom; // Dinamik zoom const snakeView = this.gameView.getPlayerSnakeView(); if (snakeView && this.follow) { this.camera.position_0.set_30(snakeView.getX_0(), snakeView.getY_0(), 0); } log('act_1 override (instance): Zoom dinamik olarak ayarlandı.'); } }; log('act_1 fonksiyonu (instance) override edildi.'); } } catch (e) { log('act_1 override hatası: ' + e); } } // Zoom seviyesini her 5 ms’de bir sabitle (sunucu sıfırlamasına karşı) function keepZoomFixed() { if (window.pwzz.targetCamera) { const interval = setInterval(() => { if (window.pwzz.targetCamera.zoom !== window.pwzz.desiredZoom) { window.pwzz.targetCamera.zoom = window.pwzz.desiredZoom; log(`Zoom sıfırlanmaya çalışıldı, tekrar ${window.pwzz.desiredZoom}x’e sabitlendi.`); } }, 5); // 5 ms’de bir kontrol log('Sürekli zoom güncelleme aktif (5 ms).'); } } // Havalı mod menüsü oluştur function createModMenu() { // Mevcut bir menü varsa kaldır const existingMenu = document.querySelector('.pwzz-menu'); if (existingMenu) { existingMenu.remove(); log('Eski mod menüsü kaldırıldı.'); } // CSS stilleri const styles = ` .pwzz-menu { position: fixed; top: 20px; right: 20px; background: linear-gradient(135deg, #1e1e2f 0%, #2a2a4e 100%); border: 2px solid #00ffcc; border-radius: 15px; padding: 15px; box-shadow: 0 0 20px rgba(0, 255, 204, 0.5); z-index: 9999; font-family: 'Orbitron', sans-serif; color: #00ffcc; transition: all 0.3s ease; } .pwzz-menu h2 { margin: 0 0 10px 0; font-size: 24px; text-shadow: 0 0 10px #00ffcc; text-align: center; } .pwzz-menu label { display: block; margin-bottom: 5px; font-size: 14px; text-shadow: 0 0 5px #00ffcc; } .pwzz-menu input[type="range"] { width: 100%; -webkit-appearance: none; height: 8px; background: linear-gradient(90deg, #00ffcc 0%, #ff00cc 100%); border-radius: 5px; outline: none; box-shadow: 0 0 10px rgba(0, 255, 204, 0.5); } .pwzz-menu input[type="range"]::-webkit-slider-thumb { -webkit-appearance: none; width: 20px; height: 20px; background: #1e1e2f; border: 2px solid #00ffcc; border-radius: 50%; cursor: pointer; box-shadow: 0 0 10px #00ffcc; } .pwzz-menu .zoom-value { text-align: center; margin-top: 5px; font-size: 12px; text-shadow: 0 0 5px #00ffcc; } `; // Stil elementini ekle const existingStyles = document.querySelector('style[pwzz-styles]'); if (existingStyles) { existingStyles.remove(); } const styleSheet = document.createElement('style'); styleSheet.setAttribute('pwzz-styles', 'true'); styleSheet.type = 'text/css'; styleSheet.innerText = styles; document.head.appendChild(styleSheet); log('Mod menüsü stilleri eklendi.'); // Google Fonts’tan Orbitron fontunu ekle const existingFont = document.querySelector('link[pwzz-font]'); if (!existingFont) { const fontLink = document.createElement('link'); fontLink.setAttribute('pwzz-font', 'true'); fontLink.href = 'https://fonts.googleapis.com/css2?family=Orbitron:wght@400;700&display=swap'; fontLink.rel = 'stylesheet'; document.head.appendChild(fontLink); log('Orbitron fontu eklendi.'); } // Mod menüsü HTML’i const menu = document.createElement('div'); menu.className = 'pwzz-menu'; menu.innerHTML = ` <h2>Pwzz Mod Menu</h2> <label>Zoom Seviyesi (1x - 5x)</label> <input type="range" id="zoomSlider" min="1" max="5" step="0.1" value="2"> <div class="zoom-value">Zoom: 2x</div> `; document.body.appendChild(menu); log('Mod menüsü HTML’i eklendi.'); // Slider olay dinleyicisi const zoomSlider = document.getElementById('zoomSlider'); const zoomValueDisplay = menu.querySelector('.zoom-value'); if (zoomSlider && zoomValueDisplay) { zoomSlider.addEventListener('input', (e) => { const zoomValue = parseFloat(e.target.value); window.pwzz.desiredZoom = zoomValue; // İstenen zoom değerini güncelle if (window.pwzz.targetCamera) { window.pwzz.targetCamera.zoom = zoomValue; log(`Zoom seviyesi slider ile değiştirildi: ${zoomValue}x`); } zoomValueDisplay.textContent = `Zoom: ${zoomValue}x`; }); log('Zoom slider’ı aktif.'); } else { log('Zoom slider veya zoom değeri elementi bulunamadı.'); } } // Ana yürütme let attempts = 0; const maxAttempts = 30; const interval = setInterval(() => { attempts++; log(`Deneme ${attempts}/${maxAttempts}`); if (findCameraOnce()) { log('Zoom başarılı! Pwzz Mod Menüsü yükleniyor...'); createModMenu(); keepZoomFixed(); // Sürekli zoom güncellemesini başlat clearInterval(interval); return; } if (attempts >= maxAttempts) { log('Denemeler bitti, kamera nesnesi bulunamadı.'); clearInterval(interval); } }, 500); })();