Skip to content

Petshop ​

Loja de animais e de roupas para eles. Tem balcão de compra, gestão de estoque, preço e vitrine pelos funcionários, e veterinário. As vendas e consultas vão para o cofre da loja, e a reposição sai dele.

Precisa de: oxmysql, ox_lib, krs_helper, animals

Instalação ​

cfg
ensure animals
ensure petshop

Coloque depois do krs_helper. As tabelas são criadas sozinhas. Veja a ordem no server.cfg.

  1. Crie o emprego de Config.Group, por padrão Petshop. Cargo 1 é o mais alto. No QBCore e no vRP, ligue o nome em Config.Groups do krs_helper.
  2. Cadastre os itens dos animais, como na página do animals.
  3. Troque no config.lua os lugares de Points e Showcase, que usam coordenadas de um mapa específico.

Sem framework, cada funcionário entra pelo server.cfg:

cfg
add_ace group.Petshop group.Petshop allow
add_principal identifier.license:LICENSE_DO_JOGADOR group.Petshop

Sem framework a loja abre, mas não há dinheiro nem itens para vender.

Pacote opcional de modelos ​

O config.lua procura o resource animals_modelos. Inicie o pacote antes do animals e do petshop.

Sem o pacoteCom o pacote
Animais à vendaOs 14 de Config.PetsMais 13, que o pacote soma a Config.Pets com custo próprio
Roupas à vendaTodas as peças de clothes.lua, mas nenhum modelo do jogo as veste. Com Enabled.Clothes = false, saem da lojaServem nos modelos do pacote que têm a peça

Animal de Config.Pets sem o modelo no servidor some da loja sozinho, com ou sem o pacote.

Como usar ​

Os balcões abrem pelo target de Config.Target. Sem target, ou com o resource desligado, o jogador chega a 2 m e aperta a tecla de Config.Key.

Compra ​

Qualquer jogador usa, a até 3 m do balcão.

  1. Escolha a aba de animais ou o tipo de roupa. O animal aparece em 3D.
  2. Passe o mouse para provar. Nada é comprado.
  3. Adicione ao carrinho.
  4. Pague no cartão. É preciso saldo no banco. No krs, também o cartão do banco.

O animal chega como item. A roupa entra na coleção do personagem e cada peça só se compra uma vez. Se algo não couber, já for do jogador ou estiver sem estoque, fica de fora e o resto é vendido.

Gestão ​

Exige funcionário em serviço, no balcão de gestão.

AçãoO que faz
EstoqueMostra custo, quantidade e preço. O preço fica entre o custo e Margin.Max vezes o custo
PedidoCompra estoque pelo custo, com dinheiro do cofre
VitrinePõe um animal com estoque em cada lugar de Showcase. Ele aparece sentado na loja
CofreFora do krs: deposita do banco do funcionário e saca para ele

Veterinário ​

Exige funcionário em serviço, na mesa. A tela lista os animais a até Vet.Radius metros. Tratar pede o aceite do dono, cobra Vet.Price no cartão dele e deixa o animal com vida 100, e fome e sede no mínimo 50. Animal desmaiado acorda.

Estoque e loja sem dono ​

SituaçãoEstoqueDinheiro da venda
Ninguém no grupoInfinito, sem mostrar a quantidadeSai do jogador e não vai a nenhum cofre
Alguém no grupoReal. Começa em zeroVai para o cofre

Quando a loja fica sem dono, o estoque é zerado e não volta. O servidor confere a cada 10 s. Com Unowned.Infinite = false, o estoque é sempre real.

FrameworkQuem conta como dono
krs, QBCore, vRPMembros do grupo, online ou não
Creative, sem frameworkSó membros online. Quando o último sai, o estoque zera

Onde fica o cofre ​

FrameworkCofre
krsBanco da organização. Depósito e saque pelo painel de organizações
OutrosTabela petshop_vault. Depósito e saque na tela de gestão

Permissão ​

O grupo é Config.Group. Cada ação exige o cargo mínimo de Config.Levels, onde 1 é o mais alto.

FrameworkEm serviçoCargo
krs, CreativeServiço do frameworkO da organização
QBCoreJob com serviço ligadoO maior grau do job é o cargo 1
vRPBasta ter o grupoPosição do grupo em Config.Groups
Sem frameworkEstar no add_principalSempre 1

Configuração ​

Tudo fica em config.lua.

OpçãoPadrãoO que muda
Group"Petshop"Grupo dos funcionários
LevelsPrice = 2, Showcase = 2, Vet = 3, Restock = 4, Vault = 1Cargo mínimo. Restock também abre a gestão
Enabledtodos trueLiga Shop, Manage, Vet e Clothes
PointsShop, Manage, VetLugar dos balcões, com vec3
Distance3.0Distância máxima do balcão, em metros
Showcase4 lugaresVitrine, com vec4(x, y, z, direção)
Pets14 animais do jogoItem e custo de reposição. O animal precisa existir em Config.Models do animals
Clothes.Cost150Custo de reposição de cada peça
Clothes.ItemsvazioCusto por peça, como petwear_suit = 300
Margin.Default2.0Preço inicial, em vezes o custo
Margin.Max4.0Preço máximo, em vezes o custo
Vet.Price1500Preço da consulta
Vet.Radius5.0Raio da mesa, em metros
Unowned.InfinitetrueEstoque infinito sem dono
Line50Máximo de unidades por item
Lines150Máximo de itens diferentes no carrinho
Target"target""target", "qb-target", "ox_target" ou ""
Key"E"Tecla padrão sem target
Notify.Time5000Duração dos avisos, em ms
Interface.Icons""Imagens dos itens. Vazio usa o inventário do krs. Modelo com {item}, como "nui://qb-inventory/html/images/{item}.png"
Interface.Color"#b3c0ff"Cor de destaque
LogtrueRegistra vendas, reposições, consultas e cofre no log do krs_helper

Os animais vêm do animals e as roupas do clothes.lua dele. Depois de mudar qualquer um dos dois, reinicie o petshop. O script não traz imagem de item.

Para programadores ​

server-side/ganchos.lua tem o cofre e a imagem do animal:

lua
Cofre.Saldo(grupo)
Cofre.Depositar(grupo, valor, charId)  -- true só se o dinheiro entrou
Cofre.Retirar(grupo, valor, charId)    -- só tira se tiver saldo; true/false
Cofre.Painel                           -- true mostra depósito e saque na gestão
Ganchos.Imagem(item)

client-side/ganchos.lua tem os adaptadores de target e a HUD. Os eventos locais petshop:Shop, petshop:Manage e petshop:Vet abrem as telas.

Problemas comuns ​

MensagemCausa
X está em Config.Pets, mas não existe em Config.Models do animals; fica fora da lojaFalta o animal no animals ou o pacote opcional
X: custo inválido (inteiro, 1 ou mais); fica fora da lojaCusto que não é inteiro ou é menor que 1
Só funcionários do petshop em serviço.Sem o grupo ou fora de serviço
Seu cargo não permite isso.Cargo abaixo de Config.Levels
Saldo insuficiente no cofre do petshop.O cofre não cobre a reposição ou o saque
Pagamento recusado. É preciso o cartão do banco e saldo suficiente.Falta saldo ou, no krs, o cartão
REEMBOLSO FALHOU ou LOJA NÃO RECEBEU no logDevolva ou credite o valor à mão