Pular para o conteúdo

Personalização

As configurações ficam em config.lua. Os arquivos que se comunicam com o seu framework, o seu inventário e o seu resource de target são abertos, para que servidores com sistemas diferentes possam adaptá-los sem tocar no núcleo protegido por escrow.


Arquivo ou pastaO que decideAberto?
config.luaTodas as configurações desta página, a função de notificação, os itens e as essênciasAberto
locales/*.luaTodos os textos: menu, rótulos do target, mensagens. Um arquivo por idiomaAberto
server_functions.luaObter jogador, adicionar, remover e verificar itens, registrar itens utilizáveis, callback da lista de essências e ReduceStressAberto
client/client_functions.luaLeitura de dados do jogador e verificação de emprego para o menu de configuraçãoAberto
target/target.luaTodas as opções de target em narguilés e móveis, para ox_target e qb-targetAberto
client/client.lua, server/server.lua, locale.luaPosicionamento, mangueira, fumaça, propriedade e suprimentosProtegido (Escrow)
html/O menu de configuração: index.html, style.css, script.jsArquivos simples
inventory_items/Definições de itens prontas para ESX, ox_inventory e QBCoreReferência
inventory_images/Um ícone por itemAssets
mic_hookah_prop/stream/Os dez modelos de narguiléAssets, resource separado

OpçãoO que fazPadrão
Config.LocaleIdiomaen
Config.Frameworkesx, qbcore ou qboxesx
Config.ESXResourceNameNome da pasta do ESXes_extended
Config.QBResourceNameNome da pasta do QBCoreqb-core
Config.QBoxResourceNameNome da pasta do QBoxqbx_core
Config.Targetox_target ou qb-targetox_target
Config.QBTargetResourceNameNome da pasta do qb-targetqb-target
Config.InventoryImagePathDe onde o menu de configuração carrega os ícones das essênciasnui://ox_inventory/web/images/

OpçãoO que fazPadrão
Config.AdminGroupsGrupos que podem abrir o menu e recolher qualquer narguilé ou móvel. false significa que todos contam como administradoresfalse
Config.AllowedJobsEmpregos que podem abrir o menu de configuração. false significa qualquer empregofalse

Por padrão, qualquer pessoa pode gerenciar o narguilé de qualquer outra. Para fazer com que cada narguilé pertença apenas ao jogador que o colocou, liste os grupos da sua equipe em Config.AdminGroups — por exemplo admin e superadmin. No ESX, a lista é comparada com o grupo do jogador; no QBCore e QBox, com o campo permission do jogador.

Com uma lista configurada:

QuemAbrir menu de configuraçãoRecolherPegar mangueira
O jogador que o colocousim (se o emprego dele for permitido)simsim
Um grupo de administradorsim (se o emprego dele for permitido)simsim
Qualquer outra pessoanãonãosim

Config.AllowedJobs protege apenas o menu de configuração. Qualquer pessoa pode pegar a mangueira e fumar em um narguilé aceso.


OpçãoO que fazPadrão
Config.MaxActiveTimeO que significa “cheio” para carvão e água. Um hookah_coal ou hookah_water enche até este valor1800
Config.ConsumptionPerPuffQuanto cada tragada consome de charcoal e water10 e 10
Config.MaxPuffsPerSessionCalculado a partir dos dois acima (1800 ÷ 10 = 180). Apenas para sua referência; o script não lê este valor180
Config.MaxHoseDistanceMetros que a mangueira estica antes de se soltar3.5
Config.MaxSimultaneousUsersLimite pretendido de pessoas fumando no mesmo narguilé4
Config.StressChama ReduceStress a cada tragadatrue

O narguilé não queima com o tempo: o carvão e a água só diminuem quando alguém dá uma tragada. Quando qualquer um chega a zero, o narguilé apaga e precisa de recarga.

ReduceStress em server_functions.lua recebe o ID de servidor do jogador a cada tragada quando Config.Stress está ativado. Ele vem vazio, com exemplos comentados: um evento de cliente, um export ou um evento de servidor do seu resource de estresse ou HUD. Coloque sua chamada lá.


OpçãoO que fazPadrão
Config.ParticleQual partícula é usada: um dict e um namescr_recartheft / scr_wheel_burnout
Config.VapeExhaleTamanho da fumaça0.5

A configuração marca esses dois como “não altere a menos que saiba o que está fazendo”. Cada nuvem dura três segundos e é mostrada aos jogadores em um raio de 150 metros.


As listas completas estão em 🎒 Itens.

Config.HookahItems — nome do item → modelo. Para adicionar um narguilé, o modelo precisa ser transmitido por stream (por exemplo, em mic_hookah_prop/stream/ com uma entrada no seu .ytyp), depois adicione a linha aqui e o item ao seu inventário.

Config.PlaceableProps — nome do item → propModel, type (furniture) e isChair. Qualquer prop do jogo base funciona. Defina isChair = true em qualquer objeto que deva oferecer a opção Sit Down.

Config.Flavors — nome do item → configurações:

CampoO que faz
LabelNome exibido no menu de configuração
SmokeColorCor R, G, B da fumaça
ScreenEffectNome de um efeito de tela do GTA reproduzido para o fumante, ou false
EffectDurationSegundos que o efeito de tela dura

A configuração traz um link com uma lista de nomes de efeitos de tela ao lado de Config.Flavors. Para adicionar uma essência, copie uma entrada, dê um novo nome de item e adicione o item e seu ícone ao seu inventário.


Config.Notify em config.lua envia todas as mensagens: ShowNotification no ESX, Functions.Notify no QBCore e QBox, ou no console caso contrário. Substitua o corpo da função para usar o seu próprio resource de notificação.


Onze arquivos vêm em locales/: en, es, fr, de, it, pt, ru, cn, nl, pl, tr. Escolha um com Config.Locale.

O comentário acima de Config.Locale também menciona jp, mas nenhum arquivo em japonês vem incluído; defini-lo exibe “Locale [jp] does not exist”.

Cada arquivo cobre o menu de configuração, os rótulos do target e as mensagens. Algumas palavras estão escritas diretamente no Lua em vez dos arquivos de idioma: as dicas de posicionamento (Rotate Right, Rotate Left, Height Up, Height Down, Place Prop, Cancel), “You are already placing an object” e “None” para quando não há essência.

Para adicionar um idioma: copie locales/en.lua, mude a chave no topo para o seu código e traduza. O manifesto carrega tudo em locales/ automaticamente, então não há mais nada para registrar. Defina Config.Locale, execute refresh e reinicie.


Para alterarEdite
Um framework personalizadoO objeto do framework no final de config.lua, e as funções em server_functions.lua e client/client_functions.lua
Um inventário diferenteAddItem, RemoveItem e HasItem em server_functions.lua, e o registro de itens utilizáveis abaixo deles
Um target diferentetarget/target.lua — as listas de opções são compartilhadas, apenas as duas chamadas addModel / AddTargetModel mudam
Rótulos, ícones ou distância targettarget/target.lua para ícones e distância, locales/ para rótulos
Regras de empregoCheckJobAccess em client/client_functions.lua

No QBCore e QBox com ox_inventory iniciado, server_functions.lua também registra cada item de narguilé e móvel através do próprio hook de uso do ox_inventory, como alternativa para configurações onde a ponte de itens do QBCore não repassa o uso.


Tecla ou comandoQuandoO que faz
ESegurando um narguiléComeça a posicioná-lo
XSegurando um narguiléGuarda sem posicionar
Roda do mousePosicionandoGira a prévia
Seta para cima / baixoPosicionandoSobe ou desce a prévia
EPosicionandoColoca no chão
XPosicionandoCancela
ESegurando a mangueira acesaDá uma tragada
X (“Hookah - Stand Up X”)SentadoLevanta. Pode ser redefinido nos atalhos de teclado do FiveM de cada um
/hookah:chair:stand_upSentadoO mesmo, como comando