maca client cryzen.io 1.5 aimbot+FLYHACK

W rizz

// ==UserScript==
// @name         maca client cryzen.io 1.5 aimbot+FLYHACK
// @namespace    http://tampermonkey.net/
// @version      1.6
// @description  W rizz
// @author       You
// @match        https://cryzen.io/
// @icon         none
// @grant        none
// @license MIT
// ==/UserScript==

(function () {
    Object.defineProperty(Object.prototype, 'gameState', {
        set(state) {
            window._debugWorld = state;
            let isRightClickHeld = false;
            let closestEnemy = null;

            // Volo
            let flying = false;  // Stato del volo
            let targetHeight = 0;  // Altezza target durante il volo
            let verticalVelocity = 0;  // Velocità verticale
            const ascentSpeed = 1;  // Velocità di salita
            const descentSpeed = -1;  // Velocità di discesa
            const stopSpeed = 0;  // Velocità di stop
            const heightIncrement = 11;  // Incremento dell'altezza quando il volo è attivato

            // Interval to check for game state updates
            const gameWorldInterval = setInterval(() => {
                const { gameWorld } = window._debugWorld;
                if (gameWorld && gameWorld.server) {
                    clearInterval(gameWorldInterval);

                    const player = gameWorld.player;
                    const serverPlayers = gameWorld.server.players;

                    const calculateDistance = (playerPos, enemyPos) =>
                        Math.hypot(enemyPos.x - playerPos.x, enemyPos.y - playerPos.y, enemyPos.z - playerPos.z);

                    const updatePlayerRotationAndPosition = () => {
                        let closestDistance = Infinity;

                        // Reset closest enemy if they are dead
                        if (closestEnemy?.dead) closestEnemy = null;

                        // Find the closest enemy
                        Object.values(serverPlayers).forEach(enemy => {
                            if (enemy?.model?.position && enemy.isEnemy && !enemy.dead) {
                                const distance = calculateDistance(player.position, enemy.model.position);
                                if (distance < closestDistance) {
                                    closestDistance = distance;
                                    closestEnemy = enemy;
                                }
                            }
                        });

                        // Update player rotation and movement if scoped or right-click held
                        if (isRightClickHeld || player.weapon?.scoping) {
                            if (closestEnemy) {
                                const directionToEnemy = {
                                    x: closestEnemy.model.position.x - player.position.x,
                                    z: closestEnemy.model.position.z - player.position.z,
                                };

                                const rotationY = Math.atan2(directionToEnemy.x, directionToEnemy.z);
                                const verticalDistance = (closestEnemy.model.position.y + (closestEnemy.crouching ? 0.55 : 0.65)) - player.position.y;
                                const horizontalDistance = Math.hypot(directionToEnemy.x, directionToEnemy.z);
                                let rotationX = Math.atan2(verticalDistance, horizontalDistance);

                                // Constrain vertical rotation
                                rotationX = Math.max(Math.min(rotationX, Math.PI / 2), -Math.PI / 2);
                                const normalizedRotationY = (rotationY + Math.PI) % (2 * Math.PI);

                                // Apply rotations to player (without modifying materials)
                                player.rotation.y = normalizedRotationY;
                                player.rotation.x = rotationX;

                                // Move the player closer if too far from the enemy
                                const moveSpeed = 0.1;
                                const movement = { x: closestEnemy.model.position.x - player.position.x, z: closestEnemy.model.position.z - player.position.z };
                                const distanceToEnemy = Math.hypot(movement.x, movement.z);
                                if (distanceToEnemy > 1) {
                                    player.position.x += movement.x / distanceToEnemy * moveSpeed;
                                    player.position.z += movement.z / distanceToEnemy * moveSpeed;
                                }
                            }
                        }
                    };

                    // Event listeners for right-click hold
                    const onRightClickDown = (event) => { if (event.button === 2) isRightClickHeld = true; };
                    const onRightClickUp = (event) => { if (event.button === 2) isRightClickHeld = false; };

                    document.addEventListener('mousedown', onRightClickDown);
                    document.addEventListener('mouseup', onRightClickUp);

                    // Ascolta l'input da "F" per attivare/disattivare il volo
                    document.addEventListener('keydown', (event) => {
                        if (event.code === 'KeyF') {
                            flying = !flying;  // Inverti lo stato del volo

                            if (flying) {
                                // Ogni volta che premi "F", aggiungi 1100 unità all'altezza target
                                targetHeight = player.position.y + heightIncrement;
                                verticalVelocity = 0;  // Mantieni la velocità verticale a 0 quando sei in volo
                            } else {
                                verticalVelocity = 0;  // Fermati quando il volo è disattivato
                            }
                        }
                    });

                    // Funzione per aggiornare la posizione del giocatore
                    const updatePlayer = () => {
                        if (flying) {
                            // Se il volo è attivato, mantieni la posizione del giocatore
                            player.position.y = targetHeight;
                        }
                    };

                    setInterval(updatePlayer, 10); // Esegui l'aggiornamento ogni 10ms

                    // Start the update loop for rotation and movement (without modifying any rendering properties)
                    setInterval(updatePlayerRotationAndPosition, 2); // Update every 2ms
                }
            });
        },
        get() { return window._debugWorld; }
    });
})();