por Avenida Team ESX · QBCore · vRP · Standalone · oxmysql

Clothing store

Una tienda de ropa con conjuntos guardados, vestuarios de empresa y un editor que pone precio al catálogo desde el propio juego. Todos los componentes y todos los props, comprados prenda a prenda o como conjunto entero, con un registro en el servidor que impide que nadie lleve puesto lo que no ha pagado.

Entrega Instantánea
Actualizaciones Gratis de por vida
Soporte Discord los 7 días
01 · FUNCIONALIDADES

Lo que hace

02 · SPECS

Especificaciones
técnicas

Framework Detección auto QBCore · ESX · vRP · Standalone · Custom
Dependencias oxmysql ox_lib · ox_target · ox_inventory compatibles
Tiendas 21 incluidas 15 secciones · 4 boutiques de máscaras y bolsas
Idiomas en juego 15 incluidos ar · cs · de · en · es · fr · id · it · nl · pl · pt-br · ro · ru · th · tr
Rendimiento 0.00ms en reposo No corre nada mientras no hay nadie en una tienda
03 · INCLUIDO

Todo lo que
recibes

  • Quince archivos de idioma, ya rellenados

    Tus jugadores leen el script en su idioma desde el primer arranque, y los archivos están fuera del escrow, así que puedes corregir cualquier línea en producción. Nota honesta: están traducidos y revisados por nosotros, pero no los ha corregido un hablante nativo de cada uno de los quince. Dinos qué suena mal en el tuyo y lo arreglamos.

  • Ocho bridges, un archivo cada uno

    Framework, notificaciones, interacción, ropa, inventario, decoraciones, capturas de pantalla y compat. Cada archivo documenta sus targets, qué detecta y qué te cuesta cada uno. La detección sondea el export real en vez del estado del recurso, así que un export renombrado se degrada en silencio en lugar de reventar al arrancar.

  • Todo el catálogo queda abierto

    Tiendas, secciones, precios, impuesto y descuento, drawables bloqueados, listas VIP y los overrides que escribe el editor dentro del juego. `config/*.lua`, `locales/*.lua` y `bridges/*.lua` están fuera del escrow y son editables en producción.

  • Un informe de instalación para pegar en soporte

    `/avenida_clotheshops_check` imprime qué bridge se eligió para cada categoría, si las tablas y columnas existen, y qué build del juego trae realmente tu servidor. Responde a la mayoría de las dudas de integración antes de que tengas que preguntarlas.

04 · DOCUMENTACIÓN

Guía de integración

01

Instalación

  1. Coloca el recurso

    Descarga el script desde tu cuenta Tebex, copia la carpeta avenida_clotheshops/ en tu directorio de recursos y añade ensure avenida_clotheshops a la config del servidor, después de ensure oxmysql.

  2. Ejecuta el SQL

    Ejecuta la sección [A] de INSTALL.sql en tu base de datos. La sección [B] es condicional, la cabecera del archivo dice cuándo la necesitas.

  3. Concede los permisos de admin

    Añade add_ace group.admin avenida_clotheshops.admin allow y add_ace group.admin avenida_clotheshops.vip allow a la config del servidor. El primero abre el editor de catálogo dentro del juego, el segundo desbloquea lo que hayas reservado a la lista VIP.

  4. Pon precio al catálogo desde el juego

    Pon Config.DevMode.Enabled = true, entra en una tienda y abre el editor. Fija precios, oculta lo que no vendes, reserva lo que pertenece a un trabajo. Todo acaba en config/clothes_overrides.lua. Vuelve a apagar DevMode cuando termines, se comprueba otra vez en el servidor en cada guardado.

  5. Verifica las integraciones

    Pon Config.Debug = true, reinicia y lee la consola: una línea por categoría de bridge nombra el target elegido. Config.Debug solo controla los logs, no es el interruptor del editor.

02

Inicio rápido

Poner precio a una sección de tres formas distintas

Cada tienda declara sus secciones, y cada sección su modo de precio. Una tarifa única para toda una sección, un multiplicador que encarece los drawables siguientes, o una tabla cuando solo un puñado de prendas merece su propio precio.

