Exports et events
Tous les exports sont côté serveur. Les montants sont des nombres entiers supérieurs à zéro, jusqu'à Config.MaxAmount. Pour les exports de qb-banking, Renewed-Banking, esx_banking et okokBanking, voir Remplacer votre script bancaire.
Argent des sociétés et des gangs
Le compte est un nom de métier ('police' ou 'society_police') ou un gang ('gang_ballas').
exports['hz_banking']:AddMoney(account, amount, reason) -- true / false. Crée le compte s'il manque
exports['hz_banking']:RemoveMoney(account, amount, reason) -- false quand le solde est trop bas
exports['hz_banking']:GetAccount(account) -- solde, 0 si inconnu
exports['hz_banking']:GetAccountBalance(account) -- pareil
exports['hz_banking']:GetAccountInfo(account) -- { type, id, iban, name, balance } ou nil
exports['hz_banking']:EnsureAccount(account, label) -- le crée s'il manque, renvoie les infos
exports['hz_banking']:GetTransactions(account, limit) -- dernières lignes, 200 au maximum
exports['hz_banking']:GetVersion()
Le motif (64 caractères) s'affiche dans l'historique du compte.
Historique personnel
L'argent personnel est l'argent en banque de votre framework : déplacez-le avec votre framework, comme d'habitude. Ces deux exports lisent l'historique, ou ajoutent une ligne pour de l'argent déplacé ailleurs (un paiement par téléphone, un magasin) afin qu'il apparaisse dans l'app bancaire.
-- who : un ID serveur ou un ID de personnage
exports['hz_banking']:GetPersonalTransactions(who, limit) -- les plus récentes d'abord, 200 au maximum
-- kind : 'deposit', 'withdraw', 'transfer_in' ou 'transfer_out'. Écrit une ligne, ne déplace pas d'argent
exports['hz_banking']:LogPersonalTransaction(who, kind, amount, reason, counterName) -- true / false
Factures
-- receiver : un ID serveur ou un ID de personnage
-- issuer : 'police' / 'society_police', 'gang_ballas', ou { type = 'personal', id = charId, label = 'John Doe' }
-- opts (facultatif) : { 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) -- les dernières factures du joueur
exports['hz_banking']:GetInvoice(id)
exports['hz_banking']:PayInvoice(source, id) -- payée depuis la banque du joueur
exports['hz_banking']:CancelInvoice(id)
exports['hz_banking']:GetUnpaidTotal(receiver) -- factures ouvertes plus pénalités
exports['hz_banking']:BillingEnabled() -- false quand les factures sont coupées
Une facture se présente ainsi :
{
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,
}
Épargne et prêts
charId est l'ID du personnage (citizenid ou identifier).
exports['hz_banking']:GetSavingsBalance(charId) -- 0 s'il n'y en a pas
exports['hz_banking']:GetCreditScore(charId)
exports['hz_banking']:GetLoan(charId) -- { remaining, installment, status, missed } ou nil
Events serveur
Events serveur locaux, pour un AddEventHandler dans un autre script serveur. Les joueurs ne peuvent pas les envoyer.
-- Un compte société ou gang a bougé à la banque (dépôt, retrait, virement, virement programmé)
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)
-- Factures : la table de facture ci-dessus
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êt est passé en défaut (une fois par prêt)
AddEventHandler('HZ-Banking:server:loanDefaulted', function(d)
-- d.charId, d.loanId, d.remaining
end)
HZ-Banking écoute aussi qb-banking:server:SetBankClosed(bankId, closed) pour fermer une agence pendant un braquage, voir Agences et banquiers.
Event client
-- Déclenché quand l'app bancaire ou le distributeur s'ouvre (false) et se ferme (true), pour masquer votre propre HUD
AddEventHandler('HZ-Banking:client:hud', function(visible) end)
HZ-Hud et la mini-carte du jeu sont masqués tout seuls.
