Skip to main content
O five-bank é o recurso de banco do servidor. Ele fornece uma interface NUI moderna (React + Vite, já compilada em web/build/) acessível em pontos de atendimento (caixas eletrônicos) espalhados pelo mapa via ox_target.

Funcionalidades

Conta pessoal

Depósito e saque do saldo bancário do vRP usando o item dollar.

Contas conjuntas

Contas compartilhadas dos tipos casal, familia, empresarial e conjunto, com convites (aceitar/recusar) e limite de participantes configurável.

Transferências

Entre jogadores (por chave de transferência: usuário ou passaporte) e para contas conjuntas (chave no formato j{id}).

Faturas e impostos

Faturas (bank_invoices) e impostos legados (taxes): consulta e pagamento.

Multas

Leitura e pagamento de multas pendentes da tabela mdt_creative_fines.

Investimentos (CDB)

Aplicação e resgate com rendimento diário fixo de 1,15% (CDB 115%).

Histórico de saldo

Gravação semanal e mensal para alimentar os gráficos da dashboard.

Personalização da conta

Foto de perfil, nome, apelido, username, gênero, tipo de chave de transferência e PIN de segurança.
Integração opcional de logs via five_logs (depósito, saque e transferência).
O recurso cria automaticamente todas as suas tabelas no MySQL ao iniciar. Não é necessário rodar SQL manualmente.

Dependências

Declaradas/usadas no fxmanifest.lua e no código.

vrp

Framework base (@vrp/lib/utils.lua, @vrp/config/Global.lua, @vrp/config/Item.lua, além de lib/Tunnel e lib/Proxy).

oxmysql

Acesso ao banco de dados (@oxmysql/lib/MySQL.lua).

ox_target

Cria as zonas de interação dos caixas (exports.ox_target:addSphereZone). Obrigatório para abrir o banco pelo mundo.

five_logs (opcional)

Se estiver iniciado, registra logs das operações. O recurso funciona normalmente sem ele.
Dependências de itens/sistema vRP usadas em runtime:
  • Item dollar – usado em depósitos e saques (vRP.TakeItem / vRP.GenerateItem).
  • Tabelas externas taxes, invoices e mdt_creative_fines – consultadas para impostos, faturas legadas e multas (geradas por outros recursos, como o MDT).

Configuração

Todo o ajuste do recurso fica em config/config.lua. O arquivo config/functions.lua contém apenas a criação de tabelas e funções auxiliares internas (não precisa ser editado).
Para contas casal e familia o servidor exige no mínimo 2 participantes. Se você adicionar um novo tipo aqui, precisará também incluí-lo na lista validTypes em server-side/core.lua.
  • Bank.Tax.Rate – percentual base do imposto aplicado pelo export AddTaxes. Com 0.10, um valor base de 1000 gera imposto de 100.
  • Bank.Tax.VipDiscounts – descontos por permissão vRP (vRP.HasService). O primeiro item correspondente da lista é aplicado (ordem importa) e seu multiplier multiplica o imposto. Ex.: jogador Ouro paga 100 * 0.65 = 65. Quanto menor o multiplier, maior o desconto.
O imposto final é arredondado para baixo (math.floor) e, se ficar menor que 1, não é gerado.

Localizações

Pontos de acesso ao banco definidos em Bank.Locations (config/config.lua). Cada coordenada vira uma addSphereZone do ox_target (raio 1.75) com a opção “Abrir Banco”.

Comandos

Nenhum. O recurso não registra comandos de chat. O banco é aberto pela interação ox_target nos Bank.Locations, ou disparando o evento five-bank:open a partir de outro recurso.

Exports

Servidor (server-side/core.lua)

Exports compatíveis (substituem o antigo exports.bank:*). passport corresponde ao user_id do vRP. Exemplo de uso a partir de outro recurso:

Cliente

Nenhum export é exposto no client-side.

Eventos

Notificações são enviadas via evento vRP Notify no formato ("Banco", mensagem, cor, duração).

Banco de Dados

Tabelas criadas automaticamente (CREATE TABLE IF NOT EXISTS) na inicialização.
Tabelas externas apenas lidas/atualizadas: taxes, invoices, mdt_creative_fines.

Customização

Locais dos caixas

  • Adicione/remova pontos em Bank.Locations. Para mudar raio/ícone/texto, edite o bloco addSphereZone em client-side/core.lua.

Contas conjuntas

  • Ajuste a capacidade em Bank.MaxParticipants (inclui o criador). Para criar um tipo novo, adicione a chave aqui e na tabela validTypes em server-side/core.lua.

Impostos e descontos VIP

  • Bank.Tax.Rate controla o percentual base. Em Bank.Tax.VipDiscounts, mapeie as permissões do seu servidor para multiplicadores (a ordem importa).

Valores fixos no código (não estão no config)

Para alterá-los edite server-side/core.lua:
  • Taxa diária do CDB: CDB_DAILY_RATE = 0.0115 (1,15% ao dia).
  • PIN padrão: "0000" (4 dígitos numéricos).
  • Item de depósito/saque: "dollar".