Personalización
Casi todo está en config.lua. El resto son textos, datos y la fina capa que habla con tu framework.
Qué archivo decide qué
Sección titulada «Qué archivo decide qué»| Archivo | Qué decide | Editable |
|---|---|---|
config.lua | Framework, idioma, quién puede pintar, ítems, nombres de los comandos, marcadores de taller de pintura | Sí |
locales/*.lua | Cada notificación y sugerencia de chat, un archivo por idioma | Sí |
locales/main.lua | La función que elige el texto según Config.Locale | Sí |
bridge/server.lua | Detección del framework, notificaciones, comprobación de admin, trabajos, ítems usables, quitar ítems | Sí |
bridge/client.lua | Detección del framework y notificaciones del lado del jugador | Sí |
items/ox.lua, items/qb.lua, items/sql.sql | Definiciones de ítems listas para copiar a tu inventario | Sí |
permissions.json | Los Steam IDs que pueden abrir el menú. Lo escriben los comandos de dar y quitar | Sí |
vehicle_original_colors.json | El color de cada coche pintado antes de pintarlo por primera vez, por modelo y matrícula | Sí |
html/ui.html, html/style.css, html/script.js | El menú: su título, sus muestras y su aspecto | — |
data/, stream/ | Las definiciones de pintura y las texturas de rampa de los colores 223 a 242 | Déjalos como están |
client/main.lua, server/main.lua | La lógica | Con escrow |
General
Sección titulada «General»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Framework | "auto", "esx" o "qbcore". Auto usa el que esté en marcha de es_extended y qb-core; QBox cuenta como qb-core gracias a su compatibilidad con QBCore. Si lo fijas, QBox usa "qbcore" | "auto" |
Config.Locale | El idioma de todos los mensajes. Mira Idiomas, más abajo | "es" |
Config.PermissionFile | El nombre del archivo JSON que guarda la lista de permisos | "permissions.json" |
Quién puede abrir el menú
Sección titulada «Quién puede abrir el menú»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Permissions | Usa la lista de permisos de permissions.json | true |
Config.UseJobs | Deja que los trabajos de Config.AuthorizedJobs abran también el menú | true |
Config.AuthorizedJobs | Los nombres de trabajo permitidos cuando UseJobs está activado | mechanic, police |
Los dos interruptores se combinan así:
Permissions | UseJobs | Quién puede abrir el menú |
|---|---|---|
| activado | activado | Los jugadores de la lista y cualquiera cuyo trabajo esté en AuthorizedJobs |
| activado | desactivado | Solo los jugadores de la lista |
| desactivado | activado o desactivado | Todo el mundo |
La lista usa como clave el identificador de Steam. Un jugador que no tenga Steam abierto no se puede añadir; el comando de dar permiso responde que no se pudo obtener su identificador de Steam.
| Opción | Qué hace | Por defecto |
|---|---|---|
Config.UseItems | Registra como usables los 82 ítems de pintura y el ítem de reset | true |
Config.ItemsRequirePermission | Hace que los ítems de pintura sigan las mismas reglas que el menú. Desactivado, cualquiera que tenga uno puede usarlo | false |
El ítem de reset nunca pide permiso. Los nombres de los ítems, y dónde vienen sus definiciones, están en Instalación.
Comandos
Sección titulada «Comandos»Cada nombre se configura en config.lua, sin la barra.
| Opción | Por defecto | Quién | Qué hace |
|---|---|---|---|
Config.Chameleon | /chameleon | Cualquiera permitido por las reglas de arriba | Abre el menú. Tienes que estar en un vehículo |
Config.ChameleonReset | /chameleonreset | Cualquiera | Devuelve el coche en el que estás a su color original |
Config.ChameleonGive | /chameleongive [ID] | Admins | Añade el Steam ID de ese jugador a la lista de permisos |
Config.ChameleonRemove | /chameleonremove [ID] | Admins | Lo vuelve a quitar |
“Admin” significa el grupo admin o superadmin en ESX, y el permiso admin o god en QBCore. Las dos comprobaciones están en bridge/server.lua por si los tuyos se llaman de otra forma.
Marcadores de taller de pintura
Sección titulada «Marcadores de taller de pintura»Config.Locations es una lista; añade tantas entradas como quieras. Cada una tiene:
| Campo | Qué hace | Valor de serie |
|---|---|---|
coords | Dónde está el marcador | Dos puntos de ejemplo cerca de Burton |
radius | A qué distancia, en metros, tienes que estar para que salga el aviso | 3.0 |
markerType | El marcador de FiveM que se dibuja | 1 (un anillo en el suelo) |
markerColor | Rojo, verde, azul y alfa | Rojo en uno, verde en el otro, alfa 100 |
markerScale | Su tamaño | 2.0 × 2.0 × 1.0 |
notification | El texto de ayuda que se muestra dentro del radio | Press ~INPUT_CONTEXT~ to open the Chameleon menu |
El marcador se dibuja a partir de 10 metros. El aviso solo aparece dentro de radius y en un vehículo; entonces E abre el menú, con la misma comprobación de permisos que el comando.
El texto de notification está en config.lua, no en los idiomas, así que tradúcelo ahí.
El menú
Sección titulada «El menú»html/ui.html contiene las muestras (una por cada ID de color del 161 al 242) y el título del menú, “Chameleon Paintings”, que está escrito en la página en lugar de sacarse de los idiomas. html/style.css da a cada muestra su color de vista previa.
Idiomas
Sección titulada «Idiomas»Vienen nueve en locales/: en, es, fr, de, it, pt, pl, ru y tr. Pon uno de esos códigos en Config.Locale.
Para añadir uno:
- Copia
locales/en.luaa un archivo nuevo, por ejemplolocales/nl.lua. - Cambia el código de idioma de arriba del nuevo archivo a
nly traduce el texto. - Añade
locales/nl.luaa las dos listas,client_scriptsyserver_scripts, defxmanifest.lua, junto a los demás archivos de idioma. - Pon
Config.Locale = "nl", luego hazrefreshy reinicia el recurso.
Una clave que falte aparece como Translation [key] does not exist en lugar de romper nada, lo que hace fácil detectar un archivo a medio traducir.
El bridge
Sección titulada «El bridge»Los dos archivos de bridge/ son los únicos sitios en los que el recurso toca tu framework.
| Archivo | Qué hace |
|---|---|
bridge/server.lua | Encuentra el framework, envía notificaciones (esx:showNotification o QBCore:Notify), decide quién es admin, lee el trabajo de un jugador, registra los ítems usables y quita un ítem después de usarlo |
bridge/client.lua | Encuentra el framework del lado del jugador y muestra notificaciones (ESX.ShowNotification o QBCore.Functions.Notify) |
Si no se encuentra ningún framework, las notificaciones pasan a ser mensajes de chat.
Adaptarlo. Para usar tu propio script de notificaciones, sustituye el cuerpo de Bridge.Notify en los dos archivos. Para un sistema de admin personalizado, cambia Bridge.IsAdmin. Para un framework que no sea ESX, QBCore ni QBox, rellena cada función Bridge. de bridge/server.lua (detección del framework, Notify, IsAdmin, GetPlayerJob, RegisterUsableItem y RemoveItem) y el recurso no necesita nada más.