Exports e eventos

Todos os exports são do lado do servidor. Os valores são números inteiros acima de zero, até Config.MaxAmount. Para os exports do qb-banking, Renewed-Banking, esx_banking e okokBanking, veja Substituir seu script de banco.


Dinheiro de empresa e de gangue

A conta é um nome de emprego ('police' ou 'society_police') ou uma gangue ('gang_ballas').

exports['hz_banking']:AddMoney(account, amount, reason)     -- true / false. Cria a conta se não existir
exports['hz_banking']:RemoveMoney(account, amount, reason)  -- false quando o saldo é baixo demais
exports['hz_banking']:GetAccount(account)                   -- saldo, 0 quando desconhecida
exports['hz_banking']:GetAccountBalance(account)            -- o mesmo
exports['hz_banking']:GetAccountInfo(account)               -- { type, id, iban, name, balance } ou nil
exports['hz_banking']:EnsureAccount(account, label)         -- cria se não existir, retorna as informações
exports['hz_banking']:GetTransactions(account, limit)       -- últimas linhas, 200 no máximo
exports['hz_banking']:GetVersion()

O motivo (64 caracteres) aparece no histórico da conta.


Histórico pessoal

O dinheiro pessoal é o dinheiro de banco do seu framework: movimente-o pelo framework, como sempre. Estes dois exports leem o histórico, ou adicionam uma linha para dinheiro movimentado em outro lugar (um pagamento pelo celular, uma loja) para que ele apareça no app do banco.

-- who: um ID de servidor ou um ID de personagem
exports['hz_banking']:GetPersonalTransactions(who, limit)   -- mais recentes primeiro, 200 no máximo

-- kind: 'deposit', 'withdraw', 'transfer_in' ou 'transfer_out'. Escreve uma linha, não move dinheiro
exports['hz_banking']:LogPersonalTransaction(who, kind, amount, reason, counterName)  -- true / false


Faturas

-- receiver: um ID de servidor ou um ID de personagem
-- issuer: 'police' / 'society_police', 'gang_ballas', ou { 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 } ou { ok = false, err }

exports['hz_banking']:GetInvoices(receiver, onlyOpen)  -- as últimas faturas do jogador
exports['hz_banking']:GetInvoice(id)
exports['hz_banking']:PayInvoice(source, id)           -- paga pelo banco do jogador
exports['hz_banking']:CancelInvoice(id)
exports['hz_banking']:GetUnpaidTotal(receiver)         -- faturas em aberto mais multas por atraso
exports['hz_banking']:BillingEnabled()                 -- false quando as faturas estão desligadas

Uma fatura volta assim:

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


Poupança e empréstimos

charId é o ID do personagem (citizenid ou identifier).

exports['hz_banking']:GetSavingsBalance(charId)   -- 0 quando não há
exports['hz_banking']:GetCreditScore(charId)
exports['hz_banking']:GetLoan(charId)             -- { remaining, installment, status, missed } ou nil


Eventos do servidor

Eventos locais do servidor, para AddEventHandler em outro script de servidor. Os jogadores não podem enviá-los.

-- Uma conta de empresa ou de gangue movimentada no banco (depósito, saque, transferência, transferência agendada)
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)

-- Faturas: a tabela de fatura acima
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)

-- Um empréstimo ficou inadimplente (uma vez por empréstimo)
AddEventHandler('HZ-Banking:server:loanDefaulted', function(d)
    -- d.charId, d.loanId, d.remaining
end)

O HZ-Banking também escuta qb-banking:server:SetBankClosed(bankId, closed) para fechar um banco durante um assalto, veja Bancos e bancários.


Evento do cliente

-- Disparado quando o app do banco ou o caixa eletrônico abre (false) e fecha (true), para esconder o seu próprio HUD
AddEventHandler('HZ-Banking:client:hud', function(visible) end)

O HZ-Hud e o minimapa do jogo são escondidos sozinhos.