Cómo funcionan las integraciones#
Todo lo que depende de otro recurso está detrás de un pequeño archivo puente abierto. Al iniciar, el script busca un recurso conocido que ya esté en ejecución y usa el puente correspondiente. No hace falta configurar nada si usas uno de los recursos compatibles.
Capa | Compatibles | Archivos puente |
|---|---|---|
Framework | es_extended · qb-core · qbx_core |
|
Inventario | qs-inventory · ox_inventory · qb-inventory · ps-inventory · core_inventory · codem-inventory · origen_inventory · chezza inventory |
|
Ropa | qs-appearance · illenium-appearance · fivem-appearance · esx_skin · qb-clothing · codem-appearance · ak47_clothing · raid_clothes · rcore_clothes · rcore_clothing · sleek-clothestore · tgiann-clothing · p_appearance |
|
Dispatch | qs-dispatch · qs-police-creator · qb-policejob |
|
Target | ox_target · qb-target (cuando |
|
Clima | qb-weathersync · cd_easytime · vSync |
|
Música del laboratorio | xsound · mx-surround · qs-3dsound |
|
Texto, progreso y HUD | qs-textui · qs-interface; si no, los integrados y ox_lib |
|
Teléfono | qs-smartphone-pro: cargadores de teléfono dentro de los laboratorios | — |
Sonidos | interact-sound: sonidos de puerta, timbre y golpes ( | — |
Anticheat | FiveGuard: se permiten freecam y noclip mientras decoras ( | — |
Qbox es compatible a través del puente de QBCore de qbx_core. Cuando qbx_core está en ejecución, el dinero negro se trata como un ítem
black_moneyen lugar del de QBCore,markedbills.
Forzar la detección#
La detección elige el primer recurso conocido que encuentra en ejecución. Si usas dos del mismo tipo a la vez (dos inventarios o dos scripts de dispatch), la elección es impredecible. Define tú mismo el valor en config/main.lua:
-- Auto, the default:
Config.Inventory = DependencyCheck(inventories) or 'default'
-- Forced:
Config.Inventory = 'ox_inventory'
Config.Dispatch = 'qs-dispatch'
Config.Wardrobe = 'illenium-appearance'El valor debe coincidir con el nombre de un archivo de la carpeta client/custom/ correspondiente.
Inventarios y stashes#
Los stashes de los laboratorios y los muebles marcados como stash se abren mediante OpenStash(customData, uniq) en client/custom/inventory/<inventory>.lua. Cada stash tiene un id único por laboratorio y por mueble, así que su contenido se queda en ese laboratorio.
El stash se registra en el servidor la primera vez que se abre, con los slots y el peso del laboratorio o del mueble. No hay nada que configurar.
Funciona sin configuración, con qs-inventory y qs-advancedinventory. Con qs-inventory también obtienes seis misiones (ver más abajo).
Usa el export de servidor OpenInventory de qb-inventory 2.x. El archivo contiene líneas comentadas para versiones antiguas de qb-inventory: cámbialas si tu stash no se abre.
El inventario por defecto de ESX no tiene puente de stash. En ESX, usa uno de los inventarios compatibles (qs-inventory, ox_inventory, core_inventory, codem-inventory, origen_inventory o chezza) para que se abran los stashes de los laboratorios y los muebles con stash. También puedes escribir tu propio OpenStash como se muestra en Añadir un backend.
Target#
Con Config.UseTarget = false (por defecto), cada interacción es un aviso flotante [E]. Cámbialo a true para usar ox_target o qb-target. Se añaden targets a:
Los vendedores, y las plantas y barriles de las zonas de cultivo.
Las entradas de los laboratorios: Inspect, Show Contract, Enter Lab y Ring Door.
Dentro de los laboratorios: la salida y el timbre, el stash y el código de la caja fuerte, el armario y cada mesa de procesado.
El tamaño de las cajas del target viene de Config.TargetWidth, Config.TargetLength y Config.TargetDistance.
Dispatch policial#
Las ventas en las esquinas pueden alertar a la policía (Config.PoliceCallChance). La alerta la envía PoliceDispatch(alert) en client/custom/dispatch/<dispatch>.lua, donde puedes cambiar los trabajos que la reciben, el blip y el texto. Sin un dispatch compatible, no se envía nada.
-- client/custom/dispatch/qs-dispatch.lua: who receives it
jobs = { 'police', 'sheriff', 'traffic', 'patrol' },Notificaciones, texto y barras de progreso#
custom/client.lua contiene las funciones por las que pasan todos los mensajes y avisos. Cámbialas para usar el sistema que quieras:
Función | Por defecto |
|---|---|
| Las notificaciones propias del script. Las versiones de qs-interface y ox_lib están en el archivo, comentadas. |
| qs-textui si está en ejecución; si no, texto 3D integrado. |
| qs-interface si está en ejecución; si no, |
| En |
Ropa y clima#
El punto de armario de un laboratorio llama a OpenClotheMenu() de client/custom/wardrobe/<clothing>.lua. Dentro de un shell, WeatherSyncEvent pausa tu script de clima para que el interior siga despejado, y lo reanuda cuando sales.
Misiones de qs-inventory#
Con qs-inventory en ejecución, se crean seis misiones para cada jugador. Sus títulos, recompensas y niveles requeridos están en server/custom/missions.lua.
Misión | Cómo se completa | Recompensa | Nivel |
|---|---|---|---|
Start Cooking | Comprar un laboratorio | 300 | 1 |
Harvest Season | Cosechar en los cultivos | 250 | 1 |
Lab Designer | Colocar muebles | 200 | 1 |
Production Run | Procesar lotes | 300 | 2 |
Dirty Money | Cortar dinero negro | 200 | 2 |
Street Dealer | Vender a un vendedor NPC | 250 | 2 |
Añadir un backend#
Para dar soporte a un recurso que no está en la lista:
Copia el puente más parecido
Duplica el archivo más similar de
client/custom/<kind>/y ponle exactamente el nombre del recurso, por ejemploclient/custom/inventory/my_inventory.lua.Cambia la comprobación y las llamadas
La primera línea de cada puente termina la ejecución salvo que se haya seleccionado ese recurso. Cámbiala por el nombre de tu recurso y sustituye las llamadas dentro de la función por los exports o eventos de tu recurso.
lua if Config.Inventory ~= 'my_inventory' then return end function OpenStash(customData, uniq) exports['my_inventory']:OpenStash(uniq, customData.maxweight, customData.slots) endSelecciónalo
Define
Config.Inventory = 'my_inventory'enconfig/main.luay reinicia el script.
Un framework completo se añade de la misma forma: copia custom/qb/ o custom/esx/ y completa sus funciones: datos del jugador, dinero, ítems, trabajos, comprobación de administrador e ítems usables.
Idiomas#
Se incluyen 41 traducciones en locales/: ar, bg, bn, ca, cs, da, de, el, en, es, et, fa, fi, fr, he, hi, hr, hu, id, it, ja, ko, lt, lv, ms, nl, no, pl, pt, ro, ru, sk, sl, sv, sw, th, tr, uk, ur, vi y zh. Elige uno con Config.Locale. La interfaz usa los mismos textos.
Para añadir un idioma, copia en.json a un archivo nuevo, como xx.json, traduce los valores (conserva {{placeholders}}) y define Config.Locale = 'xx'. Cualquier clave que falte en tu archivo usa el inglés, con un aviso en la consola.



