SCRIPT

Documentación de Búnkeres con rocas cósmicas

OV Búnkeres

Búnkeres privados para bandas y dueños individuales, con interior propio, almacén y rocas cósmicas minables. Incluye ov_rocas, el pack de modelos 3D de las rocas.

Que hace

OV Búnkeres añade al mapa 11 búnkeres (en la configuración por defecto) con su icono en el mapa. Cada búnker tiene un interior aislado: al entrar, el jugador pasa a un "mundo" propio (routing bucket), de modo que solo ven lo que ocurre allí dentro quienes están en ese mismo búnker.

Características principales:

ov_rocas es un recurso de modelos: contiene 3 formas de roca en 3 etapas, más el modelo de escombros, en un único archivo de definición de props (ovr_props.ytyp) y su textura. ov_bunkers lo declara como dependencia.

Requisitos

Dependencias declaradas en el fxmanifest.lua de ov_bunkers:

Además, el código usa:

Otros requisitos:

Instalacion

  1. Descarga los recursos desde el Portal de Cfx.re con la cuenta Cfx con la que compraste el producto. Ambos (ov_bunkers y ov_rocas) vienen protegidos con Asset Escrow de Cfx.re y funcionan únicamente en servidores asociados a tu cuenta.
  2. Copia las carpetas ov_bunkers y ov_rocas dentro de la carpeta resources de tu servidor.
  3. Comprueba que tienes instalados bob74_ipl, ox_lib, oxmysql, ox_inventory y qb-core, y que los ítems del botín existen en ox_inventory.
  4. Añade en tu server.cfg, después de las dependencias:
   ensure bob74_ipl
   ensure ox_lib
   ensure oxmysql
   ensure ox_inventory
   ensure ov_rocas
   ensure ov_bunkers
  1. Concede el permiso ACE a tus administradores (ver sección "Comandos y permisos"):
   add_ace group.admin command.bunkeradmin allow
  1. Base de datos: no hay archivo .sql. Al iniciar, el recurso crea la tabla ov_bunkers por sí solo (CREATE TABLE IF NOT EXISTS) y añade una fila por cada búnker definido en la configuración.
  2. Reinicia el servidor y comprueba en la consola el mensaje [ov_bunkers] N bunkeres cargados.

Protección y edición: el fxmanifest declara como archivos sin cifrar (escrow_ignore) shared/config.lua y toda la carpeta html/ (la interfaz web). El resto del código (cliente y servidor) está cifrado. ov_rocas es solo de modelos y no contiene código. El recurso no lee ninguna convar de server.cfg.

Configuracion

Todo se edita en shared/config.lua.

ClaveValor por defectoPara qué sirve
Config.Bunkers11 búnkeresLista de búnkeres: id, name, coords (entrada), heading, exitVehicle y exitHeading (donde reaparece el vehículo al salir) y hideBlip opcional.
Config.Interiorcoordenadas del interiorPuntos de aparición a pie y en vehículo dentro y puerta de salida (pedSpawn, vehicleSpawn, exitDoor).
Config.InteractRadius15.0Distancia a la que aparece el aviso de entrada.
Config.BucketBase10000Número base del routing bucket; el búnker N usa BucketBase + N.
Config.DefaultSetupstyle = "default", tier = "upgrade", security = "upgrade"Variante del interior que se carga.
Config.Blipsprite 556, escala 0.85, color propio 5, color cerrado 3, etiqueta "Búnker"Aspecto de los iconos del mapa.
Config.AdminAce'command.bunkeradmin'Permiso ACE que da acceso a comandos y panel de administración.
Config.Stashradio 1.5, slots = 500, weight = 8000000Punto y capacidad del almacén.
Config.MiningPoints13 posicionesLugares del interior donde aparecen las rocas.
Config.RocaModelos / Config.RocaRestoovr_roca_a/b/c_0..2 y ovr_roca_restoModelos de cada forma y etapa, y de los escombros.
Config.MiningDropsiron 28, metalscrap 26, steel 24, rubber 14, plastic 8Botín: item, chance (peso de la tirada) y qty = { mín, máx }.
Config.Mining.hitsToBreak5Golpes necesarios para romper una roca.
Config.Mining.respawnTime90000Milisegundos hasta que la roca vuelve a crecer.
Config.Mining.hitCooldownMs800Tiempo mínimo entre golpes de un mismo jugador.
Config.Mining.interactRadius2.6Distancia para poder picar una roca.
Config.Mining.maxDistance7.0Distancia máxima que valida el servidor al recibir un golpe.
Config.Luzcolor, rango, intensidad y distanciaBrillo de las rocas.
Config.Particulasefectos del juegoPartículas de chispas, descarga, escombro, polvo, etc.
Config.DebugfalseModo de depuración.

