Accueil › Documentation › Exports · origen_banking
Tous les exports sont enregistrés sous le nom de ressource origen_banking et sont exclusivement côté serveur.
La plupart des exports de comptes renvoient une enveloppe structurée plutôt qu’un simple booléen :
-- success
{ success = true, data = { ... }, meta = { message = { key = '...', args = { ... } } } }
-- failure
{ success = false, error = { key = 'errors.insufficient_balance', args = { ... } } }Le champ key est une clé de langue issue de locales/*.json, ce qui permet à la ressource appelante de traduire elle-même le message.
Les exports de comptes de métier de la couche de compatibilité utilisent une enveloppe plus simple : { success = true, data = { balance = number } } ou { success = false, error = 'insufficient_balance' }, où error est une simple chaîne de caractères.
getJobAccountBalance(jobName) → number, string|nilRenvoie le solde actuel d’un compte de métier. Lecture seule : ne crée jamais le compte.
local balance, err = exports['origen_banking']:getJobAccountBalance('mechanic')| Paramètre | Type | Description |
|---|---|---|
jobName |
string |
Nom exact du titulaire enregistré en base de données, p. ex. 'ambulance' |
Renvoie 0 et un motif d’erreur ('invalid_job_name' ou 'account_not_found') quand le compte n’existe pas.
depositJobAccount(jobName, amount, detail) → tableAjoute de l’argent à un compte de métier. Crée automatiquement le compte s’il n’existe pas encore.
local res = exports['origen_banking']:depositJobAccount('mechanic', 2500, 'Repair job')
if res.success then print(res.data.balance) end| Paramètre | Type | Description |
|---|---|---|
jobName |
string |
Nom du métier / de la société |
amount |
number |
Entier positif |
detail |
string |
Libellé d’audit facultatif affiché dans l’historique des transactions |
Erreurs : invalid_amount, invalid_job_name.
withdrawJobAccount(jobName, amount, detail) → tableRetire de l’argent d’un compte de métier. Ne crée jamais le compte automatiquement.
local res = exports['origen_banking']:withdrawJobAccount('mechanic', 500, 'Parts purchase')Erreurs : invalid_amount, account_not_found, insufficient_balance.
getAccountMoney(accountName) → numberAlias hérité de getJobAccountBalance. Renvoie uniquement le solde, ou 0.
addAccountMoney(accountName, amount) → booleanDépôt hérité. Crée automatiquement le compte. Enregistre la transaction sous le nom Society income.
removeAccountMoney(accountName, amount) → booleanRetrait hérité. Renvoie false quand le compte n’existe pas ou que le solde est insuffisant.
newAccount(data) → AccountCrée un objet de compte. Si data.id est omis, un nouvel IBAN est généré et le compte est enregistré immédiatement.
| Champ | Type | Description |
|---|---|---|
owner |
string |
ID de citoyen, nom du métier ou nom du gang |
name |
string |
Nom affiché |
balance |
number |
Solde initial. 0 par défaut |
default |
boolean |
Le marque comme compte principal du joueur |
shared |
boolean |
Le marque comme compte partagé de métier / gang |
bank |
string |
ID facultatif de la banque à laquelle appartient le compte |
GetAccountById(id) → Account | nilRenvoie le compte depuis le cache en mémoire et, à défaut, le cherche en base de données.
local account = exports['origen_banking']:GetAccountById('1234567890123456')GetAccountAccessByCitizenid(citizenid) → tableRenvoie la liste d’accès brute d’un citoyen : un array de { accountId, permission }. La permission vaut 'owner', 'manager' ou 'operator'.
GetAccountsInfoByCitizenId(citizenid) → tableRenvoie la liste complète des comptes d’un citoyen, enrichie pour l’interface : membres, type de compte ('personal' / 'shared'), l’indicateur de compte principal du framework et le solde en direct. Les comptes de métier et de gang auxquels le joueur a accès à cet instant sont ajoutés à l’exécution.
Cet export résout l’accès aux métiers et aux gangs à chaque appel et peut créer le compte partagé s’il n’existe pas encore. Ne l’appelle pas dans une boucle.
CreateInitialAccount(citizenid) → stringCrée le compte principal d’un citoyen et renvoie l’ID de compte généré.
LoadAccountsForPlayer(citizenid)Précharge en mémoire tous les comptes appartenant à un citoyen ou partagés avec lui. Les comptes sont chargés à la demande lors de la connexion du joueur ; ce n’est donc utile que pour les opérations sur des joueurs hors ligne.
Le « compte actif » est le compte actuellement sélectionné dans les métadonnées activeAccount du joueur. Le « compte par défaut » est celui marqué default en base de données.
GetActiveAccBalance(source) → number | nilRenvoie le solde du compte actif du joueur. Mis en cache pendant 500 ms.
PayWithAccId(accountId, amount, detail) → tableDébite un compte précis à partir de son ID.
| Paramètre | Type | Description |
|---|---|---|
accountId |
string |
IBAN du compte cible |
amount |
number |
Montant à débiter |
detail |
string |
Motif affiché dans l’historique des transactions |
Erreurs : errors.account_not_found, errors.insufficient_balance.
PayWithActiveAcc(source, amount, detail) → tableDébite le compte actif du joueur.
local res = exports['origen_banking']:PayWithActiveAcc(source, 150, 'Parking fee')
if not res.success then print(res.error.key) endPayFromDefaultAcc(source, amount, detail) → tableDébite le compte par défaut du joueur. Quand ce compte est le compte principal du framework, le solde est prélevé sur l’argent bancaire du framework plutôt que sur la base de données.
ReceiveToActiveAcc(source, amount, detail) → tableCrédite le compte actif du joueur.
ReceiveToDefaultAcc(source, amount, detail) → tableCrédite le compte par défaut du joueur. Les comptes principaux du framework sont crédités directement sur l’argent bancaire du framework.
SetActiveAccBalance(source, amount) → booleanRemplace le solde du compte actif du joueur. Aucune transaction n’est enregistrée.
SetDefaultAccBalance(source, amount) → booleanRemplace le solde du compte par défaut du joueur. Si c’est le compte principal du framework, la différence est appliquée à l’argent bancaire du framework.
Ces deux setters contournent l’historique des transactions et les vérifications de permissions. Ne les utilise que pour des outils d’administration ou de migration.
CreateLoan(accountId, typeKey, amount, term, collateral) → tableCrée un prêt sur un compte en appliquant toutes les validations côté serveur.
| Paramètre | Type | Description |
|---|---|---|
accountId |
string |
Compte qui reçoit les fonds |
typeKey |
string |
Clé du type de prêt issue de Config.Loans.Types, p. ex. 'personal' |
amount |
number |
Capital |
term |
number |
Nombre de mensualités ; doit figurer dans allowedTerms |
collateral |
string |
Référence du bien. Obligatoire quand le type définit requiresCollateral |
local res = exports['origen_banking']:CreateLoan(accountId, 'personal', 15000, 12)
if res.success then print(res.loanId) endErreurs : disabled, account_not_found, invalid_type, invalid_term.
GetPlayerLoans(citizenId) → tableRenvoie tous les prêts d’un citoyen, sous la forme où l’interface les reçoit.
HasOverdueLoan(citizenId) → booleanRenvoie true quand le citoyen a un prêt en retard ou en défaut de paiement. Utile pour restreindre les achats à crédit dans les concessions, les locations et les ressources similaires.
if exports['origen_banking']:HasOverdueLoan(citizenid) then
-- deny the financed purchase
endnewBank(data) → BankCrée une entité bancaire.
GetBankById(id) → Bank | nilRenvoie une banque depuis le cache ou la base de données.
newCard(data) → CardCrée une carte liée à un compte.
GetCardById(id) → Card | nilRenvoie une carte depuis le cache ou la base de données.