SCRIPT

Documentación de Crimen organizado

ov_crime

Sistema de crimen organizado para qb-core: bandas y mafias con tablet propia, territorio con graffitis, guerras, lavado y extorsion, mercado negro, misiones, garaje, guaridas con muebles, espionaje, redadas y airdrops, mas un panel de administracion.

Que hace

ov_crime convierte a las bandas de tu servidor en organizaciones con herramientas propias. Los miembros las usan desde una tablet (F10) y el staff gestiona el contenido desde un panel de administracion.

Requisitos

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 config.lua y toda la carpeta web/ (la interfaz).

  1. Descarga el recurso desde el Portal de Cfx.re y copia la carpeta ov_crime en resources/.
  2. Base de datos: no hay archivo .sql. Todas las tablas (prefijo ov_, por ejemplo ov_orgs, ov_org_members, ov_turf_zones, ov_wars, ov_market, ov_org_hideout, ov_spy_devices, ov_raids) se crean solas con CREATE TABLE IF NOT EXISTS al arrancar.
  3. Declara los items en ox_inventory. Para los items de espionaje, usa en cada uno el export de cliente del recurso, por ejemplo: ``lua ['spy_cam'] = { label = 'Camara oculta', weight = 500, client = { export = 'ov_crime.useSpyItem' } }, ` El export useSpyItem recibe el item usado y distingue entre spy_cam, spy_motionsensor, spy_gps, spy_cam_terminal, spy_detector y spy_binoculars`.
  4. Agrega en server.cfg, despues de sus dependencias: `` ensure oxmysql ensure ox_lib ensure qb-core ensure ox_inventory ensure ov_crime ``
  5. Define quien administra: por defecto lo son los grupos de Config.Orgs.adminGroups (admin, superadmin, god, owner, developer) segun el grupo del jugador en qb-core, los permisos de qb-core de esos nombres o el ACE command.
  6. Reinicia el servidor. Este recurso no lee convars del server.cfg.
  7. Entra al juego, abre /crimeadmin y crea el contenido base: zonas y puntos de graffiti, puntos de lavado, interiores de guarida, etc. El config trae solo valores iniciales y semillas.

Configuracion

Todo en config.lua. Valores principales:

ClaveValor por defectoPara que sirve
Config.Framework'auto''auto', 'qbcore' o 'esx'.
Config.Orgs.inviteHours48Vigencia de una invitacion.
Config.Orgs.maxRanks10Rangos maximos por organizacion.
Config.Orgs.money / dirtyItem'cash' / 'black_money'Cuenta de dinero limpio y item de dinero sucio.
Config.Orgs.maxTransaction5000000Tope por deposito o retiro de la caja.
Config.Orgs.adminGroupsadmin, superadmin, god, owner, developerGrupos con acceso al panel de administracion.
Config.Turf.sprayItem / removerItemgang_spray_can / gang_spray_removerObjetos para pintar y borrar graffiti.
Config.Turf.sprayTime / removeTime10 / 10Segundos de la accion.
Config.Turf.ownerThreshold51Lealtad necesaria para controlar una zona.
Config.Turf.cleanHours6Horas hasta la limpieza periodica del graffiti.
Config.Turf.levels10 umbrales de XPExperiencia necesaria por nivel de banda.
Config.Wars.enable / durationHourstrue / 24Activa las guerras y su duracion.
Config.Wars.minStake / maxStake5 / 100Apuesta minima y maxima.
Config.Eco.launderfee = 15, maxPerTransaction = 50000, maxVault = 500000Lavado: comision, tope por operacion y por caja.
Config.Eco.racketcooldown = 30, maxPayout = 100000Extorsion.
Config.Eco.marketenable = true, tax = 5, maxListings = 10Mercado negro y su catalogo semilla.
Config.Missionsenabled = true, 14 misionesLista de misiones, cada una con pasos, nivel, XP y pago.
Config.GaragemaxVehicles = 15, sellPercent = 50, recoverFee = 2000Garaje de banda.
Config.HideoutstashSlots = 80, armorySlots = 40, bucketBase = 5000Guarida y su almacenamiento.
Config.FurnituremaxPieces = 80, sellPercent = 50Muebles y catalogo semilla.
Config.Outfits.max20Uniformes por organizacion.
Config.Medicfee = 1500, time = 10Medico clandestino.
Config.Restraintsitem = 'rope', consume = true, cooldown = 4Atar y soltar.
Config.Rivalrycost = 5000, hours = 1, bonusPercent = 50Rivalidades.
Config.Raidsjobs = { police = { minGrade = 2 } }, seizePercent = 50, minutes = 30Redadas y decomiso.
Config.AirdropintervalHours = 2, minPlayers = 3, guards = 6Airdrops.
Config.Spyseis items, camHours = 24, maxCams = 6Espionaje.

