Personalización
Un solo archivo decide todo lo que puedes cambiar: config.lua. El resto son las pantallas de la app y la lógica protegida (escrow).
Qué archivo decide qué
Sección titulada «Qué archivo decide qué»| Archivo | Qué decide | Editable |
|---|---|---|
config.lua | Framework, ruta de imágenes, caducidad, pagos, ubicación de la casa de empeños, marcador, blip, dependiente, lista negra, todos los textos de notificación, el nombre de la app | Sí |
pawnshop.sql | Las tres tablas, importadas una vez | Sí |
web/index.html, web/styles.css, web/script.js | Las pantallas, la disposición y las etiquetas de la app | — |
web/assets/pawn.png | El icono de la app | Sí |
web/assets/fries.png | La imagen que se muestra cuando un ítem no tiene imagen | Sí |
client/main.lua, server/main.lua | La lógica | Protegido |
No hay carpeta de bridge ni carpeta de locales: el framework es una de las opciones de abajo y los textos están en config.lua.
General
Sección titulada «General»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Framework | "esx" o "qb", en minúsculas. En QBox, usa "qb": QBox ejecuta los recursos de QBCore a través de su capa de compatibilidad | "esx" |
Config.InventoryImagePath | La carpeta de la que se leen las imágenes de los ítems, como resource/folder/. Para qb-inventory, "qb-inventory/html/images/" | "ox_inventory/web/images/" |
Config.Expire | Días que una oferta permanece publicada. Cambiar el precio de una oferta reinicia la cuenta | 7 |
| Opción | Qué hace | Por defecto |
|---|---|---|
Config.Bank | true: los compradores pagan desde su banco y los vendedores cobran en su banco. false: ambos usan el ítem de Config.Money | true |
Config.Money | El ítem del inventario que se usa como dinero cuando Bank está desactivado: money, black_money o uno propio | "money" |
Con Bank desactivado, el dinero tiene que ser un ítem del inventario, que es como ox_inventory guarda el efectivo. En el inventario propio de ESX y en QBCore, el efectivo es una cuenta y no un ítem, así que deja Config.Bank = true en esos casos.
El dinero de una venta no le llega al vendedor directamente. Se suma a su saldo Pending en la app, y lo saca con el botón de transferir.
Vender en el mostrador
Sección titulada «Vender en el mostrador»| Opción | Qué hace | Por defecto |
|---|---|---|
Config.RequireLocation | true: crear y comprar ofertas tiene que completarse en la casa de empeños | false |
Config.PawnShopLocation | Dónde está la casa de empeños: x, y, z y la orientación (heading) del dependiente | 412.17, 315.11, 103.13, heading 194.62 |
Config.InteractionDistance | A qué distancia, en metros, debe estar el jugador para pulsar E. El servidor también lo comprueba | 1.0 |
Config.Marker | El marcador de la puerta: Type, Scale (x, y, z) y Color (r, g, b, a) | Type 20, gris azulado oscuro |
Config.Blip | El blip de la ruta: Sprite, Color, Scale | 480, 32, 1 |
Config.NPC | El Model del ped del dependiente y la animación de entrega (Dict y Name) | a_m_m_business_01, mp_common / givetake1_a |
Cómo funciona con RequireLocation activado: el jugador rellena la oferta o pulsa comprar, el teléfono marca una ruta hasta la casa de empeños y el marcador aparece cuando está a menos de 20 metros. Al pulsar E en el marcador, el dependiente sale para hacer la entrega y el intercambio se completa.
El blip y el marcador solo existen mientras un jugador tiene algo pendiente de completar allí; no hay ningún blip permanente en el mapa. Con RequireLocation desactivado, nada de esto se usa.
Config.Blip.Name no se usa para la etiqueta del blip: esa sale de Config.Messages.blip_name.
Lista negra
Sección titulada «Lista negra»Config.BlackList es una lista de nombres de ítems que nunca se pueden publicar. No aparecen en el selector de ítems, el servidor los rechaza y cualquier oferta existente de uno de ellos se retira del tablón —con sus ítems— la próxima vez que alguien abra la app. Viene con burger y weapon_appistol como ejemplos.
Textos e idioma
Sección titulada «Textos e idioma»No hay carpeta de locales. Todo el texto que puedes cambiar está en config.lua, en inglés:
| Opción | Qué contiene |
|---|---|
Config.locales.en.app_name | El nombre de la app en el teléfono y el título de sus notificaciones |
Config.locales.en.app_description | La línea que aparece debajo en la App Store |
Config.Messages | Todas las notificaciones: oferta creada, comprada y eliminada, campos sin rellenar, fallos, «ve a la casa de empeños», el aviso de E y el nombre del blip |
Para jugar en otro idioma, traduce esos textos ahí mismo. Algunas respuestas del servidor —“Insufficient items”, “Inventory full”, “This item cannot be listed for sale”, “You do not own this offer” y similares— están fijadas en el archivo protegido del servidor y se quedan en inglés.
En ESX, las notificaciones llegan como notificaciones de lb-phone desde la app. En QBCore usan la notificación propia del framework.
Imágenes de los ítems
Sección titulada «Imágenes de los ítems»La app muestra cada ítem como <Config.InventoryImagePath><item name>.png, leído directamente de tu recurso de inventario. Si falta una imagen, se muestra web/assets/fries.png en su lugar; sustituye ese archivo para cambiar la imagen de reserva.