Personalização
Um único arquivo decide tudo o que você pode alterar: config.lua. O restante são as telas do aplicativo e a lógica protegida por escrow.
Qual arquivo decide o quê
Seção intitulada “Qual arquivo decide o quê”| Arquivo | O que ele decide | Aberto para edição |
|---|---|---|
config.lua | Framework, caminho das imagens, expiração, pagamentos, localização da loja de penhores, marcador, blip, atendente, lista negra, todos os textos e nome do app | Sim |
pawnshop.sql | As três tabelas, importadas uma única vez | Sim |
web/index.html, web/styles.css, web/script.js | As telas, o layout e os rótulos do aplicativo | — |
web/assets/pawn.png | O ícone do aplicativo | Sim |
web/assets/fries.png | A imagem exibida quando um item não possui foto | Sim |
client/main.lua, server/main.lua | A lógica | Escrow |
Não há pasta bridge nem pasta locales: o framework é uma única opção abaixo, e todo o texto fica em config.lua.
| Opção | O que faz | Padrão |
|---|---|---|
Config.Framework | "esx" ou "qb", em minúsculas. No QBox, use "qb" — o QBox executa resources QBCore através da sua camada de compatibilidade | "esx" |
Config.InventoryImagePath | A pasta de onde as imagens dos itens são lidas, no formato resource/pasta/. Para qb-inventory, "qb-inventory/html/images/" | "ox_inventory/web/images/" |
Config.Expire | Dias que uma oferta permanece ativa. Alterar o preço de uma oferta reinicia a contagem | 7 |
Pagamentos
Seção intitulada “Pagamentos”| Opção | O que faz | Padrão |
|---|---|---|
Config.Bank | true: compradores pagam pelo banco e vendedores sacam para o banco. false: ambos usam o item definido em Config.Money | true |
Config.Money | O item de inventário usado como dinheiro quando Bank está desativado — money, black_money ou um item próprio | "money" |
Com Bank desativado, o dinheiro precisa ser um item de inventário, que é como o ox_inventory gerencia o dinheiro em espécie. No inventário nativo do ESX e no QBCore, o dinheiro em mãos é uma conta e não um item, portanto mantenha Config.Bank = true nesses casos.
O dinheiro de uma venda não vai direto para o vendedor. Ele é adicionado ao saldo Pending (Pendente) no aplicativo, e o jogador o retira usando o botão de transferência.
Vendendo no balcão
Seção intitulada “Vendendo no balcão”| Opção | O que faz | Padrão |
|---|---|---|
Config.RequireLocation | true: criar e comprar ofertas precisa ser finalizado na loja de penhores | false |
Config.PawnShopLocation | Onde fica a loja de penhores: x, y, z e a direção (heading) do atendente | 412.17, 315.11, 103.13, direção 194.62 |
Config.InteractionDistance | Quão perto, em metros, o jogador deve estar para pressionar E. O servidor também valida | 1.0 |
Config.Marker | O marcador na porta: Type, Scale (x, y, z) e Color (r, g, b, a) | Tipo 20, azul-acinzentado escuro |
Config.Blip | O blip da rota: Sprite, Color, Scale | 480, 32, 1 |
Config.NPC | O Model de ped do atendente e a animação de entrega (Dict e Name) | a_m_m_business_01, mp_common / givetake1_a |
Como funciona com RequireLocation ativado: o jogador preenche a oferta ou toca em comprar, o celular traça uma rota até a loja de penhores e o marcador aparece quando ele está a menos de 20 metros. Pressionar E no marcador faz o atendente aparecer para a entrega, e a negociação é concluída.
O blip e o marcador só existem enquanto o jogador tem algo para finalizar lá; não há um blip permanente no mapa. Com RequireLocation desativado, nada disso é usado.
Config.Blip.Name não é usado para o rótulo do blip — esse nome vem de Config.Messages.blip_name.
Lista negra (Blacklist)
Seção intitulada “Lista negra (Blacklist)”Config.BlackList é uma lista de nomes de itens que nunca podem ser anunciados. Eles ficam de fora do seletor de itens, são recusados pelo servidor e qualquer oferta existente para um deles é removida do painel — junto com seus itens — na próxima vez que alguém abrir o aplicativo. Vem configurado com burger e weapon_appistol como exemplos.
Texto e idioma
Seção intitulada “Texto e idioma”Não há pasta de idiomas. Todo o texto que você pode alterar está em config.lua, em inglês:
| Opção | O que armazena |
|---|---|
Config.locales.en.app_name | O nome do aplicativo no celular e o título de suas notificações |
Config.locales.en.app_description | A linha descritiva abaixo dele na App Store |
Config.Messages | Todas as notificações: oferta criada, comprada e excluída, campos obrigatórios, falhas, “vá até a loja de penhores”, o aviso da tecla E e o blip |
Para jogar em outro idioma, traduza essas strings diretamente ali. Algumas respostas do servidor — “Insufficient items”, “Inventory full”, “This item cannot be listed for sale”, “You do not own this offer” e similares — são fixas no arquivo de servidor protegido por escrow e permanecem em inglês.
No ESX, as notificações chegam como notificações do lb-phone vindas do aplicativo. No QBCore, elas usam a própria notificação do framework.
Imagens dos itens
Seção intitulada “Imagens dos itens”O aplicativo exibe cada item como <Config.InventoryImagePath><item name>.png, lido diretamente da sua resource de inventário. Se uma imagem estiver faltando, web/assets/fries.png é exibida no lugar; substitua esse arquivo para alterar a imagem padrão.