SCRIPT

Documentación de Transporte de vehículos

OV Transporte de Vehículos

Sistema universal para cargar motos y vehículos en pickups, grúas, plataformas (flatbed) y rollbacks, con ajuste de posición en pantalla y offsets que se guardan por combinación de vehículos.

Que hace

OV Transporte de Vehículos permite a un jugador subir un vehículo (carga) sobre otro vehículo transportador y bajarlo después.

El producto se basa en un sistema de un vehículo por transportador (maxAttached = 1).

Requisitos

Dependencias declaradas en el fxmanifest.lua:

Otros datos:

Instalacion

  1. Descarga el recurso desde el Portal de Cfx.re con la cuenta Cfx con la que lo compraste. Viene protegido con Asset Escrow de Cfx.re y funciona solo en servidores de tu cuenta.
  2. Copia la carpeta ov_vehicletransport en resources.
  3. Añade en server.cfg, después de qb-core y ox_lib:
   ensure ox_lib
   ensure qb-core
   ensure ov_vehicletransport
  1. Si algún transportador de tu servidor es un vehículo personalizado, añade su modelo en config.lua (ver "Configuración").
  2. Reinicia el servidor. En la consola verás cuántos offsets personalizados se han cargado.

Protección y edición: según el fxmanifest.lua, solo config.lua queda sin cifrar (escrow_ignore). El resto del código está cifrado, por lo que toda la personalización se hace desde config.lua. El archivo data/offsets.json lo escribe el propio recurso al guardar offsets. No hay interfaz web, no requiere base de datos, no lee convars de server.cfg y no usa permisos ACE.

Configuracion

Se edita en config.lua.

ClaveValor por defectoPara qué sirve
Config.DebugfalseMuestra información de depuración en consola.
Config.CarrierSearchRadius15.0Radio para encontrar el transportador desde el jugador.
Config.CargoSearchRadius18.0Radio para encontrar la carga desde el transportador.
Config.NetworkControlTimeout8000Milisegundos máximos para obtener el control de red de un vehículo.
Config.Keysconfirm = 'e', cancel = 'x' (también gizmoDone = 'e', saveOffset = 'g')Teclas registradas como "key mapping" que el jugador puede reasignar en los ajustes de FiveM.
Config.NotifyDriver"qb""qb" usa las notificaciones de QBCore; "chat" usa el chat.
Config.Permissions.enabledfalseSi es true, se exige trabajo o ítem para usar el sistema.
Config.Permissions.allowedJobs{ "mechanic", "police" }Trabajos que pueden usarlo.
Config.Permissions.requireItem / itemfalse / "tow_strap"Permite el uso a quien tenga el ítem indicado.
Config.CarrierTypespickup, flatbed, towtruck, rollbackTipos de transportador: label, models, allowedCargoClasses, allowedCargoModels, maxAttached, defaultOffset, boneToAttach y dropOffset.
Config.CarrierTypes.pickup.allowedCargoClassesmotorcycle, bicycle, quadQué admite una pickup.
Config.CarrierTypes.flatbed.allowedCargoClassescar, motorcycle, van, utility, emergencyQué admite una plataforma.
Config.CarrierTypes.towtruck.allowedCargoClassescar, motorcycle, van, utilityQué admite una grúa.
Config.CarrierTypes.rollback.modelsvacíoLista de modelos de rollback; añade los de tu servidor.
Config.ClassMappingtabla clase del juego a categoríaCómo se clasifica cada clase de vehículo.
Config.QuadModelsblazer, sanchez, manchez y variantesModelos tratados como quad.
Config.CargoModelOverridesvacíoFuerza la categoría de un modelo concreto (["modelo"] = "motorcycle").
Config.DefaultOffsetsvacíoPosiciones predefinidas por combinación. La clave es modeloTransportador_modeloCarga en minúsculas.
Config.UseCustomOffsetstrueUsa los offsets guardados en data/offsets.json (tienen prioridad sobre DefaultOffsets).

Cada offset tiene seis valores: x, y, z (posición) y rx, ry, rz (rotación).

Ejemplo para añadir un modelo propio:

Config.CarrierTypes.flatbed.models = {
    "flatbed", "flatbed2", "flatbed5",
    "mi_plataforma",
}

Comandos y permisos

ComandoQué hace
/transportarvehDetecta transportador y carga. Si el jugador conduce un transportador con carga, la descarga.
/cargarmotoAlias de /transportarveh.
/cargarcarroAlias de /transportarveh.
/descargarvehDescarga el vehículo del transportador que conduce o al que apunta.
/transportdiagEscribe en la consola del cliente (F8) un diagnóstico: vehículo al que apuntas, si es transportador y los vehículos cercanos.

Teclas durante el flujo de carga (el ajuste de posición usa estas teclas fijas):

AcciónTecla
Mover adelante / atrás del transportadorFlechas izquierda y derecha
Subir / bajarFlechas arriba y abajo
Mover a los ladosQ (izquierda) y el control 82 del juego, la coma por defecto (derecha)
RotarRueda del ratón
Movimiento finoMantener Shift
ConfirmarE
CancelarX o Esc
Guardar el offset para esta combinaciónG

Las teclas de confirmar y cancelar de la pantalla final son reasignables por el jugador en los ajustes de FiveM.

Permisos: no usa ACE. Con Config.Permissions.enabled = true se exige tener uno de los trabajos de allowedJobs o, si requireItem = true, poseer el ítem (ver "Requisitos").

Exports:

Como se usa

Cargar un vehículo

  1. Ponte cerca de un transportador (pickup, plataforma, grúa o rollback) y del vehículo a cargar.
  2. Ejecuta /transportarveh.
  3. Apunta con la mira al transportador: se resalta y se muestra su tipo. Pulsa E para elegirlo (Retroceso o Esc cancelan).
  4. Apunta al vehículo que quieres cargar: se resalta y se muestra su categoría. Pulsa E para elegirlo.
  5. Ajusta la posición con el teclado (ver tabla de teclas). Pulsa E para continuar.
  6. En la pantalla de confirmación, pulsa E para confirmar o X para cancelar.
  7. Opcional: pulsa G durante el ajuste para guardar la posición para esa combinación de vehículos.

Descargar

Para administradores

Preguntas frecuentes

¿Puedo cargar más de un vehículo por transportador? No: maxAttached es 1 por defecto y el recurso está pensado para un vehículo por transportador.

¿Funciona con vehículos personalizados? Sí. Añade el modelo del transportador a Config.CarrierTypes; la carga se clasifica por su clase del juego (o con Config.CargoModelOverrides).

¿Los offsets se guardan por vehículo o en general? Por combinación de modelo de transportador y modelo de carga, y se comparten con todos los jugadores.

¿Necesito ox_inventory o una base de datos? No. Solo qb-core y ox_lib. Solo la opción de exigir un ítem depende del inventario (ver "Requisitos").

"Transportador no válido" al cargar. El modelo no está en Config.CarrierTypes. Añádelo al tipo adecuado.

"No se pudo obtener control de red". Otro script tiene control del vehículo. Aleja el vehículo de la zona o reinícialo.

Actualizaciones y soporte

Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Conserva tu config.lua y data/offsets.json al actualizar. Para soporte, usa el Discord de la tienda: [enlace de soporte].