Florr.io Auto-Evade Script

Script para esquivar automáticamente entidades dañinas en Florr.io con fines de desarrollo y pruebas internas.

作者
wdfie jiiooijio
日安装量
1
总安装量
26
评分
0 0 0
版本
1.0
创建于
2025-01-28
更新于
2025-01-28
大小
2.8 KB
许可证
暂无
适用于

// ==UserScript==
// @name Florr.io Auto-Evade Script
// @namespace http://florr.io/dev-tools/
// @version 1.0
// @description Script para esquivar automáticamente entidades dañinas en Florr.io con fines de desarrollo y pruebas internas.
// @author Desarrollador del Juego
// @match https://florr.io/
// @grant none
// ==/UserScript==

(function () {
'use strict';

const EVASION_DISTANCE = 150; // Distancia mínima para esquivar entidades peligrosas.
const CHECK_INTERVAL = 50; // Tiempo en ms entre cada chequeo de entidades.

/**
* Función principal para detectar y esquivar entidades dañinas.
*/
function autoEvade() {
const player = getPlayer();
const entities = getEntities();

if (!player) {
console.warn('No se detectó al jugador.');
return;
}

if (entities.length === 0) {
console.log('No hay entidades cercanas.');
return;
}

entities.forEach(entity => {
if (isDangerous(entity) && getDistance(player, entity) < EVASION_DISTANCE) {
console.log(`Esquivando entidad peligrosa en (${entity.x}, ${entity.y})`);
evadeEntity(player, entity);
}
});
}

/**
* Obtiene la posición del jugador.
*/
function getPlayer() {
return window.gameState?.player || null; // Ajustar según la estructura real del juego.
}

/**
* Obtiene todas las entidades presentes en el mapa.
*/
function getEntities() {
return window.gameState?.entities || []; // Ajustar según la estructura real del juego.
}

/**
* Determina si una entidad es peligrosa.
*/
function isDangerous(entity) {
return entity.type === 'enemy'; // Ajustar según los tipos reales de entidades.
}

/**
* Calcula la distancia entre el jugador y una entidad.
*/
function getDistance(a, b) {
return Math.sqrt((a.x - b.x) ** 2 + (a.y - b.y) ** 2);
}

/**
* Lógica para esquivar una entidad peligrosa.
*/
function evadeEntity(player, entity) {
const dx = player.x - entity.x;
const dy = player.y - entity.y;

const angle = Math.atan2(dy, dx);
const newX = player.x + Math.cos(angle) * EVASION_DISTANCE;
const newY = player.y + Math.sin(angle) * EVASION_DISTANCE;

movePlayer(newX, newY);
}

/**
* Mueve al jugador a una nueva posición.
*/
function movePlayer(x, y) {
if (window.sendInput) {
window.sendInput('move', { x, y });
} else {
console.error('La función de movimiento no está disponible.');
}
}

// Ejecuta la función autoEvade en intervalos definidos.
setInterval(autoEvade, CHECK_INTERVAL);
})();