Configuración
La configuración se reparte en cinco archivos abiertos dentro de config/:
| Archivo | Qué contiene |
main.lua | Idioma, páginas activadas o no, IBAN, efectivo, tarjetas y PIN, cuentas de empresa, de banda y compartidas, transferencias programadas, /givecash, atracos a bancos |
locations.lua | Bancos, banqueros, voces y diálogo, cajeros, target, sonidos, HUD |
economy.lua | Costes, comisión de transferencia, importe máximo, ahorros, préstamos, webhook de Discord |
billing.lua | Facturas |
compat.lua | Scripts escritos para otros bancos, y la importación de cuentas |
En los archivos, cada clave se escribe C.Nombre (por ejemplo C.Locale = 'en'). Esta página las escribe Config.Nombre. Los importes son números enteros.
Tu servidor, tus reglas. Los cinco archivos de
config/,
locales/ y las imágenes del inventario no están cifrados: puedes cambiar el idioma y la moneda, el formato del IBAN, las tarjetas y el PIN, las comisiones y los precios, los ahorros, los préstamos y la puntuación de crédito, las facturas, las cuentas de empresa, de banda y compartidas, los bancos y sus banqueros, las voces, los blips, los modelos de cajero, el target o el aviso, los sonidos, los comandos y la compatibilidad. Con hz_lib, 48 de estos ajustes también se cambian en el juego desde
/hzpanel, sin reiniciar.
General
| Clave | Por defecto | Descripción |
Config.Locale | 'en' | Idioma de la app, del diálogo y de los mensajes: un nombre de archivo de locales/. Vienen en y fr. nil usa la convar hz_locale. |
Config.Currency | '$' | Símbolo de moneda que muestra la app. |
Config.Features | savings, bills, loans todos en true | Activa o desactiva las páginas Savings (ahorros), Bills (facturas) y Loans (préstamos). Desactivada: la página sale del menú y el servidor rechaza sus operaciones. No se borra nada. |
Config.RateLimits | ver archivo | Máximo de llamadas por jugador en unos segundos, para lecturas, operaciones de dinero, comprobaciones de PIN y /givecash. |
Config.Debug | false | Logs extra en la consola. |
Otro idioma: copia locales/en.json en un archivo nuevo (por ejemplo locales/es.json), traduce los textos y pon Config.Locale = 'es'. No hace falta recompilar; las líneas que falten se muestran en inglés. Las voces de los banqueros solo existen en inglés y en francés.
IBAN
| Clave | Por defecto | Descripción |
Config.IbanPrefix | 'NT' | Prefijo de todos los IBAN, en mayúsculas. Un IBAN personal se ve así: NT482913. |
Config.IbanDigits | 6 | Cifras de un IBAN personal generado. |
Config.CustomIbanMaxChars | 12 | Longitud máxima de un IBAN personalizado que un jugador puede comprar, prefijo incluido. |
Las cuentas de empresa reciben el prefijo y el nombre del trabajo (NTPOLICE), las de banda el prefijo, GANG y el nombre de la banda (NTGANGBALLAS). Los jugadores no pueden quedarse con estos como IBAN personalizado.
Efectivo
| Clave | Por defecto | Descripción |
Config.UseCashAsItem | 'auto' | 'auto': el objeto de efectivo con ox_inventory, el efectivo del framework si no. true fuerza el objeto, false el efectivo del framework. |
Config.CashItem | 'money' | Nombre del objeto de efectivo (ox_inventory money, qb cash). |
Config.BankAccount | 'bank' | Cuenta del framework usada como banco personal. |
Tarjetas y PIN
| Clave | Por defecto | Descripción |
Config.RequireCreditCardForATM | true | Hace falta una tarjeta bancaria para usar un cajero. false: solo el PIN. |
Config.CreditCardItem | 'bank_card' | Nombre del objeto de la tarjeta. Debe existir en tu inventario, ver Instalación. |
Config.FirstCardFree | true | Un personaje que nunca tuvo tarjeta recibe la primera gratis, en la ventanilla o directamente en el cajero. |
Config.CardValidityDays | 90 | Días que una tarjeta nueva es válida. 0 = las tarjetas no caducan. |
Config.MaxCardsPerAccount | 3 | Tarjetas que un personaje puede tener a la vez, sin contar las caducadas. 0 = sin límite. |
Config.PinDigits | 4 | Longitud del PIN. |
Config.PinMaxAttempts | 3 | PIN erróneos seguidos antes de bloquear la tarjeta. |
Config.PinLockoutSeconds | 300 | Tiempo que la tarjeta queda bloqueada. |
Config.PinAtBank | false | Déjalo en false: el PIN solo se pide en los cajeros. |
Cuentas de empresa y de banda
| Clave | Por defecto | Descripción |
Config.SocietyAllJobs | true | Cada trabajo tiene una cuenta de empresa, creada la primera vez que se usa. false: solo los trabajos de Config.Societies. |
Config.Societies | police, ambulance, mechanic, realestate | Trabajos cuya cuenta se crea al arrancar. |
Config.SocietyExcludedJobs | unemployed | Trabajos que nunca tienen cuenta. |
Config.SocietyMinGrade | 3 | Además del jefe, el rango del trabajo (y superiores) que abre la cuenta de empresa. false = solo el jefe. |
Config.SocietyMinGradeByJob | {} | Rango por trabajo, por ejemplo { police = 4 }. |
Config.BankAuth | true | Qbox: el ajuste de acceso al banco de cada rango (en qbx_management) decide quién abre las cuentas de empresa y de banda. false = las reglas de rango de arriba. |
Config.EsxSocietyAccounts | true | ESX: los saldos de empresa son las cuentas society_<job> de esx_addonaccount, así que los menús de jefe y las facturas ven el mismo dinero. |
Config.BossGrade | nil | ESX: nivel de rango del jefe (y superiores). nil = la marca de jefe o un rango llamado boss. |
Config.GangMinGrade | false | Además del jefe de la banda, el rango de banda (y superiores) que abre la cuenta de banda. false = solo el jefe. |
Config.GangMinGradeByGang | {} | Rango por banda, por ejemplo { ballas = 3 }. |
Config.GangPermissionExport | hz_illegal, CanAccessGangBank | Export opcional que decide el acceso a la banda, usado solo mientras su resource está en marcha. false = ninguno. |
Cuentas compartidas
| Clave | Por defecto | Descripción |
Config.SharedAccounts | true | Los jugadores abren cuentas compartidas en una ventanilla. |
Config.SharedMaxOwned | 2 | Cuentas compartidas que puede tener un personaje como propietario. |
Config.SharedMaxMembers | 5 | Miembros por cuenta compartida, sin contar al propietario. |
Config.SharedNameMax | 32 | Longitud máxima del nombre de la cuenta. |
Transferencias programadas
| Clave | Por defecto | Descripción |
Config.MaxScheduledPerAccount | 10 | Transferencias programadas activas o en pausa por cuenta. 0 = sin límite. |
Config.ScheduleMaxRunsShared | 52 | Máximo de ejecuciones de una transferencia programada de empresa o de banda. Estas siempre necesitan un número de ejecuciones. |
Dar efectivo
| Clave | Por defecto | Descripción |
Config.GiveCash | true | Los jugadores se dan efectivo con /givecash [id] <amount>; sin ID va al jugador más cercano. false: el comando no se crea. |
Config.GiveCashCommand | 'givecash' | Nombre del comando. |
Config.GiveCashDistance | 3.0 | Metros máximos entre los dos jugadores. |
Config.GiveCashMaxAmount | 0 | Importe máximo de un regalo. 0 = Config.MaxAmount. |
Atracos a bancos
| Clave | Por defecto | Descripción |
Config.BankClosure | true | Un banco cierra mientras lo están atracando. |
Config.BankClosureMinutes | 30 | Vuelve a abrir como muy tarde tras este tiempo. 0 = solo cuando termina el atraco. |
Config.RobberyBanks | orden de qb-bankrobbery | ID de banco del script de atracos → número del banco en Config.Banks. |
Ver Cerrado durante un atraco.
Bancos
C.Banks = {
{ -- Legion Square
coords = vec3(150.27, -1040.20, 29.37), brand = 'fleeca',
ped = { model = 'a_m_m_business_01', coords = vec4(149.38, -1042.05, 29.37, 334.49), name = 'Martin Kessler' },
},
-- ...
}
| Campo | Descripción |
coords | Donde se coloca el jugador delante del banquero. El servidor mide a los jugadores desde este punto. |
brand | Estilo de la app: 'fleeca', 'maze', 'pacific', 'blaine' o 'union'. |
ped | El banquero: model, coords (vec4 con orientación) y name, que se muestra en el diálogo. |
blip | Opcional: cambia cualquier campo de Config.Blip para este banco, o false para no tener blip. |
distance | Opcional: distancia del aviso de este banco. |
| Clave | Por defecto | Descripción |
Config.InteractDistance | 3.0 | Distancia a la que se activa el aviso de una ventanilla. |
Config.InteractKey | 'E' | Tecla que se muestra en el aviso (solo el texto). |
Config.Blip | sprite 108, color 2, escala 0.9, texto Bank | Blip de cada banco. enabled = false los oculta. |
Config.BlipColorByBrand | Maze 1, Fleeca 2, Pacific 46, Blaine 76, Union 29 | Color del blip de cada marca de banco. |
Config.BankPedModel | 'a_m_m_business_01' | Modelo del banquero cuando un banco no define ninguno. |
Config.BankPedDistance | 60.0 | Metros a los que aparecen los banqueros. |
Config.SessionIdleTimeout | 900 | Segundos sin ninguna acción antes de que la app se cierre. |
Más en Bancos y banqueros.
Banqueros y diálogo
| Clave | Por defecto | Descripción |
Config.StaffVoice.enabled | true | Los banqueros hablan. |
Config.StaffVoice.language | 'en' | 'en', 'fr' o 'auto' (el idioma de Config.Locale). |
Config.StaffVoice.greetDistance | 5.0 | Metros a los que el banquero saluda al jugador. |
Config.StaffVoice.greetCooldown | 300 | Segundos antes de que el mismo banquero vuelva a saludar al mismo jugador. |
Config.StaffVoice.lookDistance | 6.0 | Metros a los que el banquero sigue al jugador con la mirada. |
Config.Dialogue.enabled | true | Hablar con un banquero abre el cuadro de diálogo. false: la app bancaria se abre directamente. |
Config.Dialogue.camera | true | La cámara encuadra al banquero mientras el diálogo está abierto. |
Cajeros
| Clave | Por defecto | Descripción |
Config.AtmModels | prop_atm_01, prop_atm_02, prop_atm_03, prop_fleeca_atm | Modelos de cajero. Todo prop de estos modelos en el mapa es un cajero. |
Config.AtmDistance | 1.5 | Metros desde un cajero para ver su aviso. |
Config.AtmUse.walk | true | El jugador camina hasta el cajero. false: se queda en su sitio. |
Config.AtmUse.card | true | Cajeros del juego: el jugador mete su tarjeta antes de que se abra la pantalla. |
Config.AtmUse.view | 'screen' | Cajeros del juego: 'screen' de frente a la pantalla y al teclado, 'shoulder' por encima del hombro del jugador. |
Config.AtmUse.finger | true | La mano del jugador en el teclado, el dedo en la tecla bajo el cursor. |
Config.AtmUse.cardModel | false | Un mismo prop de tarjeta para todos. false = la tarjeta del banco del propio jugador. |
Config.AtmUse.animTime | 2.0 | Modelos de cajero que añadas: segundos de animación de la tarjeta antes de que se abra la pantalla. 0 = ninguna. |
Config.AtmPositions | vacío | Lista opcional de posiciones de cajero permitidas (vec3). Vacía = todos los cajeros de los modelos de arriba. |
Config.AtmPositionTolerance | 1.5 | Metros entre un cajero y su posición de la lista. |
Config.AtmBrand | 'fleeca' | Banco de los cajeros: estilo del cajero a pantalla completa (modelos que añadas) y banco de una primera tarjeta gratis entregada ahí. |
Config.AtmBrandByModel | prop_fleeca_atm = 'fleeca' | Lo mismo, por modelo. |
Target, sonidos y HUD
| Clave | Por defecto | Descripción |
Config.Target.bank | true | Ojo del target sobre los banqueros y su ventanilla (ox_target o qb-target, a través de hz_lib). |
Config.Target.atm | true | Ojo del target sobre los cajeros. |
Config.Target.distance | 2.0 | Alcance del ojo, en metros. |
Config.Target.pins | true | Con HZ-TextUi en marcha: sus pins (visibles al acercarse, sin mantener ninguna tecla) en lugar del ojo. |
Config.Sounds | sonidos del juego | Sonidos de la app: abrir, cerrar, PIN correcto e incorrecto, éxito, error, teclado, pasar el ratón, clic, cambio de página. enabled = false los silencia todos; pon una entrada en false para silenciar solo esa. |
Config.HideHud | true | Oculta el HUD mientras la app está abierta (HZ-Hud, o el minimapa del juego). |
Sin resource de target, hz_lib muestra su propio aviso [E].
Costes y límites
| Clave | Por defecto | Descripción |
Config.IbanChangeCost | 5000 | Precio de un IBAN personalizado. |
Config.PinChangeCost | 1000 | Precio de un cambio de PIN. El primer PIN es gratis. |
Config.CreditCardPrice | 250 | Precio de una tarjeta bancaria. |
Config.TransferFeePct | 0.0 | Comisión de las transferencias, como fracción (0.01 = 1 %), que se queda el banco. |
Config.MaxAmount | 100000000 | Importe máximo de una sola operación. |
Los costes se cobran del banco personal.
Ahorros
C.Savings = {
InterestPct = 0.5,
PeriodHours = 24,
MaxBalance = 1000000,
MaxCatchUp = 7,
}
| Clave | Descripción |
InterestPct | Interés por periodo, en % del saldo mantenido durante todo el periodo. |
PeriodHours | Horas reales entre dos pagos de intereses. |
MaxBalance | Máximo que un personaje puede tener en ahorros. 0 = sin límite. |
MaxCatchUp | Periodos pagados como máximo tras una ausencia. 0 = sin límite. |
Cómo funciona: Ahorros y préstamos.
Préstamos
C.Loans = {
Tiers = {
{ score = 300, max = 5000, rate = 15 },
{ score = 580, max = 25000, rate = 10 },
{ score = 670, max = 75000, rate = 7 },
{ score = 740, max = 200000, rate = 5 },
},
MinAmount = 1000,
Installments = { 4, 8, 12 },
PeriodHours = 24,
LateFeePct = 5,
DefaultAfter = 3,
UseSavings = true,
Score = { start = 600, min = 300, max = 850, onTime = 5, repaid = 25, missed = 30, default = 100 },
}
| Clave | Descripción |
Tiers | A partir de esta puntuación de crédito: préstamo máximo y su interés, en % del importe para todo el préstamo. |
MinAmount | Préstamo mínimo. |
Installments | Planes de pago ofrecidos, en número de pagos. |
PeriodHours | Horas reales entre dos pagos. |
LateFeePct | Se suma a la deuda por cada pago perdido, en % de un pago. |
DefaultAfter | Pagos perdidos seguidos antes de que el préstamo entre en impago. |
UseSavings | Un pago que la cuenta bancaria no cubre se cobra de los ahorros. |
Score | Puntuación inicial, límites, y puntos ganados o perdidos: pago a tiempo, préstamo devuelto, pago perdido, impago. |
Cómo funciona: Ahorros y préstamos.
Facturas
Todo en config/billing.lua, dentro de C.Billing.
| Clave | Por defecto | Descripción |
Command | 'invoice' | Comando de chat que escribe una factura. '' = sin comando. |
Jobs | nil | Trabajos que pueden facturar, por ejemplo { 'police', 'mechanic' }. nil = todo trabajo que tenga cuenta de empresa. |
MinGrade | 0 | Rango mínimo del trabajo para facturar. |
MinGradeByJob | {} | Rango por trabajo, por ejemplo { mechanic = 1 }. |
Gangs | true | Los miembros de una banda pueden facturar en nombre de su banda. |
PlayerInvoices | false | Los jugadores pueden facturar a otros jugadores, a su propia cuenta. |
NoDecline | police, ambulance | Trabajos cuyas facturas no se pueden rechazar (multas). |
MaxAmount | 1000000 | Factura máxima. |
MaxPending | 20 | Facturas sin pagar que un jugador puede tener a la vez. |
Distance | 5.0 | Metros máximos entre quien factura y el jugador facturado. |
DueDays | 7 | Días reales antes de que una factura venza. |
LateFeePct | 10 | Se suma una vez al vencer, en % del importe. 0 = ninguno. |
AutoCollect | true | Las facturas vencidas se cobran del banco en cuanto el saldo las cubre. |
IssuerCommission | 0 | % de una factura de empresa que se paga al empleado que la escribió. |
ReasonMax | 96 | Caracteres que se guardan del motivo. |
PhoneBrand | 'maze' | Estilo de banco de la app Bills del teléfono. |
Phones | qs-smartphone, lb-phone, hz_phone | Teléfonos que reciben la app Bills y las notificaciones de facturas, cuando están en marcha. |
Cómo funciona: Facturas.
Compatibilidad
En config/compat.lua:
| Clave | Por defecto | Descripción |
Config.Compat['qb-banking'] | true | Responder a los exports de qb-banking. false = desactivado. |
Config.Compat['Renewed-Banking'] | true | Lo mismo para Renewed-Banking. |
Config.Compat['esx_banking'] | true | Lo mismo para esx_banking. |
Config.Compat['okokBanking'] | true | Lo mismo para okokBanking. |
Config.Compat['esx_billing'] | true | Las facturas enviadas desde los menús de trabajo de ESX se convierten en facturas de HZ-Banking. |
Config.Compat['qb-management'] | 'auto' | Antiguos exports de dinero de qb-management, solo mientras no haya ningún qb-management en marcha. |
Config.Compat.esxClientLog | false | Deja que los jugadores escriban líneas en su propio historial mediante el evento de cliente de esx_banking. |
Config.MigrationPriority | okok, renewed, qb, esx | Fuentes de importación, de la más fiable a la menos. |
Config.MigrationHistory | true | Importar también las líneas del historial. |
Cada relevo queda desactivado mientras el resource real con ese nombre está en marcha. Más en Reemplazar tu script de banco.
En /hzpanel
El módulo Banking de /hzpanel edita casi todos los ajustes en vivo en el servidor, en dos pestañas:
- General — prefijo del IBAN; páginas Savings, Bills y Loans; reglas de tarjeta y PIN, modo de efectivo, rangos de empresa y de banda, acceso al banco de Qbox, dinero de empresa de ESX; cuentas compartidas;
/givecash y cierre de bancos.
- Economy — precios del IBAN, del PIN y de la tarjeta, comisión de transferencia (en %), importe máximo, límites de transferencias programadas; ahorros; préstamos; facturas (factura máxima, días antes de vencer, recargo por vencimiento, cobro de facturas vencidas, comisión del empleado, rango mínimo para facturar, facturas de bandas y de jugadores, distancia para facturar).
48 ajustes en total, que se aplican al momento sin reiniciar. Los archivos dan los valores iniciales. Un valor guardado en el panel tiene prioridad sobre el archivo. Los bancos, cajeros, voces, sonidos, tramos de préstamo, la puntuación de crédito, el comando de facturas y los trabajos que facturan, y la compatibilidad solo se ajustan en los archivos.
Convars
| Convar | Descripción |
hz_banking_webhook | URL del webhook de Discord para el log del dinero. |
hz_banking_pin_secret | Secreto privado para guardar los PIN. Defínelo una sola vez, antes de que los jugadores pongan su PIN. |
Ver Instalación.