Exports y eventos

Todos los exports son del lado del servidor. Los importes son números enteros mayores que cero, hasta Config.MaxAmount. Para los exports de qb-banking, Renewed-Banking, esx_banking y okokBanking, ver Reemplazar tu script de banco.


Dinero de empresas y bandas

La cuenta es un nombre de trabajo ('police' o 'society_police') o una banda ('gang_ballas').

exports['hz_banking']:AddMoney(account, amount, reason)     -- true / false. Crea la cuenta si no existe
exports['hz_banking']:RemoveMoney(account, amount, reason)  -- false si el saldo no alcanza
exports['hz_banking']:GetAccount(account)                   -- saldo, 0 si es desconocida
exports['hz_banking']:GetAccountBalance(account)            -- lo mismo
exports['hz_banking']:GetAccountInfo(account)               -- { type, id, iban, name, balance } o nil
exports['hz_banking']:EnsureAccount(account, label)         -- la crea si no existe, devuelve la info
exports['hz_banking']:GetTransactions(account, limit)       -- últimas líneas, 200 como máximo
exports['hz_banking']:GetVersion()

El motivo (64 caracteres) aparece en el historial de la cuenta.


Historial personal

El dinero personal es el dinero del banco de tu framework: muévelo con tu framework como siempre. Estos dos exports leen el historial, o añaden una línea por dinero movido en otro sitio (un pago con el teléfono, una tienda) para que aparezca en la app bancaria.

-- who: un ID de servidor o un ID de personaje
exports['hz_banking']:GetPersonalTransactions(who, limit)   -- las más recientes primero, 200 como máximo

-- kind: 'deposit', 'withdraw', 'transfer_in' o 'transfer_out'. Escribe una línea, no mueve dinero
exports['hz_banking']:LogPersonalTransaction(who, kind, amount, reason, counterName)  -- true / false


Facturas

-- receiver: un ID de servidor o un ID de personaje
-- issuer: 'police' / 'society_police', 'gang_ballas', o { type = 'personal', id = charId, label = 'John Doe' }
-- opts (opcional): { label, author, authorName, receiverName, canDecline }
exports['hz_banking']:CreateInvoice(receiver, issuer, amount, reason, opts)  -- { ok = true, id } o { ok = false, err }

exports['hz_banking']:GetInvoices(receiver, onlyOpen)  -- las últimas facturas del jugador
exports['hz_banking']:GetInvoice(id)
exports['hz_banking']:PayInvoice(source, id)           -- pagada desde el banco del jugador
exports['hz_banking']:CancelInvoice(id)
exports['hz_banking']:GetUnpaidTotal(receiver)         -- facturas abiertas más recargos
exports['hz_banking']:BillingEnabled()                 -- false si las facturas están desactivadas

Una factura se devuelve así:

{
    id = 12, amount = 500, fee = 0, total = 500, reason = 'Repair',
    status = 'pending',  -- 'pending', 'overdue', 'paid', 'declined' o 'cancelled'
    issuer = { type = 'society', id = 'mechanic', label = 'Mechanic' },
    author = 'John Doe', receiver = 'Jane Doe',
    created = 1767225600, due = 1767830400, dueIn = 604800, closed = nil,
    canDecline = true,
}


Ahorros y préstamos

charId es el ID del personaje (citizenid o identifier).

exports['hz_banking']:GetSavingsBalance(charId)   -- 0 si no tiene
exports['hz_banking']:GetCreditScore(charId)
exports['hz_banking']:GetLoan(charId)             -- { remaining, installment, status, missed } o nil


Eventos de servidor

Eventos locales de servidor, para AddEventHandler en otro script de servidor. Los jugadores no pueden enviarlos.

-- Una cuenta de empresa o de banda se movió en el banco (ingreso, retiro, transferencia, transferencia programada)
AddEventHandler('HZ-Banking:server:movement', function(m)
    -- m.accountType ('society' / 'gang'), m.accountId, m.kind ('deposit', 'withdraw', 'transfer_in', 'transfer_out'),
    -- m.amount, m.counterName, m.counterIban, m.reason, m.actorCharId, m.actorName
end)

-- Facturas: la tabla de factura de arriba
AddEventHandler('HZ-Banking:server:invoiceCreated', function(bill) end)
AddEventHandler('HZ-Banking:server:invoicePaid', function(bill) end)
AddEventHandler('HZ-Banking:server:invoiceDeclined', function(bill) end)
AddEventHandler('HZ-Banking:server:invoiceCancelled', function(bill) end)
AddEventHandler('HZ-Banking:server:invoiceOverdue', function(bill) end)

-- Un préstamo entró en impago (una vez por préstamo)
AddEventHandler('HZ-Banking:server:loanDefaulted', function(d)
    -- d.charId, d.loanId, d.remaining
end)

HZ-Banking también escucha qb-banking:server:SetBankClosed(bankId, closed) para cerrar un banco durante un atraco, ver Bancos y banqueros.


Evento de cliente

-- Se lanza cuando la app bancaria o el cajero se abre (false) y se cierra (true), para ocultar tu propio HUD
AddEventHandler('HZ-Banking:client:hud', function(visible) end)

HZ-Hud y el minimapa del juego se ocultan solos.