Lojas de itens
Lojas de compra e venda de itens: departamento, armas, eletrônicos, caça, farmácia, polícia e outras. Abrem por um ped com target, ou por uma máquina do mapa. Cada loja tem a própria lista e o próprio pagamento.
Precisa de: krs, target, hud, bank
Este script usa o krs diretamente. Ele não usa o krs_helper e não roda em outros frameworks.
Instalação
ensure shopsColoque depois do krs e do target. O script não cria tabela. Veja a ordem no server.cfg.
Os itens das listas precisam existir no krs.
Como usar
O jogador mira no ped da loja e escolhe Abrir. A tela mostra os itens, o peso, o que ele já tem e o saldo. Ele monta o carrinho e paga, ou vende.
| Regra | O que acontece |
|---|---|
| Procurado | A loja não abre |
Imposto ou multa em aberto no bank | A loja não abre. A loja Banned é a exceção |
| Distância | Até 5 m de um ponto da loja, se ela tiver ponto em Location |
| Peso | A compra para se o total passar do peso máximo |
| Limite do item | A compra para com Limite de X atingido. |
| Item danificado | Não pode ser vendido |
Apagão (GlobalState.Blackout) | Sem o botão de banco nas lojas Cash |
Loja com Permission exige o grupo em serviço. Nela, a arma comprada é limitada a uma de cada por jogador e cada item entra no log Lojas.
Lojas sem ponto em Location, como Coffee, Soda e Donut, abrem pelo target de máquinas do mapa.
Configuração
Tudo fica em shared-side/shared.lua.
Pontos
{
Coords = vec3(24.51,-1346.75,29.49),
Ped = "mp_m_shopkeep_01",
Heading = 272.13,
Mode = "Departament"
},| Campo | O que é |
|---|---|
Coords | Posição |
Ped | Modelo do ped. Sem ele, o ponto é só a zona do target |
Heading | Direção do ped |
Mode | Chave da loja em List |
Extra | Segunda loja no mesmo ponto |
Circle | Raio da zona. Sem ele, a zona é uma caixa de 0,75 m |
Route | Routing bucket do ponto |
Lojas
Pipas = {
Name = "Loja de Pipas",
Description = "Pipas e linhas para soltar no céu.",
Mode = "Buy",
Type = "Cash",
List = {
pipa_simples = 200,
linha_seda = 2500
}
},| Campo | O que é |
|---|---|
Name, Description | Textos da tela |
Mode | Buy vende ao jogador, Sell compra dele |
Type | Cash paga no banco ou em dinheiro, Consume paga com o item de Item, Gemstone paga em diamantes |
Item | Item usado com Consume |
Permission | Grupo em serviço. Aceita cargo mínimo, como Policia-11 |
Route | Routing bucket exigido |
List | Item e preço. Preço 0 é grátis |
Gemstone só funciona com Mode = "Buy". Até 100 itens diferentes por pedido.
| Loja | Nome | Pagamento ou acesso |
|---|---|---|
Mecanico | Peças da Oficina | Grupo Bennys |
Banned | Banidos | Diamantes, Route = 9999998 |
Ammunation | Ammu-Nation | Cash |
Departament | Departamento | Cash |
Megamall | Megamall | Cash |
Eletronics | Eletrônicos | Cash |
Presentes | Presentes | Cash |
Coffee, Soda, Donut, Hamburger, Hotdog, Chihuahua, Water, Cigarette | Máquinas e lanches | Cash |
Paramedico | Farmácia | Grupo Paramedico |
Hunting, Miners | Caça, Mineradores | Venda, Cash |
Hunting2 | Caça & Equipamentos | Cash |
Policia | Departamento de Polícia | Grupo Policia |
PoliciaTatico | Arsenal Tático | Grupo Policia-11 |
Pipas | Loja de Pipas | Cash |
Para programadores
O evento local shops:Open abre uma loja, pelo número do ponto em Location ou pela chave em List:
TriggerEvent("shops:Open", "Pipas")O servidor confere grupo, distância e Route. Loja sem ponto em Location não tem conferência de distância.
O evento de cliente inventory:Close fecha a loja.
Problemas comuns
| Mensagem | Causa |
|---|---|
Sem saldo no banco ou sem o cartão do banco. | Falta saldo ou o cartão |
Dinheiro insuficiente. | Falta o item dollar |
Você não consegue carregar tudo isso. | O carrinho passa do peso máximo |
Limite de X atingido. | Limite do item, ou arma repetida em loja com Permission |
Você não possui a quantidade necessária. | Venda acima do que o jogador tem |
Itens danificados não podem ser vendidos. | Item danificado na venda |