lua
-- config/clothes_shops.lua
categories = {
    tops = {
        enabled = true,
        price   = { mode = 'fixed', base = 300 },
    },
    pants = {
        enabled = true,
        -- price = base + index * mult
        price   = { mode = 'multiplier', base = 100, mult = 2 },
    },
    mask = {
        enabled = true,
        price   = { mode = 'table', map = { [12] = 900, [45] = 1500 } },
        -- only these drawables are offered
        whitelist = { 12, 45, 51 },
    },
}
03

Referencia de la API

Exports públicos agrupados por dominio. Cada fila muestra la firma de la llamada y qué hace, no cómo lo hace.

Client

  • GetSkinData
    exports['avenida_clotheshops']:GetSkinData()

    El conjunto que lleva puesto el jugador, componente a componente, props incluidos. Es lo que la tienda escribe al comprar, así que siempre coincide con lo que muestra el armario.

  • ApplySkin
    exports['avenida_clotheshops']:ApplySkin(data, ped)

    Aplica una apariencia completa a un ped. Poner un conjunto vacía la ranura de decoraciones, así que esta llamada vuelve a poner después el trabajo de barbería y de tatuaje en vez de dejar la piel desnuda.

  • ApplyClothing
    exports['avenida_clotheshops']:ApplyClothing(data, ped, temporary)

    Cambia la ropa y nada más. Con temporary en true el conjunto vive solo durante la sesión, que es como debe comportarse un uniforme que entrega un trabajo.

Server

  • GetBagStorage
    exports['avenida_clotheshops']:GetBagStorage(sex, drawable) --> { weight, slots } | nil

    La capacidad que da un drawable de mochila, peso y ranuras, o nil cuando ese drawable no lleva nada. Llámalo desde tu recurso de inventario para que una mochila comprada guarde algo de verdad.

04

Recetas

Ejemplos para copiar y pegar en los casos más habituales. Los metes en tu recurso, ajustas los valores y a producción.

Una tienda es una sola entrada de config. Lleva su nombre visible, su método de pago, su símbolo de moneda, un impuesto y un descuento opcionales sobre el total del carrito, y las secciones que ofrece. Mantén la clave estable: es el id de tienda que se guarda dentro de los conjuntos, y cambiarle el nombre después de que la gente haya comprado allí les rompe los datos.

lua
-- config/clothes_shops.lua
Config.Clothes.Shops[22] = {
    name       = 'Ponsonbys - Rockford Hills',
    payment    = 'bank',
    currency   = '$',
    tax        = 0.20,        -- +20% on the cart
    discount   = 0.00,
    outfitMode = true,
    blip = { sprite = 73, color = 4, scale = 0.7, coords = vec3(-708.2, -152.2, 37.4) },
    categories = {
        tops  = { enabled = true, price = { mode = 'fixed', base = 900 } },
        shoes = { enabled = true, price = { mode = 'fixed', base = 450 } },
    },
}
05

Preguntas frecuentes

  • Mira `Config.Clothes.RequireOwnership`. El registro da por pagado lo que un personaje ya lleva puesto la primera vez que lo ve, así que activarlo no le quita el vestuario a nadie. Lo que sí rechaza es una escritura de una prenda que no tenga una compra detrás, que es justo lo que manda un cliente manipulado. Si un recurso tuyo viste a los jugadores con prendas que nunca compraron, registra esas compras o pon el flag a false.
OPINIONES

Lo que dicen los compradores

4.8 5 opiniones verificadas

  • Haldor

    brilliant scripts and great support 10 /10

    Ver en Discord ↗
  • BigOppGrimeyy GangWrld NYC

    10/10 was having a problem and these guys ain't stop till it was fix customer service is great definitely buying again

    Ver en Discord ↗
  • 00hugi

    Super scripts and even better and fast support. Thanks a lot!!

    Ver en Discord ↗
  • reapersrow

    Amazing support from the developers and a smooth script!

    Ver en Discord ↗
  • Necro Huston RP

    Best service Ive ever received! He even helped me fix problems not associated with his script!

    Ver en Discord ↗
Carrito
Spirit RP
Discord