Docs /Foltone CCTV/Configuracion
v1.1.0

Configuracion — foltone_cctv

Toda la configuracion se encuentra en el archivo config.lua.

Framework e idioma

Config.Framework = "esx"       -- "esx", "qbcore" o "qbx"
Config.Locale = "en"           -- "en" o "fr"
Config.InteractionType = "ox_target" -- "ox_target", "drawtext" o "marker"
Config.Debug = false
ParametroTipoDescripcion
FrameworkstringFramework del servidor
LocalestringIdioma para notificaciones e interfaz
InteractionTypestringMetodo de interaccion para NPCs y estaciones
DebugbooleanHabilitar mensajes de depuracion en consola

Objetos

Config.TabletItem = "cctv_tablet"
Config.StationItem = "cctv_station"
Config.StationProp = "prop_cctv_unit_01"
ParametroTipoDescripcion
TabletItemstringNombre del objeto de inventario para la tablet
StationItemstringNombre del objeto de inventario para la estacion de monitoreo
StationPropstringModelo de prop de GTA para objetos de estacion fija

Accesorios de tienda

Config.ShopAccessories = {
    {
        id = "tablet",
        item = "cctv_tablet",
        label = "CCTV Tablet",
        image = "tablet.png",
        description = "Portable tablet to check your cameras remotely.",
        specs = { "PORTABLE", "WIRELESS" },
        price = 2000,
    },
    {
        id = "station",
        item = "cctv_station",
        label = "CCTV Monitor",
        image = "station.png",
        description = "Fixed control station to monitor all your cameras.",
        specs = { "HD SCREEN", "MULTI-CAM" },
        price = 5000,
    },
}

Los accesorios se muestran junto a las camaras en la tienda. El objeto de estacion se puede colocar en el mundo usando el objeto.

Tipos de camara

Config.MaxCamerasPerPlayer = 10
Config.PlacementDistance = 8.0
ParametroTipoDescripcion
MaxCamerasPerPlayernumberMaximo de camaras que un jugador puede colocar
PlacementDistancenumberDistancia maxima (metros) para colocar una camara

Estructura del tipo de camara

Cada entrada en Config.CameraTypes define un modelo de camara:

{
    id = "standard",
    item = "cctv_cam_standard",
    label = "Standard",
    image = "standard.png",
    description = "Classic wall camera. Reliable and discreet.",
    specs = { "FOV 70", "ZOOM x4", "60 FPS" },
    prop = "prop_cctv_cam_03a",
    price = 3000,
    wallOffset = 0.0,
    offset = {
        pos = vector3(0.45, 0.37, 0.35),
        pitch = 1.3,
        yaw = -56.3,
        propPitch = 0.0,
        propRoll = 0.0,
        propYaw = 170.0,
    },
    fov = { default = 70.0, min = 25.0, max = 100.0 },
    zoomStep = 5.0,
    rotationSpeed = 2.0,
    maxVertAngle = 60.0,
},
ParametroTipoDescripcion
idstringIdentificador unico (almacenado en la base de datos)
itemstringNombre del objeto de inventario para este tipo de camara
labelstringNombre para mostrar en la interfaz de la tienda
descriptionstringDescripcion mostrada en la interfaz de la tienda
specstableArray de insignias de especificaciones mostradas en la tienda (ej. “FOV 70”)
propstringNombre del modelo de prop de GTA
pricenumberPrecio de compra en la tienda
imagestringNombre del archivo PNG en client/nui/img/ para la visualizacion en tienda
wallOffsetnumberDistancia de offset desde la superficie de la pared
offset.posvector3Offset de posicion de la vista de camara (adelante, izquierda, arriba) relativo al prop
offset.pitchnumberOffset de inclinacion de la vista de camara (grados)
offset.yawnumberOffset de orientacion de la vista de camara (grados)
offset.propPitchnumberCorreccion de rotacion pitch del prop (grados)
offset.propRollnumberCorreccion de rotacion roll del prop (grados)
offset.propYawnumberOffset de rotacion del prop relativo a la direccion de vista de la camara (grados)
fov.defaultnumberCampo de vision predeterminado (grados)
fov.minnumberFOV minimo cuando se acerca el zoom
fov.maxnumberFOV maximo cuando se aleja el zoom
zoomStepnumberCambio de FOV por paso de scroll
rotationSpeednumberSensibilidad del raton para la rotacion de la camara
maxVertAnglenumberAngulo maximo de rotacion vertical (grados)

Tipos de camara predeterminados

IDPropPrecioFOVDescripcion
standardprop_cctv_cam_03a$3,00070Camara clasica de pared
bulletprop_cctv_cam_04b$4,00055Largo alcance con zoom potente
mini_bullethei_prop_bank_cctv_02$3,50055Compacta y discreta
shop_camm24_1_prop_m24_1_carrier_bank_cctv_01$8,00060Camara de tienda con PTZ 360

Calibracion de offsets

Usa el comando de depuracion en el juego para calibrar los offsets de la camara:

