Untitled
// Tworzenie menu do gry i ustawienie jego stylu const menu = document.createElement('div'); menu.id = 'gameMenu'; Object.assign(menu.style, { position: 'fixed', top: '50%', // Ustawienie na środek ekranu w pionie right: '10px', // Ustawienie na prawą stronę transform: 'translateY(-50%)', // Przemieszczanie w górę o połowę wysokości menu, żeby wyśrodkować width: '230px', // Szerokość menu padding: '15px', // Większy padding dla lepszego wyglądu background: 'rgba(0, 0, 0, 0.7)', // Trochę ciemniejszy tło, aby było subtelniejsze color: 'white', // Kolor tekstu border: '2px solid #444', // Ciemniejsza ramka dla lepszego kontrastu borderRadius: '12px', // Zaokrąglone rogi fontFamily: 'Arial, sans-serif', // Dodanie alternatywnej czcionki fontSize: '14px', // Rozmiar czcionki boxShadow: '0 4px 8px rgba(0, 0, 0, 0.5)', // Dodanie cienia, by menu wyglądało bardziej elegancko display: 'block' }); document.body.appendChild(menu); // Funkcja do znajdowania gracza o nazwie "raha" function findPlayer() { return a0_0x4cd2c3.find(entity => entity && entity.oType === 2 && entity.nickName === "spermojad") || null; } // Funkcja do znajdowania najbliższego wroga function findClosestEnemy(player) { return a0_0x4cd2c3.reduce((closest, entity) => { if (entity && entity.oType === 2 && entity.nickName !== "raha" && entity.nickName.trim() !== "") { const distance = Math.hypot(entity.ox - player.ox, entity.oy - player.oy); if (distance < (closest.distance || Infinity)) { return { entity, distance }; } } return closest; }, {}).entity || null; } let lockedEnemy = null; // Zmienna przechowująca zablokowanego wroga let isLocked = false; // Zmienna określająca, czy wróg jest zablokowany // Funkcja do aktualizacji menu function updateMenu() { const player = findPlayer(); // Znajdź gracza const enemy = isLocked && lockedEnemy ? lockedEnemy : (player ? findClosestEnemy(player) : null); // Znajdź wroga (jeśli zablokowany, to ten zablokowany) let enemyText = enemy ? `Enemy: ${enemy.nickName}` : 'Enemy: Brak'; // Jeśli wróg jest zablokowany, pokaż go w inny sposób if (isLocked && lockedEnemy) { enemyText = `<span style="color: red; font-weight: bold;">ZABLOKOWANO "${lockedEnemy.nickName}"</span>`; } if (player) { // Aktualizowanie treści menu o pozycję gracza i wroga menu.innerHTML = `<b>Pozycja nasza:</b><br> 🟢 Twój X: ${Math.round(player.ox)} <br> 🟢 Twój Y: ${Math.round(player.oy)} <br> <b>Pozycja wroga:</b><br> 🔴 ${enemyText} <br> 🔴 Enemy X: ${enemy ? Math.round(enemy.ox) : 'Brak'} <br> 🔴 Enemy Y: ${enemy ? Math.round(enemy.oy) : 'Brak'}`; // Jeśli zablokowany wróg zniknął, wyłącz blokadę if (isLocked && lockedEnemy && !a0_0x4cd2c3.includes(lockedEnemy)) { lockedEnemy = null; isLocked = false; } } else { menu.innerHTML = "<b>Brak danych o graczu</b>"; } } setInterval(updateMenu, 50); // Odświeżanie menu co 50ms // Funkcja do przełączania blokady wroga function toggleLock() { const player = findPlayer(); if (!player) return; if (isLocked) { lockedEnemy = null; isLocked = false; } else { const closestEnemy = findClosestEnemy(player); if (closestEnemy) { lockedEnemy = closestEnemy; isLocked = true; } } } // Obsługuje naciśnięcie klawisza "N" do przełączania blokady document.addEventListener('keydown', (event) => { if ((event.key === 'n' || event.key === 'N')) { const player = findPlayer(); if (!player) return; const closestEnemy = findClosestEnemy(player); if (closestEnemy) { toggleLock(); // Zmienianie stanu blokady toggleState = !toggleState; // Zmiana stanu aktywacji śledzenia } } }); let toggleState = false; // Zmienna stanu śledzenia (włączone/wyłączone) // Funkcja do aktualizacji pozycji celu (gracza lub wroga) function a0_0x46e041() { // Sprawdzanie, czy zablokowany wróg nadal istnieje if (isLocked && lockedEnemy && !a0_0x4cd2c3.includes(lockedEnemy)) { lockedEnemy = null; isLocked = false; toggleState = false; } if (a0_0x153da2 || a0_0x54d6b2) { const _0x254dd4 = a0_0x4cd833[a0_0x19bfe7]; if (_0x254dd4) { a0_0x37c8e9 = _0x254dd4['x']; a0_0x4e5c94 = _0x254dd4['y']; } else if (toggleState && a0_0x153da2) { a0_0x4e5c94 -= 10000; } else { return; } } let targetX, targetY; if (toggleState && isLocked && lockedEnemy && a0_0x4cd2c3.includes(lockedEnemy)) { // Jeśli wróg jest zablokowany, śledź jego pozycję targetX = lockedEnemy.ox; targetY = lockedEnemy.oy; } else { // W przeciwnym razie śledź kursor targetX = a0_0x37c8e9; targetY = a0_0x4e5c94; } // Przemieszczanie postaci w stronę celu if (a0_0xd2a4cf() && (a0_0x3f2f7d || a0_0x258499)) { const currentX = toggleState ? a0_0x37c8e9 : a0_0x4bef11; const currentY = toggleState ? a0_0x4e5c94 : a0_0x26fd7e; if (Math.abs(targetX - currentX) > 0.1 || Math.abs(targetY - currentY) > 0.1) { if (toggleState) { a0_0x37c8e9 = targetX; a0_0x4e5c94 = targetY; } else { a0_0x4bef11 = targetX; a0_0x26fd7e = targetY; } const mes = new a0_0xf533a9(a0_0x18962f); mes.writeUInt8(0x5); mes.writeInt16(targetX); mes.writeInt16(targetY); a0_0x23258b(mes); // Wysyłanie danych do serwera gry } } } setInterval(a0_0x46e041, 1); // Aktualizowanie pozycji celu co 1ms setInterval(a0_0x3f427c, 1); // Uruchamianie innej funkcji co 1ms
Leave a Comment