Funcionalidades
Máquinas dinâmicas
Criadas, movidas, editadas e removidas pelo painel administrativo, com posicionamento visual no mundo.
Lavagem com taxa
O jogador informa o valor, a máquina desconta a taxa configurada e devolve o restante em dinheiro limpo.
Limpadores
Cada lavagem consome itens de limpeza, abastecidos previamente na máquina pelos jogadores.
Upgrades
Eficiência aumenta o teto por lavagem; Potência reduz o tempo. Cinco níveis cada, pagos em dinheiro.
Prop animada
A máquina usa a secadora
bkr_prop_prtmachine_dryer, que troca de modelo enquanto liga e enquanto lava.Permissão por máquina
Cada máquina pode exigir uma permissão vRP específica para ser aberta.
Painel em NUI
Interface React com telas de lavagem e de administração, cor de destaque configurável por máquina.
Logs completos
Início, cancelamento, coleta, upgrades, limpadores e alterações de máquina, via
five_logs ou webhook.O recurso cria as próprias tabelas no MySQL ao iniciar. Não é necessário rodar SQL manualmente.
Dependências
vrp
Framework base (
@vrp/lib/utils.lua, @vrp/config/Global.lua).oxmysql
Persistência das máquinas, do estado das lavagens e das configurações (
@oxmysql/lib/MySQL.lua).sleepless_interact
Interação padrão com a máquina. Pode ser trocada por marcador no
client-side/thread.lua.five_logs
Opcional. Sem ele, os logs caem automaticamente no fallback por webhook do Discord.
Configuração
config/config.lua
Arquivo enxuto: define apenas visual, moeda e o acesso ao painel administrativo.Valores da lavagem
Os números da lavagem são padrões noserver-side/core.lua e podem ser alterados em jogo pelo painel administrativo, ficando persistidos na tabela five_laundry_settings.
Com os valores padrão, lavar R 90.000 e leva 50 segundos em uma máquina sem upgrade de potência.
Upgrades
Os upgrades são pagos com dinheiro do jogador (
Functions.Payment) e pertencem à máquina, não a quem pagou.
Interação (client-side/thread.lua)
O modo de interação é escolhido no topo do arquivoclient-side/thread.lua.
Comandos
Painel administrativo
1
Criar a máquina
No painel, use Criar e escolha se a máquina terá objeto físico. O jogo entra em modo de posicionamento para você fixar o local e a rotação.
2
Configurar
Defina nome, permissão exigida e cor de destaque da máquina. Sem permissão definida, qualquer jogador pode abrir.
3
Ajustar os números
Ainda no painel, altere itens, taxa, tempo, custo em limpadores e regras de cancelamento. As mudanças são salvas em
five_laundry_settings.4
Gerenciar
O painel também permite editar, teleportar até a máquina, atualizar a lista e remover máquinas.
Fluxo de uma lavagem
1
Abastecer
Um jogador adiciona limpadores à máquina (item
Cleaner). Eles ficam na máquina, disponíveis para qualquer lavagem seguinte.2
Iniciar
O jogador informa o valor. O sistema valida o teto da eficiência, o dinheiro sujo em posse e os limpadores da máquina, cobra tudo e inicia a contagem.
3
Aguardar
A prop entra em animação e a máquina fica travada até o fim. Cancelar devolve o dinheiro sujo conforme
RefundPercent.4
Coletar
Ao terminar, alguém precisa coletar o dinheiro limpo antes que a máquina aceite uma nova lavagem.
Banco de dados
Integração
O arquivoconfig/functions.lua é a ponte com o framework. Para portar o recurso, reescreva o corpo das funções mantendo nome, parâmetros e retorno.
Categorias de log
LAVAGEM-INICIOU, LAVAGEM-CANCELOU, LAVAGEM-COLETOU, LAVAGEM-UPGRADE, LAVAGEM-LIMPADORES, CRIOU-LAVAGEM, EDITOU-LAVAGEM, REMOVEU-LAVAGEM e LAVAGEM-CONFIG.
Cada categoria tem um webhook próprio em config/webhooks.lua, usado apenas quando o five_logs não está rodando.
Customização
Trocar os itens da lavagem
Trocar os itens da lavagem
Altere
Laundry.Items pelo painel administrativo. DirtyMoney é consumido, CleanMoney é entregue e Cleaner é o insumo abastecido na máquina. Os três precisam existir no Item.lua do vRP.Deixar a lavagem mais lenta ou mais cara
Deixar a lavagem mais lenta ou mais cara
Suba
WashTime para aumentar o tempo por BaseValue, CleanerCost para exigir mais limpadores e TaxPercent para reduzir o retorno. Para limitar o giro, baixe o DefaultLimit da eficiência.Restringir uma máquina a uma facção
Restringir uma máquina a uma facção
Ao criar ou editar a máquina, informe a permissão vRP no campo correspondente. Jogadores sem ela não conseguem abrir o painel daquela máquina.
Usar marcador em vez de target
Usar marcador em vez de target
Troque
Interaction para "marker" em client-side/thread.lua. O bloco Marker controla distância, tecla, tipo, tamanho, cor e texto flutuante.
