Inicio › Documentación › Exports · origen_banking
Todos los exports se registran bajo el nombre de recurso origen_banking y son exclusivamente del servidor.
La mayoría de los exports de cuentas devuelven un envoltorio estructurado en lugar de un booleano simple:
-- success
{ success = true, data = { ... }, meta = { message = { key = '...', args = { ... } } } }
-- failure
{ success = false, error = { key = 'errors.insufficient_balance', args = { ... } } }El campo key es una clave de idioma de locales/*.json, de modo que el recurso que llama puede traducir el mensaje por su cuenta.
Los exports de cuentas de trabajo de la capa de compatibilidad usan un envoltorio más simple: { success = true, data = { balance = number } } o { success = false, error = 'insufficient_balance' }, donde error es una cadena de texto simple.
getJobAccountBalance(jobName) → number, string|nilDevuelve el saldo actual de una cuenta de trabajo. Solo lectura: nunca crea la cuenta.
local balance, err = exports['origen_banking']:getJobAccountBalance('mechanic')| Parámetro | Tipo | Descripción |
|---|---|---|
jobName |
string |
Nombre exacto del propietario almacenado en la base de datos, p. ej. 'ambulance' |
Devuelve 0 y un motivo de error ('invalid_job_name' o 'account_not_found') cuando la cuenta no existe.
depositJobAccount(jobName, amount, detail) → tableAñade dinero a una cuenta de trabajo. Crea la cuenta automáticamente si todavía no existe.
local res = exports['origen_banking']:depositJobAccount('mechanic', 2500, 'Repair job')
if res.success then print(res.data.balance) end| Parámetro | Tipo | Descripción |
|---|---|---|
jobName |
string |
Nombre del trabajo / sociedad |
amount |
number |
Entero positivo |
detail |
string |
Etiqueta de auditoría opcional que se muestra en el historial de transacciones |
Errores: invalid_amount, invalid_job_name.
withdrawJobAccount(jobName, amount, detail) → tableRetira dinero de una cuenta de trabajo. Nunca crea la cuenta automáticamente.
local res = exports['origen_banking']:withdrawJobAccount('mechanic', 500, 'Parts purchase')Errores: invalid_amount, account_not_found, insufficient_balance.
getAccountMoney(accountName) → numberAlias heredado de getJobAccountBalance. Devuelve solo el saldo, o 0.
addAccountMoney(accountName, amount) → booleanIngreso heredado. Crea la cuenta automáticamente. Registra la transacción como Society income.
removeAccountMoney(accountName, amount) → booleanRetirada heredada. Devuelve false cuando la cuenta no existe o el saldo es insuficiente.
newAccount(data) → AccountCrea un objeto de cuenta. Si se omite data.id, se genera un IBAN nuevo y la cuenta se guarda de inmediato.
| Campo | Tipo | Descripción |
|---|---|---|
owner |
string |
ID de ciudadano, nombre del trabajo o nombre de la banda |
name |
string |
Nombre para mostrar |
balance |
number |
Saldo inicial. Por defecto 0 |
default |
boolean |
La marca como cuenta principal del jugador |
shared |
boolean |
La marca como cuenta compartida de trabajo / banda |
bank |
string |
ID opcional del banco al que pertenece la cuenta |
GetAccountById(id) → Account | nilDevuelve la cuenta desde la caché en memoria y, si no está, la busca en la base de datos.
local account = exports['origen_banking']:GetAccountById('1234567890123456')GetAccountAccessByCitizenid(citizenid) → tableDevuelve la lista de accesos sin procesar de un ciudadano: un array de { accountId, permission }. El permiso es 'owner', 'manager' u 'operator'.
GetAccountsInfoByCitizenId(citizenid) → tableDevuelve la lista completa de cuentas de un ciudadano, enriquecida para la interfaz: miembros, tipo de cuenta ('personal' / 'shared'), la marca de principal del framework y el saldo en tiempo real. Las cuentas de trabajo y de banda a las que el jugador tiene acceso en ese momento se añaden en tiempo de ejecución.
Este export resuelve el acceso a trabajos y bandas en cada llamada y puede crear la cuenta compartida si todavía no existe. No lo llames dentro de un bucle.
CreateInitialAccount(citizenid) → stringCrea la cuenta principal de un ciudadano y devuelve el ID de cuenta generado.
LoadAccountsForPlayer(citizenid)Precarga en memoria todas las cuentas de un ciudadano o compartidas con él. Las cuentas se cargan de forma perezosa cuando el jugador se conecta, así que solo hace falta para operaciones con jugadores desconectados.
La «cuenta activa» es la cuenta seleccionada en ese momento en los metadatos activeAccount del jugador. La «cuenta por defecto» es la marcada como default en la base de datos.
GetActiveAccBalance(source) → number | nilDevuelve el saldo de la cuenta activa del jugador. Se guarda en caché durante 500 ms.
PayWithAccId(accountId, amount, detail) → tableCobra a una cuenta concreta por su ID.
| Parámetro | Tipo | Descripción |
|---|---|---|
accountId |
string |
IBAN de la cuenta de destino |
amount |
number |
Importe a cobrar |
detail |
string |
Motivo que se muestra en el historial de transacciones |
Errores: errors.account_not_found, errors.insufficient_balance.
PayWithActiveAcc(source, amount, detail) → tableCobra a la cuenta activa del jugador.
local res = exports['origen_banking']:PayWithActiveAcc(source, 150, 'Parking fee')
if not res.success then print(res.error.key) endPayFromDefaultAcc(source, amount, detail) → tableCobra a la cuenta por defecto del jugador. Cuando esa cuenta es la principal del framework, el saldo se descuenta del dinero bancario del framework en lugar de la base de datos.
ReceiveToActiveAcc(source, amount, detail) → tableAbona en la cuenta activa del jugador.
ReceiveToDefaultAcc(source, amount, detail) → tableAbona en la cuenta por defecto del jugador. Las cuentas principales del framework se abonan directamente en el dinero bancario del framework.
SetActiveAccBalance(source, amount) → booleanSobrescribe el saldo de la cuenta activa del jugador. No se registra ninguna transacción.
SetDefaultAccBalance(source, amount) → booleanSobrescribe el saldo de la cuenta por defecto del jugador. Si es la principal del framework, la diferencia se aplica al dinero bancario del framework.
Ambos setters se saltan el historial de transacciones y las comprobaciones de permisos. Úsalos solo para herramientas de administración o de migración.
CreateLoan(accountId, typeKey, amount, term, collateral) → tableCrea un préstamo sobre una cuenta, aplicando todas las validaciones del servidor.
| Parámetro | Tipo | Descripción |
|---|---|---|
accountId |
string |
Cuenta que recibe el desembolso |
typeKey |
string |
Clave del tipo de préstamo de Config.Loans.Types, p. ej. 'personal' |
amount |
number |
Principal |
term |
number |
Número de cuotas; debe estar en allowedTerms |
collateral |
string |
Referencia del bien. Obligatoria cuando el tipo define requiresCollateral |
local res = exports['origen_banking']:CreateLoan(accountId, 'personal', 15000, 12)
if res.success then print(res.loanId) endErrores: disabled, account_not_found, invalid_type, invalid_term.
GetPlayerLoans(citizenId) → tableDevuelve todos los préstamos de un ciudadano, con la forma en que los recibe la interfaz.
HasOverdueLoan(citizenId) → booleanDevuelve true cuando el ciudadano tiene un préstamo vencido o en impago. Útil para restringir compras a crédito en concesionarios, alquileres y recursos similares.
if exports['origen_banking']:HasOverdueLoan(citizenid) then
-- deny the financed purchase
endnewBank(data) → BankCrea una entidad bancaria.
GetBankById(id) → Bank | nilDevuelve un banco desde la caché o la base de datos.
newCard(data) → CardCrea una tarjeta vinculada a una cuenta.
GetCardById(id) → Card | nilDevuelve una tarjeta desde la caché o la base de datos.