Fumo
Cigarro, charuto, baseado, vape, bong e narguilé. O jogador segura para tragar, solta fumaça, passa para outra pessoa e divide o narguilé em mangueiras. O servidor confere posse, gasto, distância, permissão e intervalo.
Precisa de: ox_lib, krs_helper
Funciona com krs, QBCore, Creative, vRP e modo none. Stress e o efeito Weed só existem no krs.
Instalação
ensure kay_fumoColoque depois do krs_helper e da mira. Veja a ordem completa. Não há SQL para importar.
Itens
No krs, os itens já existem. Nos outros frameworks, cadastre no seu inventário. Os nomes mudam em Itens, Insumos e Narguile.Modelos.
| Item | Peso (g) | Usável |
|---|---|---|
cigarette, cigarette_debonair | 10 | Sim |
cigar | 30 | Sim |
joint | 10 | Sim |
vape | 200 | Sim |
bong | 1000 | Sim |
narguile_azul, narguile_vermelho, narguile_rosa, narguile_verde, narguile_amarelo, narguile_cinza | 5000 | Sim |
lighter | 50 | Não |
water | 500 | Não |
unpacked_weed | 20 | Não |
vape_battery | 50 | Não |
carvao | 100 | Não |
eliquid_<sabor> | 50 | Não |
essencia_<sabor> | 50 | Não |
Sabores de líquido: maca, mirtilo, cereja, ecola, uva, limao, menta, laranja, pessego, morango, baunilha, melancia.
Sabores de essência: maca, mirtilo, limao, menta, laranja, morango, baunilha, melancia.
No QBCore, a água é water_bottle:
Config.Insumos = { Agua = "water_bottle" }O QBCore já tem lighter, joint e water_bottle. Não duplique esses itens. Se outro script já registra o joint como usável, tire o registro dele ou troque o nome do baseado em Config.Itens.
No Creative e no vRP, o item usável depende do ajuste de inventário descrito na página do krs_helper.
Imagens dos itens
O script não traz imagens. Coloque um PNG com o nome do item na pasta do seu inventário e aponte Interface.Icones para ela:
Config.Interface = { Icones = "nui://ox_inventory/web/images/{item}.png" }No krs, deixe vazio para usar as imagens do inventário.
Como usar
Use o item no inventário para abrir o cartão na tela.
| Tecla | Padrão | O que faz |
|---|---|---|
Tragar | E | Acende e traga. Segure para tragar mais. No limite, o personagem tosse |
Passar | G | Passa para quem está perto, se estiver aceso |
Ajustes | H | No vape e no bong, põe líquido, troca bateria, enche erva ou troca água |
Guardar | Backspace | Guarda |
Cigarro, charuto e baseado precisam de isqueiro e são gastos ao acender. Vape e bong guardam a carga. No krs, cada vape e bong guarda a própria carga. Nos outros frameworks, a carga é por personagem e por tipo: trocar de vape não troca a carga.
Quanto cada trago gasta
Cada barra vai de 100 a 0. Por trago, o gasto é segundos segurando × PorSegundo, limitado entre Min e Max.
No cigarro, com PorSegundo = 7, Min = 0.5 e Max = 8, um trago de 1 s gasta 7 e um de 2 s gasta 8. Com tragos de 1 s ou mais, ele dura de 13 a 15 tragos. Para durar o dobro, divida PorSegundo e Max por 2.
Narguilé
- Use o item para colocar o narguilé no lugar.
- Prepare pelo menu da mira: água, essência, fornilho e carvão.
- Espere o carvão aquecer e pegue uma mangueira.
Cada narguilé tem Narguile.Mangueiras mangueiras. O menu depende da mira escolhida em Config.Target. Com "", o narguilé aparece sem interação.
Permissão
O dono sempre pode limpar e recolher o próprio narguilé. Para qualquer narguilé, vale o grupo de Config.Permissao, que por padrão é Admin, nível 1.
| Framework | Como liberar |
|---|---|
| krs, Creative | Grupo Admin do framework |
| vRP | Um dos grupos de Config.Groups.Admin do krs_helper |
| QBCore | add_ace group.admin admin allow e add_principal identifier.license:SUA_LICENSE group.admin |
| Sem framework | add_principal identifier.license:SUA_LICENSE group.admin e add_ace group.admin group.Admin allow |
Configuração
Tudo fica em config.lua. Ele só precisa ter o que você mudou. Ao iniciar, o console avisa opção nova, nome errado e tipo errado.
| Opção | Padrão | O que muda |
|---|---|---|
Insumos | ver Itens | Nome dos itens gastos. Liquido e Essencia são prefixos |
Permissao | Admin, nível 1 | Quem limpa e recolhe qualquer narguilé |
Teclas | 38, 47, 74, 194 | Controle do jogo e rótulo de cada tecla |
Aviso | amarelo, verde, 5000 | Cor, cor de sucesso e duração dos avisos |
Target | "target" | target, qb-target, ox_target ou "" |
Som.Distancia | 14.0 | Distância em que os outros ouvem, em metros |
Som.Volume | 0.45 | Volume, de 0.0 a 1.0 |
Passar | 3.0 | Distância para passar, em metros |
Intervalo | 1500 | Tempo mínimo entre dois tragos, em ms |
Tempos | 4500, 4000, 3500, 3500 | Animação de líquido, bateria, erva e água, em ms |
Interface.Icones | "" | Modelo do endereço das imagens, com {item} |
Interface.Cores | #b3c0ff, #ffb36b, #8fd0ff | Cores de destaque, brasa e água |
Por tipo de fumo (Tipos):
| Tipo | Acende | Passa | Trago (ms) | Stress | Efeito |
|---|---|---|---|---|---|
cigarro | Sim | Sim | 150 a 3500 | -1 | Nenhum |
charuto | Sim | Sim | 150 a 3500 | -2 | Nenhum |
baseado | Sim | Sim | 150 a 3500 | -2 | 8% por trago |
vape | Não | Não | 150 a 5000 | -1 | Nenhum |
bong | Não | Não | 200 a 5000 | -3 | 80% por trago |
Ativo = false desliga o tipo. Gasto define o consumo de cada barra. Efeito define chance, minutos, efeito do framework e efeitos de tela.
Narguilé (Narguile):
| Opção | Padrão | O que muda |
|---|---|---|
Ativo | true | Liga o narguilé |
Modelos | 6 cores | Item e modelo de cada narguilé |
Mangueiras | 2 | Quantas pessoas fumam juntas |
Distancia | 2.0 | Alcance do menu, em metros |
Alcance | 3.5 | Distância máxima com a mangueira e para colocar, em metros |
Render | 80.0 | Distância em que aparece, em metros |
Aquecer | 15 | Segundos do carvão aquecendo |
Queimar | 1200 | Segundos do carvão no fornilho |
Gasto | 4, 3 | Essência e água gastas por trago, em % |
Trago | 300 a 3500 | Duração do trago, em ms |
Stress | -1 | Soma no status Stress a cada trago |
Outras tabelas do config.lua: Itens, Sabores, Liquidos, Essencias, Frascos, Props, Efeitos, Poses, Anims, Particulas.
Sons
Em Sons, cada nome aponta para um arquivo de sounds/, sem .mp3, ou para um endereço https://:
Config.Sons = { tragar = "meusom" } -- sounds/meusom.mp3Os textos ficam em locales/*.json.
Para programadores
Não há exports.
Eventos locais de cliente: kay_fumo:Menu abre o menu e kay_fumo:Mangueira pega a mangueira. Os dois recebem o Id do narguilé.
Para usar outra mira, crie um adaptador em client-side/ganchos.lua e coloque o nome dele em Config.Target. O nome precisa ser o de um resource iniciado.