Nota: las probabilidades de MiningDrops se evalúan como una tirada de 1 a 100 acumulada. Si cambias los valores, procura que sumen 100.

Comandos y permisos

Permiso ACE (configurable en Config.AdminAce): command.bunkeradmin.

ComandoQuiénQué hace
/bunkeradminAdminAbre el panel de administración.
/bunkerlistAdmin o consolaLista los búnkeres con dueño, banda y código.
/bunkerassign [id] [citizenid] [banda opcional]Admin o consolaEntrega un búnker y genera un código nuevo.
/bunkerrelease [id]Admin o consolaLibera el búnker: queda cerrado y sin dueño, aliados ni código.
/bunkerreloadAdmin o consolaRecarga los búnkeres desde la base de datos.
/bunkerrocas [id]Admin o consolaRestaura todas las rocas (sin id, usa el búnker en el que estás).

Teclas del jugador (control del juego, no configurables como mapeo de teclas): E para entrar, salir, abrir el almacén o picar; F para introducir el código cuando se tiene.

Exports del servidor, útiles para otros scripts:

Como se usa

Entrar a un búnker

  1. Acércate a la entrada (hay icono en el mapa; el tuyo se distingue por color).
  2. Aparece un panel con el nombre y el estado del búnker.
  3. Si tienes acceso, pulsa E para entrar. Puedes hacerlo a pie o como conductor de un vehículo.
  4. Si no tienes acceso pero el búnker tiene código, pulsa F, escribe el código y confirma.

Dentro del búnker

Para administradores

Asignar un búnker

  1. Ejecuta /bunkeradmin para abrir el panel, o usa /bunkerassign [id] [citizenid] [banda].
  2. Indica el ciudadano (citizenid) y, si quieres, el nombre de la banda (solo letras minúsculas, números y guion bajo). Al asignar se genera un código de 6 caracteres.
  3. Si el dueño está conectado, recibe un aviso con el código; si no, se le muestra al conectarse (mientras el servidor no se reinicie).

Desde el panel puedes también regenerar el código (los jugadores que lo habían usado pierden el acceso), liberar el búnker, añadir o quitar aliados por citizenid, restaurar las rocas y teletransportarte a la entrada.

Búnker cerrado: un búnker sin dueño ni banda solo permite el paso a administradores.

Añadir o cambiar posiciones: edita Config.Bunkers y Config.MiningPoints y reinicia el recurso. Las filas nuevas se insertan solas en la base de datos.

Ver errores: revisa la consola del servidor y la del cliente (F8). El recurso imprime en la consola cuando asignas, regeneras o liberas un búnker.

Preguntas frecuentes

¿Funciona con otro inventario distinto de ox_inventory? No. El almacén y el botín usan exports de ox_inventory.

¿Funciona sin qb-core? No, usa qb-core para identificar al jugador, su citizenid y su banda.

¿Necesito importar un archivo SQL? No. La tabla ov_bunkers se crea automáticamente al iniciar el recurso.

¿Cómo cambio cuántos golpes hacen falta o cuánto tardan en reaparecer las rocas? En shared/config.lua: Config.Mining.hitsToBreak y Config.Mining.respawnTime.

¿Cómo cambio el botín? Edita Config.MiningDrops con ítems que existan en tu ox_inventory.

El interior no carga. Comprueba que bob74_ipl está iniciado antes que ov_bunkers. Si no expone el objeto del búnker, la consola lo indica.

¿Puedo mover o añadir búnkeres? Sí, editando Config.Bunkers.

Actualizaciones y soporte

Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Al actualizar, conserva tu shared/config.lua y tus datos: la tabla ov_bunkers no se modifica. Para soporte, usa el Discord de la tienda: [enlace de soporte].