/cctv_debug
  1. Acercate a una camara colocada (< 15m)
  2. Ejecuta el comando — entra en la vista de depuracion de la camara
  3. Ajusta con los controles:
    • Raton — offset de inclinacion / orientacion
    • Scroll — rotacion de orientacion del prop
    • Teclas de flecha — offset de posicion (adelante/atras/izquierda/derecha)
    • E / Q — offset de posicion (arriba/abajo)
    • Retroceso — salir e imprimir valores
  4. Copia los valores impresos en Config.CameraTypes[x].offset

Permisos

Config.AllowedJobs = {
    "police",
    "ambulance",
}
ParametroTipoDescripcion
AllowedJobstableEmpleos permitidos para colocar camaras. Tabla vacia = todos pueden colocar

Deteccion de movimiento

Config.MotionDetection = {
    Radius = 15.0,
    Cooldown = 60,
    Default = true,
}
ParametroTipoDescripcion
RadiusnumberRadio de deteccion en metros
CooldownnumberSegundos entre alertas para la misma camara
DefaultbooleanSi las camaras nuevas tienen la deteccion de movimiento activada por defecto

Destruccion

Config.DestructionHits = 3

Config.DestructionWeapons = {
    "WEAPON_CROWBAR",
    "WEAPON_PISTOL",
    -- ...
}
ParametroTipoDescripcion
DestructionHitsnumberNumero de impactos/disparos necesarios para destruir una camara
DestructionWeaponstableLista de hashes de armas que pueden danar camaras

Efectos visuales de la camara

Config.CameraEffect = {
    timecycle = "CAMERA_secuirity",
    strength = 0.6,
    vignette = 1.0,
    grain = 1.0,
    scanline = 1.0,
}
ParametroTipoDescripcion
timecyclestringNombre del modificador timecycle de GTA
strengthnumberIntensidad del timecycle (0.0 = desactivado, 1.0 = maximo)
vignettenumberIntensidad de la vineta de pantalla (0.0 = desactivado, 1.0 = maximo)
grainnumberIntensidad del grano de pelicula (0.0 = desactivado, 1.0 = maximo)
scanlinenumberIntensidad del efecto de linea de escaneo (0.0 = desactivado, 1.0 = maximo)

Timecycles disponibles: CAMERA_secuirity (predeterminado), CAMERA_BW (blanco y negro), NG_filmic08 (cinematico), phone_cam3 (aspecto de webcam).

Capturas

Config.MaxCaptures = 20

Numero maximo de capturas de pantalla guardadas por jugador. Cuando se excede, la captura mas antigua se elimina automaticamente.

Requiere screenshot-basic y set screenshot_basic_allow_fs_write "true" en server.cfg.

PED de la tienda

Config.Ped = {
    model = "s_m_y_ammucity_01",
    scenario = "WORLD_HUMAN_STAND_IMPATIENT",
}
ParametroTipoDescripcion
modelstringNombre del modelo de PED para el vendedor de la tienda
scenariostringEscenario de animacion inactiva del PED

Posiciones de la tienda

Config.ShopPositions = {
    {
        pos = vector3(72.25, -1399.10, 29.38),
        heading = 270.0,
        blip = {
            sprite = 689,
            color = 3,
            scale = 0.7,
            label = "Security Shop",
        },
    },
}
ParametroTipoDescripcion
posvector3Posicion de aparicion del PED
headingnumberDireccion a la que mira el PED
blip.spritenumberID del sprite del blip en el mapa
blip.colornumberID del color del blip en el mapa
blip.scalenumberTamano del blip en el mapa
blip.labelstringTexto de la etiqueta del blip en el mapa

Posiciones de ordenadores

Config.ComputerPositions = {
    {
        pos = vector3(441.81, -982.08, 30.69),
        heading = 0.0,
        label = "computer_label",
    },
}

Terminales de ordenador fijos que abren el panel de camaras (sin prop generado, interaccion basada en zonas).

Posiciones de estaciones

Config.StationPositions = {
    {
        pos = vector3(441.81, -982.08, 30.69),
        heading = 0.0,
    },
}

Estaciones de monitoreo fijas con prop prop_cctv_unit_01 generado. Misma funcionalidad que las tablets.

Interaccion

Config.InteractionDistance = 2.5

Config.Marker = {
    type = 1,
    scale = vector3(1.0, 1.0, 0.5),
    color = { r = 59, g = 130, b = 246, a = 120 },
}
ParametroTipoDescripcion
InteractionDistancenumberDistancia para activar la interaccion (modos drawtext/marker)
Marker.typenumberTipo de marcador de GTA (1 = cilindro)
Marker.scalevector3Dimensiones del marcador
Marker.colortableColor RGBA del marcador

Notificaciones

function ClientNotification(message, type)
    exports['ox_inventory']:Notification(message)
end

Sobrescribe esta funcion en config.lua para usar tu propio sistema de notificaciones. El servidor dispara el evento cliente foltone_cctv:notify que llama a esta funcion.