Aircraft Company Garage es el recurso de HJDCZY para hangares de compañía y flota limitada, publicado originalmente para el servidor de vuelo CNAT. El repositorio original es HJDCZY/fivem-airport_company_garage. El código revisado en el commit 5cb950464ce8e0ebba8258ac43c73513caed8d54 declara la versión 1.0.0. RPCrate no creó este script; la anterior afirmación de autoría en primera persona era incorrecta.
Prepara las dependencias antiguas y las filas de la base de datos
El manifiesto importa es_extended, mysql-async, menuv y PolyZone. Los dos archivos Lua principales usan el evento antiguo esx:getSharedObject; adapta la integración a tu versión ESX. Mantén el recurso directamente en resources, ya que el registro en archivo construye esa ruta. garage.sql selecciona una base llamada es_extended antes de crear aircraft_company_garage y aircraft_company; comprueba el destino y respalda una base de prueba antes de importar. Añade expresamente aeronaves de compañía y coordenadas de las cuatro esquinas del hangar. school.sql inserta aeronaves de ejemplo, no una configuración de producción completa.
Corrige el acceso de compañía y las reservas de flota
Varios manejadores del servidor aceptan compañía, ID del jugador de destino, matrícula o modelo del cliente sin vincular la petición al trabajo y hangar actuales del solicitante. Los cambios de estado no reservan de forma atómica una aeronave disponible de esa compañía. Valida solicitante, compañía configurada, posición en el servidor, vehículo y disponibilidad antes de modificar el estado o responder a la creación. El bloqueo compartido del menú y su tiempo de espera también requieren revisión: las funciones de tiempo usan otra variable menuinuse distinta del bloqueo local declarado después. Prueba peticiones simultáneas y desconexiones para que un menú bloqueado no bloquee todas las compañías.
Comprueba los controles y el estado guardado
Los atajos revisados usan F6 para abrir y F3 para el comando de guardar cs; los jugadores pueden cambiarlos. config.lua está vacío y el manifiesto no lo carga. La configuración se realiza principalmente en SQL y Lua. La columna damage no es una función completa de persistencia de daños. Prueba disponibilidad de flota, devolución, cambios de trabajo, reconexiones, modelos y representación del estado en la base de datos. Esta es una revisión concreta del código, no un paquete reparado ni una certificación en juego.