Para que los decomisos de una redada se ingresen en la cuenta de una sociedad, el codigo lee Config.Police.society = { resource = '...', account = '...' }; esta clave no viene en el archivo y debes anadirla si la necesitas.

Comandos y permisos

Comando / teclaQuienEfecto
/crimetablet o F10Miembros de una organizacionAbre la tablet de la banda; con la tablet minimizada, vuelve a ella.
/crimeadminAdministradoresAbre la tablet en modo administracion.
/ov_decorar o GMiembros en su guaridaModo de colocar muebles.
/ov_atar o KMiembros (con soga si requireItem)Atar o soltar a un jugador cercano.
/redadaTrabajos de Config.Raids.jobs (policia, grado 2 o mas)Menu de redadas.

Exports de cliente: open(), openAdmin(), close() (abren y cierran la tablet) y useSpyItem(item) (para los items de espionaje).

Exports de servidor: turfDrugSale(source) (cuenta una venta de droga del jugador para su territorio, tareas y guerras) e isTied(source) (indica si el jugador esta atado). Tambien responde al evento de servidor ov_crime:turf:drugSale con el mismo efecto. Conecta tu sistema de venta de droga llamando a exports.ov_crime:turfDrugSale(source) en cada venta.

Permisos: el acceso de administrador se decide en el servidor por grupo de qb-core, permiso de qb-core o ACE command. Los permisos de cada miembro dentro de la banda dependen del rango (el jefe tiene todos).

Como se usa

  1. Un administrador crea las organizaciones desde /crimeadmin (seccion "Organizaciones") y asigna al jefe. El jefe define rangos, permisos e invita a miembros.
  2. Los miembros abren F10. Tienen paneles de principal, tareas diarias, miembros, rangos, caja, vehiculos, garaje, guarida, uniformes, muebles, espionaje, registro, mapa y zonas, guerras, rivalidades, extorsion, mercado negro, misiones, ranking, DarkChat y pase de temporada (los visibles dependen de los permisos del rango).
  3. Graffiti: con una lata en el inventario, el miembro se acerca a un punto de una zona, pinta y gana lealtad; con un removedor borra el de otra banda.
  4. Lavado y extorsion: en los puntos creados por el staff, el miembro cambia dinero sucio por limpio (con comision) o cobra extorsiones.
  5. Misiones: se aceptan desde la tablet y el servidor valida cada paso.
  6. Guerras: una banda desafia a otra desde la pestana "Guerras" con una apuesta; ganan puntos por muertes y ventas de droga durante la duracion.
  7. Guarida: la banda compra un interior, lo amuebla con /ov_decorar y guarda objetos en su almacen y arsenal.
  8. Espionaje: coloca camaras, sensores y GPS con sus items y consulta lo capturado con el terminal.

Para administradores

Preguntas frecuentes

Necesito importar un SQL? No. Las tablas se crean solas al arrancar.

Funciona con ESX? El config incluye un puente (Config.Framework) que detecta qb-core o ESX, pero varias funciones (por ejemplo los vehiculos de banda) consultan tablas de qb-core como player_vehicles, asi que la compatibilidad completa es con qb-core.

Las latas de graffiti no hacen nada. Comprueba que los items gang_spray_can y gang_spray_remover existen en ox_inventory y que el jugador pertenece a una organizacion y esta cerca de un punto de graffiti creado por el staff.

Los items de espionaje no se usan. Cada item debe declararse en ox_inventory con client = { export = 'ov_crime.useSpyItem' }.

Como integro mi sistema de venta de droga? Llama a exports.ov_crime:turfDrugSale(source) desde el servidor cuando se complete una venta.

Puedo cambiar las teclas? F10, G y K son las predeterminadas; el jugador las cambia en Ajustes > Teclas > FiveM.

Actualizaciones y soporte

Las versiones nuevas aparecen en el Portal de Cfx.re y en la tienda. Antes de actualizar, guarda una copia de tu config.lua; los datos creados desde el panel viven en la base de datos. 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.