Bancadas de fabricação
Mesas de fabricação criadas em jogo. A staff define posição, acesso e receitas pelo editor, sem mexer em arquivo. As receitas aparecem sobre o tampo da mesa e o jogador fabrica com o mouse. Cada jogador tem uma fila própria, que continua rodando mesmo longe da mesa.
Precisa de: krs, target, inventory, hud. Opcional: bancada e kay_organizations.
Instalação
ensure kay_craftingColoque depois do krs. As tabelas são criadas sozinhas. Veja a ordem no server.cfg.
A criação usa ADD COLUMN IF NOT EXISTS, sintaxe do MariaDB.
O item craftbench da mesa portátil já vem na configuração de itens do krs.
Comandos
| Comando | O que faz |
|---|---|
/craftadmin | Abre o editor de mesas e receitas |
Permissão
O editor exige o grupo Admin no cargo 1. Admin também tem acesso a qualquer mesa, sem as regras dela, e vê um atalho para editar a mesa aberta.
Criar uma mesa
- Rode
/craftadmin. - Crie a mesa, dê um nome e escolha o modelo.
- Posicione a mesa no mapa.
- Salve. Só depois de salvar dá para adicionar receitas.
- Adicione as receitas.
| Campo | O que muda |
|---|---|
| Nome da mesa | Até 60 caracteres |
| Modelo (prop) | Um dos itens de Config.Models. Sem prop usa um móvel do próprio mapa |
| Grupos | Quem tem acesso. Sem grupo, todos têm |
| Cargo mínimo | Cargo do grupo ou acima. Qualquer membro aceita todos |
| Fila por jogador | Fabricações simultâneas na fila, de 1 a 10. Padrão 3 |
| Chance de alertar a polícia | De 0 a 100%, a cada fabricação |
| Precisa estar em serviço | Exige serviço no grupo |
| Mesa ativa | Desligada, a mesa some do mapa |
| Mesa portátil | Vira item. Veja abaixo |
| Upgrade de armas | Mostra Modificar arma no olho. Precisa da bancada. Quem já está conectado só vê a mudança ao reconectar |
O editor também duplica, apaga e teleporta até a mesa. A cópia nasce desativada e leva as receitas.
Apagar a mesa apaga as receitas e a fila dela. Os ingredientes de quem estava na fila não voltam.
Receitas
| Campo | Limite | O que muda |
|---|---|---|
| Item que sai | Qualquer item da base | |
| Quantidade | 1 a 1000 | Quanto sai por unidade fabricada |
| Tempo por unidade | 1 a 86400 s | Tempo de fabricação |
| Categoria | 30 caracteres | Agrupa as receitas e o XP. Vazia vira Geral |
| Nível mínimo | 0 a 30 | Nível exigido na categoria |
| XP ganho | 0 a 10000 | XP na categoria, por unidade |
| Máx. por vez | 1 a 100 | Quantidade máxima de um pedido. Item único fica em 1 |
| Ingredientes | até 12 | Consumidos ao fabricar. Até 100000 de cada |
| Ferramentas | até 6 | Precisa ter na mochila. Não são consumidas |
| Descrição | 255 caracteres | Vazia usa a descrição do item |
| Ordem | Posição na lista | |
| Receita ativa | Desligada, some da mesa |
A receita precisa de pelo menos um ingrediente ou uma ferramenta. Itens danificados não contam.
Como o jogador usa
- Chega perto: até 5 m, as receitas aparecem sobre o tampo da mesa.
- Usa
Abrirno olho. - Escolhe a receita e a quantidade e fabrica. Os ingredientes saem na hora.
- Volta depois para coletar. O item espera na fila, mesmo após reiniciar o servidor.
Esc fecha. A mesa não abre dentro de veículo, com o jogador caído ou procurado. Afastar-se mais de 4,5 m também fecha.
Pedidos do mesmo jogador rodam um depois do outro. Cancelar devolve os ingredientes e adianta os pedidos seguintes. Item pronto não pode ser cancelado, só coletado.
O XP entra ao coletar.
Com o kay_organizations, o VIP da organização reduz o tempo de fabricação.
Mesa portátil
- Ligue
Mesa portátile salve. A mesa precisa de modelo. - Use
Gerar item da mesapara receber o item. - O jogador usa o item e posiciona a mesa, a até 10 m dele.
- Para guardar, quem montou usa
Recolherno olho. O item volta para a mochila.
A mesa montada fica salva e continua lá depois de reiniciar o servidor. O item leva o número da mesa, no formato craftbench-1. Se a mesa for apagada, o item avisa Esta bancada não existe mais.
Configuração
Tudo fica em shared-side/config.lua. As mesas e receitas ficam no banco.
| Opção | Padrão | O que muda |
|---|---|---|
Distance | 3.0 | Distância máxima para usar a mesa |
SpawnDistance | 80.0 | Distância em que o prop aparece |
PortableItem | "craftbench" | Item base da mesa portátil |
GhostModel | "gr_prop_gr_bench_04a" | Prop usado para posicionar uma mesa sem modelo |
Zone.Radius | 0.6 | Raio da zona do olho |
Zone.Distance | 2.0 | Distância de uso do olho |
Stand | 0.5 | Distância em que o jogador fica da mesa |
Camera.Models | gr_prop_gr_bench_04a com Top = 0.95 | Altura do tampo por modelo. Sem entrada, o script mede sozinho |
Anim | Animação do jogador na mesa | |
Models | 8 modelos | Modelos aceitos no editor, com o nome mostrado |
Tela sobre a mesa
| Opção | Padrão | O que muda |
|---|---|---|
Board.Width, Board.Height | 2048, 1024 | Resolução da tela, em pixels |
Board.Margin | 0.03 | Margem nas bordas do tampo |
Board.Lift | 0.005 | Altura sobre o tampo |
Board.Size | { 1.2,0.5 } | Tamanho da tela em mesa sem prop |
Board.Wheel | 100 | Velocidade da rolagem |
Board.Range | 5.0 | Distância em que as receitas aparecem |
Board.Step | 0.05 | Precisão da medição do tampo |
Câmera
| Opção | Padrão | O que muda |
|---|---|---|
Eye.Settle | 600 | Tempo da transição, em ms |
Eye.Ahead | 0.1 | Avanço a partir da cabeça |
Eye.Up | 0.05 | Altura a partir da cabeça |
Eye.Fov | 79.0 | Campo de visão |
Limites do editor
Opção em Limits | Padrão |
|---|---|
Amount | 1000 |
Ingredient | 100000 |
Ingredients | 12 |
Tools | 6 |
Time | 86400 |
Xp | 10000 |
Skill | 30 |
Qty | 100 |
Queue | 10 |
Para programadores
-- servidor: confere se o jogador pode usar a modificação de armas nesta mesa
-- devolve CharId e nome da mesa, ou false e o motivo
local CharId, Nome = exports.kay_crafting:UpgradeContext(source, Key)Key é b:<id> para mesa fixa e p:<chave> para mesa montada.
Evento de cliente: kay_crafting:Sync, com a lista de mesas. Eventos de servidor: kay_crafting:UsePortable, disparado pelo item, e kay_crafting:Pickup. Callbacks pelo krs: kay_crafting:List, Open, Preview, Craft, Cancel, Collect e Admin, todos com o prefixo kay_crafting:.
Problemas comuns
| Mensagem | Causa |
|---|---|
Você não tem acesso a esta bancada. | Grupo, cargo ou serviço não confere |
Chegue mais perto da bancada. | Fora de Distance, ou em outra instância |
Sua fila nesta bancada está cheia. | Atingiu Fila por jogador |
Precisa de nível 5 em Armas. | Nível da categoria abaixo do mínimo |
Posicione a mesa no mapa antes de salvar. | Mesa fixa sem posição |
Mesa portátil precisa de um modelo de prop. | Mesa portátil com Sem prop |
Salve a mesa como portátil primeiro. | Gerar item da mesa em mesa fixa |
