Ir al contenido

Personalización

Lo que hace cada ítem se monta en el menú y se guarda en la base de datos. Los archivos deciden el resto: el comando, las teclas, cómo se muestran las cosas y cómo habla el recurso con tu framework.


ArchivoQué decide¿Abierto?
config.luaIdioma, comando, tecla de cancelar, interacción con props colocados, ruta de imágenes, barra de progresoSí
bridge/client_bridge.luaNotificaciones, vida, armadura, estrés, hambre y sed, recuento de ítems, trabajos, target, barra de progresoSí
bridge/server_bridge.luaDetección del framework, ítems usables, añadir y quitar ítems, trabajos, notificaciones, la lista de ítemsSí
locales/*.luaTodos los textos, en el juego y en el menúSí
data/*.luaLas listas que hay detrás de los selectores del menúSí
html/El menú (HTML, CSS, JS)Legible
client/, server/La lógica de los ítemsCon escrow

OpciónQué hacePor defecto
Config.LocaleIdioma del menú y de los mensajes. Consulta Idiomas'en'
Config.CommandEl comando que abre y cierra el menú'itemcreator'
Config.CommandDescriptionEl nombre de ese comando en los controles de FiveM, donde se le puede asignar una tecla. Por defecto no tiene ninguna'Open Item Creator Menu'
Config.CancelKeyTecla por defecto para cancelar lo que haya iniciado un ítem. Mira más abajo'X'
Config.InteractionCómo se recoge un prop colocado: 'drawtext', 'ox_target' o 'qb-target'. Con cualquiera de los dos valores de target, el bridge usa el que esté en marcha de ox_target o qb-target'drawtext'
Config.ImageInventoryPathDónde busca el menú las imágenes de los ítems, como <path><item name>.png'nui://ox_inventory/web/images/'
Config.ProgressBar'custom' para la barra integrada, 'ox_lib' para la de ox_lib. Si ox_lib no está en marcha, se usa la integrada'custom'

¿No usas ox_inventory? Pon en Config.ImageInventoryPath la carpeta de imágenes de tu inventario, por ejemplo nui://qb-inventory/html/images/.


ComandoTecla por defectoQué hace
/itemcreatorningunaAbre o cierra el menú. Necesita el ACE mic_itemcreator.open
/cancelitemanimConfig.CancelKey (X)Detiene la animación, el escenario o el estilo de andar que haya iniciado un ítem, restablece la velocidad, termina los superpoderes y quita un prop enganchado

Mientras colocas un Attach Prop, se aplican estas teclas. Cada una aparece en los controles de FiveM con un nombre “Placement:”, así que los jugadores pueden cambiarlas:

TeclaQué hace
← → ↑ ↓Mueve el prop a la izquierda, derecha, adelante, atrás
Re Pág / Av PágLo sube o lo baja
Numpad 4 / 6Guiñada (yaw)
Numpad 8 / 5Cabeceo (pitch)
Numpad 7 / 9Alabeo (roll)
XPrevisualiza la animación
EConfirma
RetrocesoCancela

Todo lo que puedes elegir de una lista en el menú sale de data/, y puedes añadir cosas a cualquiera de ellas:

ArchivoQué contiene
data/animations.luaAnimaciones
data/scenarios.luaEscenarios
data/walkingstyles.luaEstilos de andar
data/bones.luaHuesos a los que se puede enganchar un prop
data/particles.luaEfectos de partículas
data/screeneffects.luaEfectos de pantalla
data/sounds.luaSonidos
data/cars.luaCoches, por etiqueta y modelo
data/peds.luaModelos de ped
data/clothing.luaLas animaciones que se reproducen al ponerse una prenda o un prop

Mantén cada entrada con la misma forma que las que la rodean. El menú lee estos archivos al abrirse; después de editarlos, reinicia el recurso.


En locales/ vienen nueve archivos:

Config.LocaleIdioma
enInglés
esEspañol
deAlemán
frFrancés
itItaliano
ptPortugués
ruRuso
ch-znChino
jpJaponés

El comentario de config.lua también menciona tr y ch; ninguno de los dos existe. Usa los códigos de arriba.

El mismo archivo traduce los mensajes del juego y el menú, así que solo hay un sitio que editar.

Añadir un idioma:

  1. Copia locales/en.lua a un archivo nuevo, por ejemplo locales/pl.lua.
  2. Dentro, cambia Locales['en'] por tu código y traduce el texto de la derecha de cada línea. Mantén las claves y cualquier %s.
  3. Añade el archivo a shared_scripts en fxmanifest.lua, encima de locales/lib.lua.
  4. Pon tu código en Config.Locale, haz refresh y reinicia.

Si falta una clave, en la consola sale Translation key "…" not found y en pantalla se muestra la propia clave.


Dos archivos abiertos en bridge/. Mantén los nombres de las funciones: el resto del recurso las llama por su nombre.

bridge/server_bridge.lua

FunciónPara qué sirve
(detección)Usa ESX si es_extended está arrancado; si no, QBCore si qb-core está arrancado. QBox se detecta como qb-core, gracias a su compatibilidad con QBCore
Bridge.RegisterUsableItemRegistra cada ítem configurado como usable en tu framework
Bridge.AddItem, Bridge.RemoveItem, Bridge.GetItemCountÍtems: bundles, recogidas, ítems requeridos, Remove on Use
Bridge.GetPlayerJob, Bridge.GetPlayerJobGradeLa restricción de trabajo
Bridge.NotifyNotificaciones del lado del servidor
Bridge.GetAllItemsLa lista de ítems del menú: de ox_inventory, luego de los ítems registrados de ESX y luego de los shared items de QBCore

bridge/client_bridge.lua

FunciónPara qué sirve
Bridge.NotifyTodas las notificaciones. Si no hay framework, usa el feed de GTA
Bridge.AddHealth, Bridge.AddArmorHealth/Armor
Bridge.AddFoodThirstFood/Thirst: esx_status en ESX; en QBCore, los eventos consumables:server:addHunger y addThirst
Bridge.AddStressStress: esx_status en ESX; consumables:server:addStress en QBCore
Bridge.GetItemCountAlways Attached Prop: el recuento de ox_inventory si está en marcha; si no, los datos del jugador
Bridge.AddTargetEntityLa opción de recoger en un prop colocado, para ox_target o qb-target
Bridge.ProgressBarBarras de progreso: ox_lib o la integrada. Hay un sitio marcado, con un ejemplo comentado, para añadir otro recurso de barra de progreso

¿Tu HUD usa otros eventos para el hambre, la sed o el estrés? Cámbialos en Bridge.AddFoodThirst y Bridge.AddStress. ¿Otro recurso de notificaciones? Sustituye el contenido de Bridge.Notify. ¿Otro framework u otro inventario? Rellena esas mismas funciones para él en los dos archivos.


Network, en el menú, muestra configuraciones de ítems compartidas por otros servidores. Import te pregunta cuál de tus ítems debe recibir esa configuración y luego te la abre para que la ajustes y la guardes. Para compartir una tuya, expórtala desde tu lista de ítems con un nombre público, una descripción y un nombre de autor: pasa a ser visible para todos los servidores que usan la red.

La lista se descarga de GitHub, así que tu servidor necesita acceso saliente a internet para que se llene.