Skip to main content

Configuration

La configuracion principal esta en:

config/config.lua

Los textos estan en:

locales/es.lua
locales/en.lua

Idioma

Config.Locale = 'es'
Config.FallbackLocale = 'en'
  • Locale selecciona el idioma principal.
  • FallbackLocale se usa cuando falta una traduccion en el idioma principal.

Identificador

Config.IdentifierType = 'license'

Este valor se utiliza en el adaptador standalone para buscar el identificador del jugador.

Con los frameworks integrados se usa el identificador nativo del personaje:

  • QBX: citizenid
  • QBCore: citizenid
  • ESX: identificador proporcionado por xPlayer

Framework

Config.Compatibility = {
framework = 'auto'
}

Valores soportados:

auto
qbx
qbcore
esx
standalone

En auto, el orden real de deteccion es qbxqbcoreesx; si ninguno esta disponible se usa standalone.

Interaccion clasica

Config.UI = {
interactKey = 38,
interactDistance = 1.6,
drawDistance = 25.0
}
  • interactKey: control de FiveM para interactuar. 38 corresponde normalmente a E.
  • interactDistance: distancia maxima para mostrar/usar la interaccion clasica.
  • drawDistance: distancia desde la que se dibujan los markers de sucursales.

ox_target / qb-target

Config.Target = {
system = 'auto',
distance = 2.5
}

Valores de system:

auto
ox_target
qb-target
disabled

auto intenta primero ox_target, despues qb-target. Si no encuentra ninguno, usa la tecla de interaccion.

Con disabled puedes forzar siempre el modo clasico aunque tengas un target iniciado.

distance define la distancia de interaccion de las zonas/modelos creados mediante target.

Nombre del banco

Config.Bank.label = 'Cold Bank'

Se utiliza en la interfaz y como nombre de los blips de las sucursales.

Comision de cajero

Config.Bank.atmWithdrawFeePercent = 0

La comision solo se aplica al retirar dinero desde un ATM.

Ejemplo para cobrar un 2%:

Config.Bank.atmWithdrawFeePercent = 2

Las retiradas realizadas desde una sucursal bancaria no tienen esta comision.

Limites por operacion

Config.Bank.minAmount = 1
Config.Bank.maxDeposit = 500000
Config.Bank.maxWithdraw = 500000
Config.Bank.maxTransfer = 250000
  • minAmount: cantidad minima aceptada.
  • maxDeposit: ingreso maximo por operacion.
  • maxWithdraw: retirada maxima por operacion.
  • maxTransfer: transferencia maxima por operacion.

El servidor vuelve a validar estos limites aunque la NUI sea manipulada.

Historial

Config.Bank.historyLimit = 30

Controla cuantos movimientos recientes carga la interfaz.

Los movimientos se guardan en:

cold_bank_transactions

Tipos registrados:

deposit
withdraw
transfer_out
transfer_in

Anti-spam

Config.Bank.actionCooldownMs = 1200

Es el tiempo minimo, en milisegundos, entre acciones del mismo tipo realizadas por un jugador.

El cooldown se valida en servidor.

Cajeros automaticos

Config.Bank.atmModels = {
`prop_atm_01`,
`prop_atm_02`,
`prop_atm_03`,
`prop_fleeca_atm`
}

Config.Bank.atmDetectRadius = 20.0

atmModels contiene los modelos de ATM que el recurso puede detectar en el mapa.

Puedes añadir otros props compatibles usando su hash/modelo.

atmDetectRadius controla el radio usado por el modo clasico para buscar un cajero cercano.

Sucursales bancarias

Config.Bank.branches = {
{
coords = vector3(149.4, -1040.4, 29.37),
heading = 20.0,
label = 'Banco Fleeca - Legion Square'
}
}

Cada sucursal necesita:

  • coords: posicion de interaccion.
  • heading: orientacion usada por la zona de target.
  • label: nombre descriptivo del punto.

Puedes añadir o eliminar sucursales de esta tabla.

Las sucursales permiten:

  • Ingresar efectivo.
  • Retirar sin comision de ATM.
  • Realizar transferencias.

Transferencias

El destinatario se puede introducir como:

ID de servidor

O como numero de cuenta:

CB000123

Consideraciones importantes:

  • Solo se pueden hacer transferencias desde una sucursal.
  • El destinatario debe estar conectado.
  • No puedes transferirte dinero a ti mismo.
  • La transferencia se descuenta/abona usando la economia real del framework activo.
  • Se registra un transfer_out para el emisor y un transfer_in para el receptor.

Los numeros de cuenta se generan automaticamente cuando se crea la cuenta de cold_bank:

CB000001
CB000002
...

Blips de sucursales

Config.Bank.branchBlip = {
enabled = true,
sprite = 108,
color = 2,
scale = 0.85,
category = 10
}
  • enabled: muestra u oculta los blips.
  • sprite: icono de FiveM/GTA.
  • color: color del blip.
  • scale: tamaño.
  • category: categoria usada para agrupar las sucursales en la lista del mapa.

Todas las sucursales usan Config.Bank.label como nombre del blip.

Marker

Config.Bank.markerColor = {
r = 184,
g = 255,
b = 42,
a = 120
}

Controla el color del marker dibujado en las sucursales.

Seguridad de proximidad

cold_bank no confia solo en que el cliente diga que esta delante de un banco.

Al abrir una sesion:

  • El servidor consulta la posicion real del ped.
  • Las sucursales se validan contra Config.Bank.branches.
  • La sesion expira si deja de utilizarse.
  • La proximidad se vuelve a comprobar en cada ingreso, retirada o transferencia.
  • Si el jugador se aleja mientras la UI esta abierta, el cliente la cierra y el servidor rechazaria igualmente la operacion.

La duracion interna de la sesion se renueva mientras el jugador sigue operando y permanece cerca del punto valido.

Base de datos

cold_bank_accounts

Guarda la identidad auxiliar de cold_bank:

  • identifier
  • character_name
  • account_number
  • cash_balance
  • bank_balance

Los campos cash_balance y bank_balance se usan como economia principal solo en modo standalone. Con QBX/QBCore/ESX, el saldo real se obtiene del framework.

cold_bank_transactions

Guarda el historial:

  • Tipo de movimiento.
  • Cantidad.
  • Saldo posterior.
  • Identificador/nombre de contraparte cuando corresponde.
  • Fecha de creacion.

Export para otros recursos

Export cliente:

exports['cold_bank']:OpenBank()

El export abre cold_bank en contexto ATM en la posicion actual del jugador. Es util para integrar una interaccion personalizada, pero las reglas de cajero siguen aplicandose: comision ATM y sin transferencias.