Instalación
Diez minutos: un archivo SQL, un permiso y tres líneas de config.lua que conviene revisar.
Antes de empezar
Sección titulada «Antes de empezar»| Necesitas | Por qué |
|---|---|
| ESX, QBCore o QBox | El dinero, los trabajos, los ítems y las notificaciones vienen del framework |
| oxmysql | Todo lo que recuerdan las tiendas está en tu base de datos |
| ox_target o qb-target | Opcional. ox_target es el valor por defecto; sin ninguno de los dos, los jugadores ven un aviso de ayuda y pulsan E |
| screenshot-basic | Opcional, para las capturas de pantalla en los logs de Discord. Necesario si dejas Config.Screenshot activado |
1. Coloca la carpeta
Sección titulada «1. Coloca la carpeta»Descarga mic_shopcreator desde tus Cfx.re granted assets y suelta la carpeta en tus recursos, por ejemplo resources/[mic]/mic_shopcreator.
2. Arráncalo después de aquello de lo que depende
Sección titulada «2. Arráncalo después de aquello de lo que depende»En server.cfg, ensure mic_shopcreator va debajo de oxmysql, tu framework (es_extended, qb-core o qbx_core), tu inventario, tu recurso de target y screenshot-basic.
Ha funcionado si el recurso arranca sin líneas rojas y sin ningún mensaje Locale file not found.
3. La base de datos
Sección titulada «3. La base de datos»Importa mic_shopcreator.sql una sola vez. Crea nueve tablas:
| Tabla | Qué guarda |
|---|---|
mic_shopcreator | Las tiendas, con sus ajustes de blip, trabajo, atraco, propiedad y webhook |
mic_shopcreator_locations | Dónde está cada tendero, su modelo, su ropa y cuándo fue atracado por última vez |
mic_shopcreator_products | Los productos de las tiendas que gestiona el servidor |
mic_shopcreator_owner_products | Los productos de las tiendas de jugadores, con su stock |
mic_shopcreator_jobs | Qué trabajos y rangos pueden usar una tienda |
mic_shopcreator_rewards | Lo que paga un atraco |
mic_shopcreator_owners | Quién es dueño de qué tienda |
mic_shopcreator_employees | Quién trabaja dónde, su comisión y su caja fuerte personal |
mic_shopcreator_vaults | El saldo de dinero limpio y negro de cada tienda con dueño |
¿Actualizas desde una versión anterior? No necesitas update.sql: en cada arranque el recurso comprueba las columnas añadidas desde entonces (clothes en las ubicaciones, min_amount y max_amount en las recompensas) y las añade si faltan. La consola dice Added clothes column to mic_shopcreator_locations table. la única vez que lo hace.
4. Ítems
Sección titulada «4. Ítems»No trae ninguno propio. Una tienda vende ítems que ya existen en tu inventario: escribes sus nombres al añadir un producto. Las imágenes de los productos salen de la carpeta de imágenes de tu inventario; consulta el paso 5.
5. Framework, target e imágenes
Sección titulada «5. Framework, target e imágenes»Abre config.lua y revisa:
| Opción | Ponla en |
|---|---|
Config.Framework | 'esx' (por defecto) o 'qbcore'. No se detecta solo. En QBox, usa 'qbcore': QBox ejecuta los recursos de QBCore a través de su capa de compatibilidad |
Config.Interaction | 'ox_target' (por defecto), 'qb-target' o 'default' (aviso de ayuda y E) |
Config.InventoryImagePath | Dónde guarda tu inventario las imágenes de los ítems. Viene apuntando a nui://ox_inventory/web/images/ |
Config.IdentifierType | Cómo se reconoce a los dueños y empleados. Viene como 'discord'; mira abajo |
Config.IdentifierType decide qué va en la lista de dueños y qué guarda la tabla de empleados:
| Valor | Se reconoce a los jugadores por | Úsalo cuando |
|---|---|---|
'discord' | Su ID de Discord, el número sin discord: | Todos se conectan con Discord vinculado |
'license' | Su licencia de Rockstar, el license:… completo | No exiges Discord |
'esx' | El identificador propio de ESX, prefijo de personaje incluido | ESX con multipersonaje, para que cada personaje tenga sus propias tiendas |
'citizenid' | El citizen ID de QBCore | QBCore o QBox, para que cada personaje tenga sus propias tiendas |
Elígelo antes de que nadie sea dueño de una tienda o trabaje en ella. Cambiarlo después implica volver a introducir a todos los dueños, y los empleados existentes dejarán de ser reconocidos.
6. Date acceso al panel
Sección titulada «6. Date acceso al panel»El panel está protegido por el permiso ACE mic_shop.open (no mic_shopcreator.open). Concédelo en server.cfg con una línea add_ace: a una persona, por ejemplo add_ace identifier.discord:YOUR_DISCORD_ID mic_shop.open allow, o a un grupo, por ejemplo add_ace group.admin mic_shop.open allow.
Ha funcionado si /shopcreator abre el Shop Creator. Sin el permiso, recibes la notificación de “sin permiso”.
7. Primera prueba
Sección titulada «7. Primera prueba»/shopcreator, crea una tienda y ponle un nombre.- Añade una ubicación. Una vista previa del tendero sigue hacia donde miras: la rueda del ratón lo gira, ↑ / ↓ lo suben y bajan, E lo coloca y X cancela.
- Añade un producto: un ítem que exista en tu inventario, un precio, una categoría y un tipo de pago. Guarda.
Ha funcionado si el tendero está donde lo colocaste, al hablar con él se abre la tienda con tu producto y su imagen, y al comprarlo se cobra el dinero y se entrega el ítem.
Antes de abrir tu ciudad
Sección titulada «Antes de abrir tu ciudad»Config.IdentifierTypees definitivo. Decídelo ahora; los dueños y empleados se guardan según él.- Solo los admins tienen
mic_shop.open. Con él se pueden crear, editar y borrar todas las tiendas. - Deja
Config.Screenshotactivado solo siscreenshot-basicestá en marcha. Si no, los logs no se enviarán. - Los cooldowns de atraco se fijan por tienda, en minutos: pon uno en cada tienda que hagas atracable.
- Compra algo con un personaje normal en cada tienda restringida por trabajo, para comprobar el rango que has fijado.