Início › Documentação › Exports · origen_banking
Todos os exports são registados sob o nome de recurso origen_banking e são exclusivamente do servidor.
A maioria dos exports de contas devolve um invólucro estruturado em vez de um booleano simples:
-- success
{ success = true, data = { ... }, meta = { message = { key = '...', args = { ... } } } }
-- failure
{ success = false, error = { key = 'errors.insufficient_balance', args = { ... } } }O campo key é uma chave de idioma de locales/*.json, para que o recurso que chama possa traduzir a mensagem por si próprio.
Os exports de contas de trabalho da camada de compatibilidade usam um invólucro mais simples: { success = true, data = { balance = number } } ou { success = false, error = 'insufficient_balance' }, em que error é uma cadeia de texto simples.
getJobAccountBalance(jobName) → number, string|nilDevolve o saldo atual de uma conta de trabalho. Só de leitura: nunca cria a conta.
local balance, err = exports['origen_banking']:getJobAccountBalance('mechanic')| Parâmetro | Tipo | Descrição |
|---|---|---|
jobName |
string |
Nome exato do titular guardado na base de dados, p. ex. 'ambulance' |
Devolve 0 e um motivo de erro ('invalid_job_name' ou 'account_not_found') quando a conta não existe.
depositJobAccount(jobName, amount, detail) → tableAdiciona dinheiro a uma conta de trabalho. Cria a conta automaticamente se ainda não existir.
local res = exports['origen_banking']:depositJobAccount('mechanic', 2500, 'Repair job')
if res.success then print(res.data.balance) end| Parâmetro | Tipo | Descrição |
|---|---|---|
jobName |
string |
Nome do trabalho / sociedade |
amount |
number |
Inteiro positivo |
detail |
string |
Etiqueta de auditoria opcional mostrada no histórico de transações |
Erros: invalid_amount, invalid_job_name.
withdrawJobAccount(jobName, amount, detail) → tableRetira dinheiro de uma conta de trabalho. Nunca cria a conta automaticamente.
local res = exports['origen_banking']:withdrawJobAccount('mechanic', 500, 'Parts purchase')Erros: invalid_amount, account_not_found, insufficient_balance.
getAccountMoney(accountName) → numberAlias legado de getJobAccountBalance. Devolve apenas o saldo, ou 0.
addAccountMoney(accountName, amount) → booleanDepósito legado. Cria a conta automaticamente. Regista a transação como Society income.
removeAccountMoney(accountName, amount) → booleanLevantamento legado. Devolve false quando a conta não existe ou o saldo é insuficiente.
newAccount(data) → AccountCria um objeto de conta. Se data.id for omitido, é gerado um novo IBAN e a conta é guardada de imediato.
| Campo | Tipo | Descrição |
|---|---|---|
owner |
string |
ID de cidadão, nome do trabalho ou nome da gangue |
name |
string |
Nome a mostrar |
balance |
number |
Saldo inicial. Por omissão 0 |
default |
boolean |
Marca-a como a conta principal do jogador |
shared |
boolean |
Marca-a como conta partilhada de trabalho / gangue |
bank |
string |
ID opcional do banco a que a conta pertence |
GetAccountById(id) → Account | nilDevolve a conta a partir da cache em memória e, se não estiver lá, procura-a na base de dados.
local account = exports['origen_banking']:GetAccountById('1234567890123456')GetAccountAccessByCitizenid(citizenid) → tableDevolve a lista de acessos em bruto de um cidadão: um array de { accountId, permission }. A permissão é 'owner', 'manager' ou 'operator'.
GetAccountsInfoByCitizenId(citizenid) → tableDevolve a lista completa de contas de um cidadão, enriquecida para a interface: membros, tipo de conta ('personal' / 'shared'), a marca de principal da framework e o saldo em tempo real. As contas de trabalho e de gangue a que o jogador tem acesso nesse momento são acrescentadas em tempo de execução.
Este export resolve o acesso a trabalhos e gangues em cada chamada e pode criar a conta partilhada se ainda não existir. Não o chames dentro de um ciclo.
CreateInitialAccount(citizenid) → stringCria a conta principal de um cidadão e devolve o ID de conta gerado.
LoadAccountsForPlayer(citizenid)Pré-carrega em memória todas as contas de um cidadão ou partilhadas com ele. As contas são carregadas a pedido quando o jogador se liga, pelo que só é necessário para operações com jogadores desligados.
A «conta ativa» é a conta selecionada nesse momento nos metadados activeAccount do jogador. A «conta por omissão» é a marcada como default na base de dados.
GetActiveAccBalance(source) → number | nilDevolve o saldo da conta ativa do jogador. Fica em cache durante 500 ms.
PayWithAccId(accountId, amount, detail) → tableCobra a uma conta específica pelo seu ID.
| Parâmetro | Tipo | Descrição |
|---|---|---|
accountId |
string |
IBAN da conta de destino |
amount |
number |
Montante a cobrar |
detail |
string |
Motivo mostrado no histórico de transações |
Erros: errors.account_not_found, errors.insufficient_balance.
PayWithActiveAcc(source, amount, detail) → tableCobra à conta ativa do jogador.
local res = exports['origen_banking']:PayWithActiveAcc(source, 150, 'Parking fee')
if not res.success then print(res.error.key) endPayFromDefaultAcc(source, amount, detail) → tableCobra à conta por omissão do jogador. Quando essa conta é a principal da framework, o saldo é debitado do dinheiro bancário da framework em vez da base de dados.
ReceiveToActiveAcc(source, amount, detail) → tableCredita a conta ativa do jogador.
ReceiveToDefaultAcc(source, amount, detail) → tableCredita a conta por omissão do jogador. As contas principais da framework são creditadas diretamente no dinheiro bancário da framework.
SetActiveAccBalance(source, amount) → booleanSubstitui o saldo da conta ativa do jogador. Não é registada nenhuma transação.
SetDefaultAccBalance(source, amount) → booleanSubstitui o saldo da conta por omissão do jogador. Se for a principal da framework, a diferença é aplicada ao dinheiro bancário da framework.
Ambos os setters ignoram o histórico de transações e as verificações de permissões. Usa-os apenas para ferramentas de administração ou de migração.
CreateLoan(accountId, typeKey, amount, term, collateral) → tableCria um empréstimo sobre uma conta, aplicando todas as validações do servidor.
| Parâmetro | Tipo | Descrição |
|---|---|---|
accountId |
string |
Conta que recebe o desembolso |
typeKey |
string |
Chave do tipo de empréstimo de Config.Loans.Types, p. ex. 'personal' |
amount |
number |
Capital |
term |
number |
Número de prestações; tem de estar em allowedTerms |
collateral |
string |
Referência do bem. Obrigatória quando o tipo define requiresCollateral |
local res = exports['origen_banking']:CreateLoan(accountId, 'personal', 15000, 12)
if res.success then print(res.loanId) endErros: disabled, account_not_found, invalid_type, invalid_term.
GetPlayerLoans(citizenId) → tableDevolve todos os empréstimos de um cidadão, com a forma em que a interface os recebe.
HasOverdueLoan(citizenId) → booleanDevolve true quando o cidadão tem um empréstimo em atraso ou em incumprimento. Útil para restringir compras a crédito em stands, aluguer e recursos semelhantes.
if exports['origen_banking']:HasOverdueLoan(citizenid) then
-- deny the financed purchase
endnewBank(data) → BankCria uma entidade bancária.
GetBankById(id) → Bank | nilDevolve um banco a partir da cache ou da base de dados.
newCard(data) → CardCria um cartão associado a uma conta.
GetCardById(id) → Card | nilDevolve um cartão a partir da cache ou da base de dados.