Documentación de Blindaje y luces de vehiculos
ov_blindaje
Blindaje de vehiculos con cuatro niveles y personalizacion de luces (neon, xenon y barra RGB/LED) para qb-core, con instalacion por mecanicos, menu /blindar y herramientas para el staff.
Que hace
ov_blindaje anade blindaje a cualquier vehiculo, asociado a su patente, y un menu para que el dueno personalice sus luces.
- Cuatro niveles de blindaje (Basico, Reforzado, Diamante y Full Bling) con vida extra, multiplicador de dano, ruedas antibalas desde el nivel 2 y un numero de impactos de bala que el blindaje absorbe (12, 16, 32 y sin limite). Los impactos se descuentan solo con balas y se recargan cada vez que alguien sube al vehiculo.
- Efectos al subir: el ocupante recibe un escudo antibalas y los vidrios quedan protegidos mientras queden impactos; al agotarse, se rompen los vidrios.
- HUD pequeno con el nivel y los impactos restantes mientras se conduce un vehiculo blindado.
- Instalacion por mecanicos: los trabajos configurados (en servicio y a menos de 6 m del vehiculo) cobran la instalacion de los niveles que tengan precio definido. Por defecto solo el nivel 1 tiene precio; los demas se aplican por staff o por otro recurso mediante exports.
- Luces: neon (encendido, modo y color), xenon (encendido y color) y barra RGB/LED con perfiles, velocidad, mezcla de brillo y dos presets. Solo el conductor dueno del vehiculo puede cambiarlas; se guardan y se restauran solas.
- Menu NUI con pestanas de Blindaje, Luces y Admin (esta ultima solo para el staff), con cabecera con modelo, patente y propietario.
- Herramientas de staff: asignar o quitar blindaje por vehiculo o por patente, y entregar un coche ya blindado a un jugador, conectado o no.
- API de exports para que un portal u otro script aplique un nivel a una patente o consulte el nivel.
- Validacion en el servidor de distancia, trabajo, servicio, dinero y patente; lo que envia el cliente se verifica.
Requisitos
- Servidor FiveM con qb-core, Lua 5.4 y base de datos MySQL o MariaDB con
oxmysql. dependenciesdelfxmanifest.lua:qb-core,ox_lib,oxmysql.- No requiere
ox_inventorypara el blindaje ni para las luces. - Para la funcion de staff "dar un coche blindado" el recurso escribe en la tabla
player_vehiclesde qb-core y busca el garaje de entrega en la tablagarage_locations(jg-advancedgarages), por el nombre deConfig.GarajeEntrega. Si ese garaje no existe, la entrega se rechaza. - Opcional:
0r-vehiclekeys; si esta iniciado, el jugador conectado recibe las llaves del coche entregado.
Instalacion
El recurso viene protegido con Asset Escrow de Cfx.re: se descarga desde el Portal de Cfx.re con la cuenta Cfx.re del comprador y solo funciona en servidores de esa cuenta. Segun su fxmanifest.lua, quedan sin cifrar shared/config.lua, shared/locale.lua y la carpeta web/ (la interfaz). Los archivos shared/constantes.lua y shared/luces_datos.lua no estan en la lista sin cifrar, por lo que no se editan.
- Descarga el recurso desde el Portal de Cfx.re y copia la carpeta
ov_blindajeenresources/. - Base de datos: no hay archivo
.sql. Las tablasov_vehicle_armoryov_vehicle_lightsse crean solas al arrancar. - Agrega en
server.cfg, despues de sus dependencias: ``ensure oxmysql ensure ox_lib ensure qb-core ensure ov_blindaje`` - Concede el permiso de staff (ACE
ov_blindaje.admin; tambien vale el permisocommand): ``add_ace group.admin ov_blindaje.admin allow`El comando de consolablindaje_aplicaresta registrado como restringido: si lo vas a usar desde el juego, concede tambienadd_ace group.admin command.blindaje_aplicar allow`. Desde la consola del servidor funciona siempre. - Revisa
shared/config.lua: la lista de trabajos mecanicos (Config.TrabajosMecanico), el garaje de entrega (Config.GarajeEntrega) y los precios por nivel. - Este recurso no lee convars del
server.cfg. Reinicia el servidor.
Configuracion
Todo lo editable esta en shared/config.lua.
| Clave | Valor por defecto | Para que sirve |
|---|---|---|
Config.TrabajosMecanico | mechanic, mechanic2, mechanic3, beeker, bennys | Trabajos que pueden instalar blindaje (deben estar en servicio). |
Config.TipoDinero | 'cash' | Cuenta de la que se cobra la instalacion. |
Config.GarajeEntrega | 'GARAGE CENTRAL' | Nombre del garaje (tipo car) donde se entregan los coches blindados del staff. |
Config.Niveles[1] | Blindaje Básico, vidaExtra = 140, multDano = 0.78, ruedasAntibalas = false, precio = 25000 | Nivel 1; unico con precio y por tanto instalable en taller. |
Config.Niveles[2] | Blindaje Reforzado, vidaExtra = 380, multDano = 0.52, ruedasAntibalas = true | Sin precio: no se instala en taller. |
Config.Niveles[3] | Blindaje Diamante, vidaExtra = 900, multDano = 0.34, ruedasAntibalas = true | Sin precio. |
Config.Niveles[4] | Blindaje Full Bling, vidaExtra = 1500, multDano = 0.0, ruedasAntibalas = true | Sin precio; inmune al dano. |
Notas:
vidaExtrase suma a la vida base del vehiculo (1000) ymultDanoes el multiplicador del dano recibido (1.0 normal, 0.0 inmune).- Para que un nivel se pueda instalar en taller, agrega
precio = Na ese nivel en el config. - Los impactos por nivel (12, 16, 32 y sin limite), la distancia al taller (6 m) y las esperas estan en
shared/constantes.lua, que va cifrado y no se modifica. - Los colores, modos y presets de las luces estan en
shared/luces_datos.lua(cifrado). Los textos estan enshared/locale.lua.
Comandos y permisos
| Comando | Quien | Efecto |
|---|---|---|
/blindar | Jugadores | Abre el menu del vehiculo en el que estan o que tienen cerca. |
/blindar [nivel] | Jugadores | Abre el menu con ese nivel preseleccionado. |
/blindajeinfo | Jugadores (dentro de un vehiculo) | Muestra un aviso con el nivel, el estado de motor y carroceria y la patente. |
blindaje_aplicar [placa] [nivel 0-4] | Staff / consola | Fija el nivel de blindaje por patente (0 lo quita). Acepta patentes con espacios. |
Permisos: ACE ov_blindaje.admin o command; se comprueban en el servidor en cada accion.
Exports del servidor:
exports['ov_blindaje']:AplicarNivel(destino, placa, nivel, opciones): aplica un nivel a una patente.destinopuede ser un id de jugador, uncitizenid(en ese caso verifica que sea el propietario) onil.opcionesadmitepor(texto de auditoria) yforzar(permite bajar o repetir nivel). Devuelvetrue, 'ok'ofalse, codigo(placa_invalida,nivel_invalido,jugador_no_encontrado,no_es_dueno,ya_tiene,error_bd).exports['ov_blindaje']:ObtenerNivel(placa): devuelve el nivel y los impactos restantes.
Como se usa
- Sube a tu vehiculo, o acercate a menos de 6 m, y escribe
/blindar. - En la pestana Blindaje ves a la izquierda los cuatro niveles y a la derecha el estado de tu vehiculo: nivel instalado, impactos restantes y los datos del nivel seleccionado.
- Un mecanico en servicio puede instalar los niveles con precio: el menu pide confirmacion y cobra la instalacion al mecanico. Si falla el guardado, el dinero se devuelve. No se puede instalar el mismo nivel ni bajar de nivel.
- Quien no es mecanico ve el nivel en modo consulta.
- En la pestana Luces, el dueno que conduce ajusta neon, xenon y barra RGB; se guardan por patente y se restauran al volver a conducir. Los demas ocupantes las ven en solo lectura.
- Con blindaje, al subir se recargan los impactos y se activa el escudo del ocupante. Las balas gastan impactos; choques, caidas y explosiones no.
Para administradores
- Aplicar o quitar blindaje: en la pestana Admin del menu (vehiculo actual, cercano o por patente), o con
blindaje_aplicar [placa] [nivel]. El nivel 0 quita el blindaje. - Entregar un coche blindado: en la pestana Admin indica el jugador (id de servidor o
citizenid, en linea o no), el modelo y el nivel. El vehiculo se inserta enplayer_vehiclescon patente unica en el garaje deConfig.GarajeEntrega; si el blindaje falla, la entrega se deshace. - Cambiar precios o niveles: edita
Config.Nivelesenshared/config.luay reinicia el recurso. - Integrar un portal o tienda: usa el export
AplicarNivelcon elcitizeniddel comprador para que se valide la propiedad de la patente. - Datos: el blindaje esta en
ov_vehicle_armory las luces enov_vehicle_lights, ambas por patente. - Ver errores: consola del servidor (mensajes con el prefijo
[ov_blindaje]) y consola F8.
Preguntas frecuentes
Puedo blindar cualquier vehiculo? Si. El blindaje se asocia a la patente, no al modelo, y se conserva al guardar el coche.
Por que no puedo instalar los niveles 2, 3 o 4 en taller? Porque en la configuracion por defecto solo el nivel 1 tiene precio. Anade precio a los demas niveles si quieres venderlos en taller, o usa el staff o el export.
Las luces no me dejan editarlas. Solo puede cambiarlas el conductor que sea dueno del vehiculo (o un administrador); el resto ve el panel en solo lectura.
El blindaje me protege de choques y explosiones? Reduce el dano segun el nivel, pero los impactos del blindaje solo se gastan con balas.
La entrega de coches del staff falla. Verifica que existe un garaje con el nombre de Config.GarajeEntrega en garage_locations, de tipo car y activo, y que el modelo existe en tu servidor.
Puedo cambiar el numero de impactos por nivel? No; ese valor esta en un archivo cifrado. Sí puedes cambiar vida extra, multiplicador de dano, ruedas antibalas y precio.
Actualizaciones y soporte
Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Antes de actualizar, guarda una copia de shared/config.lua. Para soporte, abre un ticket en el Discord de la tienda: [enlace de soporte]. Indica la version del recurso (1.0.0 en el manifest actual) y el error de la consola.
