Mueve dinero, deja nóminas, cobra con tarjeta y consulta cuentas desde tus propios recursos. Todos los exports se ejecutan en el servidor.
exports.cuxial_banking:<Nombre>(...)Los importes son números enteros positivos. Los decimales se descartan. Con cero, negativos, valores inválidos o desorbitados, el export devuelve false.
Dinero del jugador
AddMoney
Abona dinero a un personaje, conectado o no.
exports.cuxial_banking:AddMoney(citizenId, amount, account)| Parámetro | Tipo | Descripción |
|---|---|---|
citizenId | string | Identificador del personaje. |
amount | number | Importe a añadir. |
account | string | 'bank', 'cash' o 'crypto'. Opcional; 'bank' por defecto. |
Devuelve: boolean.
exports.cuxial_banking:AddMoney(citizenId, 1500)RemoveMoney
Cobra dinero a un personaje si tiene suficiente.
exports.cuxial_banking:RemoveMoney(citizenId, amount, account)Los mismos parámetros que AddMoney.
Devuelve: boolean. false cuando el saldo no alcanza.
if exports.cuxial_banking:RemoveMoney(citizenId, 250, 'bank') then
-- pagado
endAddMoney y RemoveMoney no anotan nada en el historial. Añade tú el apunte con AddTransaction.
GetAccount
Lee el dinero de un personaje que está conectado.
local account = exports.cuxial_banking:GetAccount(citizenId)Devuelve: { citizenid, name, bank, cash }, o nil si el personaje no está conectado.
local account = exports.cuxial_banking:GetAccount(citizenId)
if account and account.bank >= 5000 then
-- puede pagarlo
endHistorial
AddTransaction
Anota un movimiento en el historial de una cuenta.
exports.cuxial_banking:AddTransaction(identifier, transaction)| Parámetro | Tipo | Descripción |
|---|---|---|
identifier | string | Identificador del personaje, nombre del trabajo o código de la cuenta compartida. |
transaction.value | number | Positivo para entradas, negativo para salidas. |
transaction.reason | string | Texto que se muestra en el historial. Hasta 255 caracteres. |
transaction.type | string | 'deposit', 'withdraw', 'transfer', 'loan', 'card', 'fee' o 'interest'. Cualquier otro valor se guarda como 'deposit'. |
transaction.sender_name | string | Nombre del emisor. |
transaction.sender_identifier | string | Identificador del emisor. |
transaction.receiver_name | string | Nombre del receptor. |
transaction.receiver_identifier | string | Identificador del receptor. |
transaction.date | string | 'YYYY-MM-DD HH:MM:SS'. Opcional; por defecto, ahora. |
Devuelve: boolean.
exports.cuxial_banking:AddTransaction(citizenId, {
value = -250,
reason = 'Multa de aparcamiento',
type = 'fee',
sender_name = 'John Doe',
sender_identifier = citizenId,
receiver_name = 'Ayuntamiento',
receiver_identifier = 'cityhall',
})GetPlayerTransactions
Devuelve los últimos movimientos de una cuenta.
local list = exports.cuxial_banking:GetPlayerTransactions(identifier)Devuelve: table[]. Cada entrada tiene los campos de AddTransaction. La longitud está limitada por MaxTransactionsPerPlayer.
for _, tx in ipairs(exports.cuxial_banking:GetPlayerTransactions(citizenId)) do
print(tx.date, tx.value, tx.reason)
endCuentas de empresa
El parámetro society es el nombre del trabajo. También se acepta la forma society_<trabajo>.
AddSocietyMoney
exports.cuxial_banking:AddSocietyMoney(society, amount, reason)| Parámetro | Tipo | Descripción |
|---|---|---|
society | string | Nombre del trabajo. |
amount | number | Importe a añadir. |
reason | string | Opcional. Si se indica, el movimiento se anota en el historial de la cuenta. |
Devuelve: boolean. false cuando la cuenta no existe.
exports.cuxial_banking:AddSocietyMoney('mechanic', 800, 'Factura de reparación')RemoveSocietyMoney
exports.cuxial_banking:RemoveSocietyMoney(society, amount, reason)Los mismos parámetros que AddSocietyMoney.
Devuelve: boolean. false cuando la cuenta no existe o el saldo no alcanza.
if exports.cuxial_banking:RemoveSocietyMoney('police', 500, 'Material') then
-- pagado desde la cuenta de empresa
endGetSocietyAccount
local account = exports.cuxial_banking:GetSocietyAccount(society)Devuelve: { society, society_name, balance, iban, credit_score, opening_date }, o nil cuando la cuenta no existe.
local account = exports.cuxial_banking:GetSocietyAccount('police')
print(account and account.balance or 0)Nóminas
AddPaycheck
Deja una nómina para que un personaje la cobre en una sucursal. Así llegan los sueldos al banco: por sí solo no los crea.
exports.cuxial_banking:AddPaycheck(citizenId, sourceKey, sourceName, amount, status)| Parámetro | Tipo | Descripción |
|---|---|---|
citizenId | string | Identificador del personaje. |
sourceKey | string | De dónde viene, normalmente el nombre del trabajo. |
sourceName | string | Nombre que ve el jugador. |
amount | number | Importe de la nómina. |
status | string | 'ready' o 'pending'. Opcional; 'ready' por defecto. |
Devuelve: boolean.
exports.cuxial_banking:AddPaycheck(citizenId, 'police', 'Departamento de Policía', 500)Tarjetas
ChargeCard
Cobra en una tarjeta que el jugador lleva encima. Sirve para pagos con tarjeta en tiendas.
local result = exports.cuxial_banking:ChargeCard(source, cardNumber, pin, amount, reason)| Parámetro | Tipo | Descripción |
|---|---|---|
source | number | Id de servidor del jugador que paga. Debe llevar la tarjeta. |
cardNumber | string | Número de la tarjeta. |
pin | string | number | PIN que ha escrito el jugador. |
amount | number | Importe a cobrar. Limitado por cards.posMaxCharge y por el límite diario de la tarjeta. |
reason | string | Nombre del comercio, que se muestra en el historial. Opcional. |
Devuelve: { success, message, cardHolder, last4 }. message solo viene si falla; cardHolder y last4 solo si se cobra.
local result = exports.cuxial_banking:ChargeCard(source, cardNumber, pin, 120, 'Supermercado')
if not result.success then
print(result.message)
endRefundCard
Devuelve un cobro al titular de la tarjeta.
exports.cuxial_banking:RefundCard(cardNumber, amount, reason)Devuelve: boolean. El dinero va siempre al titular de la tarjeta, nunca a quien pagó con ella.
exports.cuxial_banking:RefundCard(cardNumber, 120, 'Supermercado')GetPlayerCards
Lista las tarjetas que lleva un jugador.
local cards = exports.cuxial_banking:GetPlayerCards(source)Devuelve: table[]. Cada entrada tiene cardNumber, cardHolder, cardHolderCitizenId, cardHolderIBAN, cardType, cardTypeLabel, dailyLimit, accountType, status, expiryDate, slot e item.
for _, card in ipairs(exports.cuxial_banking:GetPlayerCards(source)) do
if card.status == 'active' then
-- ofrecerla como método de pago
end
endAjustes
getSetting
Lee una sección de los ajustes en vivo, tal como se está usando en ese momento.
local cards = exports.cuxial_banking:getSetting('config.cards')| Parámetro | Tipo | Descripción |
|---|---|---|
id | string | 'config.general', 'config.accounts', 'config.cards', 'config.loans', 'config.savings', 'config.cheques', 'config.rewards', 'config.creditScore', 'config.atm', 'config.admin' o 'config.logs'. |
Devuelve: table, o nil si la sección no existe.
local general = exports.cuxial_banking:getSetting('config.general')
print(general.currency)Informe de riqueza
La pestaña Ciudadanos del panel de staff suma todo lo que tiene un personaje. Tu recurso puede añadir sus propias líneas.
RegisterWealthProvider
exports.cuxial_banking:RegisterWealthProvider(name, fn)| Parámetro | Tipo | Descripción |
|---|---|---|
name | string | Nombre único de la fuente. |
fn | function | Recibe el identificador del personaje y devuelve una lista de líneas. |
Cada línea:
| Campo | Tipo | Descripción |
|---|---|---|
key | string | Identificador de la línea. |
label | string | Texto que se muestra en el panel. |
amount | number | Valor. Las líneas a cero se descartan. |
kind | string | 'asset' suma al patrimonio. 'transit' también suma: dinero en camino. 'liability' resta. 'control' se muestra sin sumar: fondos que el personaje maneja pero no son suyos. 'asset' por defecto. |
detail | table | Opcional. Valores extra de texto, número o booleano. |
Devuelve: boolean. false cuando otro recurso ya registró ese nombre.
exports.cuxial_banking:RegisterWealthProvider('myshop', function(citizenId)
return {
{ key = 'till', label = 'Caja de la tienda', amount = 3200, kind = 'asset' },
}
end)La fuente se retira sola cuando tu recurso se detiene.
UnregisterWealthProvider
exports.cuxial_banking:UnregisterWealthProvider(name)Devuelve: boolean. Solo el recurso que registró una fuente puede retirarla.
Eventos
cuxial_banking:client:OpenAtm
Evento de cliente. Abre el cajero al jugador local desde tu propio recurso, por ejemplo desde un prop de cajero personalizado.
| Parámetro | Tipo | Descripción |
|---|---|---|
coords | vector3 | Posición del cajero. Opcional; por defecto, la posición del jugador. |
TriggerEvent('cuxial_banking:client:OpenAtm', GetEntityCoords(atmEntity))El jugador sigue necesitando una tarjeta activa y su PIN, y debe mantenerse a menos de atmDistance de esas coordenadas.
cuxial_banking:settingsApplied
Evento local, en el servidor y en cada cliente. Se dispara cuando una sección de ajustes se carga o se cambia desde el panel de staff.
| Parámetro | Tipo | Descripción |
|---|---|---|
id | string | Sección que ha cambiado, por ejemplo 'config.cards'. |
-- en el servidor
AddEventHandler('cuxial_banking:settingsApplied', function(id)
if id == 'config.cards' then
local cards = exports.cuxial_banking:getSetting('config.cards')
end
end)