Ir al contenido

Personalización

Los ajustes están en config.lua. Los archivos que hablan con tu framework, tu inventario y tu recurso de target se dejan abiertos, para que un servidor que hace las cosas de otra forma pueda adaptarlos sin tocar el núcleo con escrow.


Archivo o carpetaQué decide¿Abierto?
config.luaTodos los ajustes de esta página, la función de notificación, los ítems y los saboresAbierto
locales/*.luaTodos los textos: menú, etiquetas del target, mensajes. Un archivo por idiomaAbierto
server_functions.luaObtener un jugador, añadir, quitar y comprobar ítems, registrar los ítems usables, el callback de la lista de sabores y ReduceStressAbierto
client/client_functions.luaLeer los datos del jugador y la comprobación de trabajo para el menú de preparaciónAbierto
target/target.luaTodas las opciones de target en cachimbas y muebles, para ox_target y qb-targetAbierto
client/client.lua, server/server.lua, locale.luaLa colocación, la manguera, el humo, la propiedad y los suministrosCon escrow
html/El menú de preparación: index.html, style.css, script.jsArchivos sin cifrar
inventory_items/Definiciones de ítems listas para ESX, ox_inventory y QBCoreReferencia
inventory_images/Un icono por ítemRecursos gráficos
mic_hookah_prop/stream/Los diez modelos de cachimbaRecursos gráficos, recurso aparte

OpciónQué hacePor defecto
Config.LocaleIdiomaen
Config.Frameworkesx, qbcore o qboxesx
Config.ESXResourceNameEl nombre de la carpeta de ESXes_extended
Config.QBResourceNameEl nombre de la carpeta de QBCoreqb-core
Config.QBoxResourceNameEl nombre de la carpeta de QBoxqbx_core
Config.Targetox_target o qb-targetox_target
Config.QBTargetResourceNameEl nombre de la carpeta de qb-targetqb-target
Config.InventoryImagePathDe dónde carga el menú de preparación los iconos de saboresnui://ox_inventory/web/images/

OpciónQué hacePor defecto
Config.AdminGroupsGrupos que pueden abrir el menú de cualquier cachimba o mueble, y recogerlo. false significa que todo el mundo cuenta como adminfalse
Config.AllowedJobsTrabajos que pueden abrir el menú de preparación. false significa cualquier trabajofalse

Tal como viene, cualquiera puede gestionar la cachimba de cualquiera. Para que cada cachimba pertenezca al jugador que la colocó, pon tus grupos de staff en Config.AdminGroups, por ejemplo admin y superadmin. En ESX la lista se compara con el grupo del jugador; en QBCore y QBox, con el campo permission del jugador.

Con una lista puesta:

QuiénOpen Setup MenuRecogerGrab Hose
El jugador que la colocósí (si su trabajo está permitido)sísí
Un grupo de adminsí (si su trabajo está permitido)sísí
Cualquier otrononosí

Config.AllowedJobs solo protege el menú de preparación. Cualquiera puede coger la manguera y fumar de una cachimba encendida.


OpciónQué hacePor defecto
Config.MaxActiveTimeLo que significa “lleno” para el carbón y el agua. Un hookah_coal o un hookah_water lo llena hasta aquí1800
Config.ConsumptionPerPuffCuánto resta cada calada al charcoal y al water10 y 10
Config.MaxPuffsPerSessionSe calcula a partir de los dos anteriores (1800 ÷ 10 = 180). Es solo de referencia; el script no lo lee180
Config.MaxHoseDistanceMetros que se estira la manguera antes de romperse3.5
Config.MaxSimultaneousUsersLímite previsto de personas fumando de la misma cachimba4
Config.StressLlama a ReduceStress en cada caladatrue

La cachimba no se consume con el tiempo: el carbón y el agua solo bajan cuando alguien da una calada. Cuando cualquiera de los dos llega a cero, la cachimba se apaga y hay que rellenarla.

ReduceStress en server_functions.lua recibe el ID de servidor del jugador en cada calada cuando Config.Stress está activado. Viene vacío, con ejemplos comentados: un evento de cliente, un export o un evento de servidor de tu recurso de estrés o de HUD. Pon ahí tu llamada.


OpciónQué hacePor defecto
Config.ParticleQué partícula se usa: un dict y un namescr_recartheft / scr_wheel_burnout
Config.VapeExhaleTamaño del humo0.5

La config marca estas dos como “no las cambies a menos que sepas lo que haces”. Cada nube dura tres segundos y se muestra a los jugadores que estén a menos de 150 metros.


Las listas completas están en 🎒 Ítems.

Config.HookahItems: nombre del ítem → modelo. Para añadir una cachimba, el modelo tiene que estar en stream (por ejemplo en mic_hookah_prop/stream/ con una entrada en su .ytyp); después añade la línea aquí y el ítem a tu inventario.

Config.PlaceableProps: nombre del ítem → propModel, type (furniture) e isChair. Sirve cualquier prop del juego base. Pon isChair = true en todo lo que deba ofrecer Sit Down.

Config.Flavors: nombre del ítem → ajustes:

CampoQué hace
LabelNombre que se muestra en el menú de preparación
SmokeColorColor R, G, B del humo
ScreenEffectNombre de un efecto de pantalla de GTA que se aplica a quien fuma, o false para ninguno
EffectDurationSegundos que dura el efecto de pantalla

La config enlaza una lista de nombres de efectos de pantalla junto a Config.Flavors. Para añadir un sabor, copia una entrada, dale un nombre de ítem nuevo y añade el ítem y su icono a tu inventario.


Config.Notify en config.lua envía todos los mensajes: ShowNotification en ESX, Functions.Notify en QBCore y QBox, y la consola en cualquier otro caso. Sustituye su contenido para usar tu propio recurso de notificaciones.


En locales/ vienen once archivos: en, es, fr, de, it, pt, ru, cn, nl, pl, tr. Elige uno con Config.Locale.

El comentario encima de Config.Locale también menciona jp, pero no viene ningún archivo en japonés; si lo pones, aparece “Locale [jp] does not exist”.

Cada archivo cubre el menú de preparación, las etiquetas del target y los mensajes. Unas pocas palabras están escritas en el Lua en lugar de en los archivos de idioma: las indicaciones de colocación (Rotate Right, Rotate Left, Height Up, Height Down, Place Prop, Cancel), “You are already placing an object” y “None” para un sabor vacío.

Para añadir un idioma: copia locales/en.lua, cambia la clave del principio por tu código y tradúcelo. El manifest carga solo todo lo que hay en locales/, así que no hay nada más que registrar. Pon Config.Locale, haz refresh y reinicia.


Para cambiarEdita
Un framework propioEl objeto del framework al final de config.lua, y las funciones de server_functions.lua y client/client_functions.lua
Otro inventarioAddItem, RemoveItem y HasItem en server_functions.lua, y el registro de ítems usables que hay debajo
Otro targettarget/target.lua: las listas de opciones son compartidas, solo cambian las dos llamadas addModel / AddTargetModel
Etiquetas, iconos o distancia del targettarget/target.lua para iconos y distancia, locales/ para las etiquetas
Reglas de trabajosCheckJobAccess en client/client_functions.lua

En QBCore y QBox con ox_inventory arrancado, server_functions.lua también registra cada ítem de cachimba y de mueble mediante el propio hook de uso de ox_inventory, como respaldo para configuraciones en las que el bridge de ítems de QBCore no transmite el uso.


Tecla o comandoCuándoQué hace
ESujetando una cachimbaEmpieza a colocarla
XSujetando una cachimbaLa guarda sin colocarla
Rueda del ratónColocandoGira la vista previa
Flecha arriba / abajoColocandoSube o baja la vista previa
EColocandoLa deja
XColocandoCancela
ESujetando la manguera de una cachimba encendidaDa una calada
X (“Hookah - Stand Up X”)SentadoTe levantas. Cada jugador puede reasignarla en sus controles de FiveM
/hookah:chair:stand_upSentadoLo mismo, como comando