Courseplay: Unload Me permite a los tractores de descarga de Courseplay seguir, igualar la velocidad y descargar automáticamente sobre la marcha las cosechadoras conducidas manualmente por el jugador.
Características:
Descarga sobre la marcha las cosechadoras conducidas por el jugador sin contratar la IA de Courseplay para la cosechadora.
El tractor de descarga iguala automáticamente la velocidad de la cosechadora y alinea el remolque bajo el tubo de descarga.
Al desplegar el tubo de descarga de la cosechadora, se llama automáticamente al tractor Courseplay inactivo más cercano.
Plegar el tubo actúa como una orden de retirada: el tractor se aleja de forma segura y se marcha.
Empezar a conducir después de llamar al tractor mientras estaba detenido no hará que se quede atrás; perseguirá a la cosechadora y la alcanzará.
Mayús derecha + U: llama manualmente al tractor de descarga más cercano cuando se necesite.
Mayús derecha + I: activa o desactiva la llamada automática anticipada cuando el depósito alcanza el 80 % de capacidad.
Requiere Courseplay para FS25. Autor: exekx GitHub: https://github.com/exekx/FS25_CourseplayPlayerUnload
Problemas / seguimiento de errores: https://github.com/exekx/FS25_CourseplayPlayerUnload/issues
Selección y envío de vehículos de descarga a larga distancia
- Se ha ampliado el radio de búsqueda hasta los 4000 metros para permitir el envío fluido de vehículos de descarga en mapas enormes de tamaño 4x y 16x.
- Se ha añadido un sistema inteligente de puntuación de candidatos para la descarga, priorizando los tractores que ya están dando servicio al campo activo.
- Se ha incorporado la ponderación del nivel de llenado del remolque en la selección del tractor, dando preferencia a los vagones vacíos o parcialmente cargados frente a los remolques casi llenos.
- Se ha añadido soporte para enviar vehículos de descarga que se encuentren en estados de espera (`WAITING_FOR_SOMETHING_TO_DO` e `IDLE`).
Detección de cosechadoras y filtrado de remolques
- Se ha añadido una verificación estricta del objeto cosechadora (`isHarvesterObject`) para evitar asignaciones de falsos positivos.
- Se ha corregido la identificación errónea de remolques y vagones de descarga (sinfín): los carros de grano, remolques de ensilado y cisternas de purín ya no se confunden con cosechadoras.
- Se ha mantenido el soporte especializado para cosechadoras auténticas de raíces y forraje remolcadas, equipadas con unidades de corte y tubos de descarga.
- Se ha añadido la validación de la jerarquía de vehículos portadores e implementos modulares para configuraciones complejas.
Hileras curvas y seguimiento dinámico de trayectoria
- Se ha flexibilizado la tolerancia del ángulo de alineación hasta los 60 grados para evitar que el vehículo de descarga abandone la formación en giros cerrados y límites de campo curvos.
- Se han ampliado las tolerancias de desplazamiento lateral hasta los 6 metros para mantener un seguimiento fluido del vehículo de descarga junto a la máquina en terrenos irregulares.
- Se ha añadido una verificación de proximidad (< 30 m) durante la fase de aproximación antes de cambiar al modo de descarga activa.
- Se ha mejorado el sistema dinámico de objetivo anticipado (*lookahead*) basándose en el rumbo en tiempo real y la trayectoria curva de la cosechadora.
Controles del tubo de descarga y ciclo de vida del vehículo de descarga
- Se ha añadido un seguimiento inteligente para la cancelación por plegado del tubo: ya no se cancelan los tractores en ruta por el campo antes de que lleguen a la máquina.
- Se ha configurado la cancelación para que solo se active tras realizarse la descarga o cuando el tubo se pliega después de haberse abierto para descargar.
- Se ha añadido la liberación automática del vehículo de descarga cuando el jugador abandona una cosechadora de forraje durante más de 20 segundos.
- Se ha garantizado el restablecimiento correcto del estado al marcharse el tractor para evitar bloqueos de asignación obsoletos.
Gestión de giros en cosechadoras de forraje
- Se ha corregido la firma de los argumentos del *hook* para la función `startChopperTurn` de Courseplay, evitando errores en la llamada al método. - Se eliminaron las rutinas de dirección en bucle abierto para suprimir los movimientos erráticos de las ruedas y las sacudidas del tractor durante los giros.
- Se restableció la función de espera ordenada al final de la pasada: los tractores se detienen alineados en el extremo de la hilera, dejando a la cosechadora espacio libre total para maniobrar.
- Se perfeccionó la sincronización fluida de velocidad y el seguimiento dinámico de distancia de seguridad trasera una vez que la cosechadora entra en la nueva hilera.
Estabilidad y prevención de fallos del motor
- Se añadió una rutina de limpieza recursiva para eliminar de las tablas de seguimiento activo aquellos vehículos que hayan sido eliminados, vendidos o reiniciados.
- Se incorporaron comprobaciones de existencia de entidades y validez de nodos (`isValidNode`, `entityExists`) antes de realizar cualquier cálculo espacial.
- Se encapsularon las comprobaciones de evitación de colisiones en llamadas protegidas (`pcall`) para evitar errores de división por cero y fallos críticos por referencias nulas.
- Se añadieron medidas de seguridad para las asignaciones de controles de entrada en casos donde las tablas del vehículo o del emisor no estén inicializadas.
- Espera en la cabecera y despeje del espacio: los tractores de descarga se detienen limpiamente en su sitio al final de la hilera durante las maniobras de giro de la cosechadora, dejando el 100 % de la cabecera completamente libre para que la cosechadora pueda maniobrar sin colisiones ni aglomeraciones.
- Detección avanzada de giros basada en múltiples factores: detecta dinámicamente los giros en cabecera a partir de varios parámetros físicos: estado elevado del cabezal/pick-up (getIsLowered), flujo activo de cultivo a través de las ranuras de alimentación (loadingDelaySlots, isChopperFilling, isDischarging), tope de dirección, velocidad de guiñada y marcha atrás.
- Finalización instantánea del giro y seguimiento fluido: en el momento en que el jugador baja el cabezal sobre la nueva hilera o centra la dirección, el estado de giro termina instantáneamente, sin ningún retraso. El tractor de descarga se reincorpora suavemente a la cosechadora a la velocidad de giro, sin congelarse ni quedar bloqueado en direcciones opuestas.
- Selección del lado de la hilera y del cordón: al recoger hileras con pick-ups, los tractores de descarga mantienen inteligentemente el lado de aproximación o respetan el desplazamiento manual de Courseplay (+X a la izquierda, -X a la derecha).
- Protecciones de seguridad contra los giros de la picadora de Courseplay: intercepta los estados internos de giro de la picadora de Courseplay (startChopperTurn, handleChopper180Turn, handleChopperHeadlandTurn) para garantizar que los tractores de descarga nunca queden atrapados buscando puntos de ruta inexistentes del trabajo de la IA en el campo (curso temporal --/--).
- Protección contra un error del motor de GIANTS: integra un parche del motor que evita la repetición de errores de LUA en la consola (AIVehicleUtil.lua:337: attempt to index nil with 'getAttachedImplements') cuando los tractores de descarga remolcan remolques o aperos sin enganches traseros (p. ej., Krampe SB 30/60).
- Distancia de seguridad detrás de la picadora: los tractores de descarga mantienen una distancia de seguridad de 5 m detrás de la cabina de la picadora, directamente bajo el tubo de descarga.
- Distancia lateral dinámica: la ruta del descargador se adapta ahora dinámicamente a la anchura de cualquier cabezal/cortadora acoplado (desde pequeños cabezales de 4 m hasta enormes cortadoras de 15,2 m o más), garantizando una distancia segura respecto a los cabezales anchos y centrando el remolque directamente bajo el tubo de descarga.
- Corrección del giro en la cabecera: los descargadores siguen exclusivamente una ruta por detrás de la cosechadora, eliminando cualquier riesgo de salir por delante del cabezal durante los giros.
- Recuperación manual instantánea (Shift derecho + U): vuelve a enviar los descargadores ya asignados a la posición actualizada de tu máquina después de los giros en el borde del campo.
- Distancia realista de aproximación trasera: los tractores descargadores mantienen una cómoda distancia de seguridad de 5–7 m detrás del parachoques trasero de la cosechadora durante la aproximación, en lugar de ir demasiado pegados.
- Ajuste del sistema de colisiones: se han corregido las falsas paradas por colisión con la cosechadora del jugador y los cabezales anchos.
- Compatibilidad con el desplazamiento de Courseplay: integración completa con el ajuste del juego de Courseplay «Combine offset X/Z» para realizar ajustes manuales precisos.
- Compatibilidad completa con NEXAT y Modular Carrier (módulo NexCo): Se ha añadido compatibilidad total con portadores de gran anchura con tubos de descarga en el lado derecho. Se han corregido los cálculos del desplazamiento del tubo para que el remolque se alinee directamente debajo de la boca de descarga sin quedarse atrás.
- Anticolisión y aproximación paralela suave: Se han eliminado los giros bruscos hacia la cosechadora. Ahora los vehículos de descarga se aproximan suavemente y de forma estrictamente paralela a la máquina (ángulo máximo de convergencia de 4°), con una distancia de seguridad garantizada respecto a las orugas, las ruedas y la cabina.
- Alineación precisa en parada: Cuando una cosechadora se detiene con el depósito lleno, el vehículo de descarga se coloca con precisión debajo de la boca de descarga y se detiene por completo, sin avanzar lentamente ni desviarse hacia la cosechadora.
- Correcciones de errores y mejoras: Se ha corregido el error de Lua «attempt to call missing method getAIDirectionNode» en vehículos sin especialización de IA. Se ha unificado la arquitectura de los nodos de referencia para garantizar un seguimiento 100 % estable en cosechadoras estándar, picadoras de forraje y aperos acoplados.