Cuxial Abastecimiento no necesita importar SQL: crea sus tablas en el primer arranque. Sí necesita un trabajo del framework para el personal del supermercado y los ítems de los productos en tu inventario.
Comprueba las dependencias
Estos recursos tienen que estar instalados y funcionando antes de añadir el trabajo:
ox_liboxmysqlcuxial_bridge, con uno de los frameworks compatibles: QBox, QBCore o ESXsleepless_interact- OneSync activado en el servidor
Otros dos vienen dentro del paquete y se instalan en el paso siguiente: cuxial_jobs y cuxial_supermarket_assets.
Para el supermercado necesitas además:
cuxial_banking. El dinero de la tienda está en la cuenta de empresa de su trabajo. Las ventas y las compras al por mayor se ingresan en ella, y las entregas se pagan desde ella. El pago con tarjeta en caja también pasa por ahí.ox_inventoryoqb-inventory, para que los clientes reciban los ítems que compran.
cuxial_garages es opcional. Cuando está en marcha, la tripulación recibe las llaves de la furgoneta y las pierde al terminar la partida.
Copia los recursos
Coloca las tres carpetas del paquete dentro de tu directorio resources. No cambies los nombres de las carpetas.
cuxial_supplycuxial_jobscuxial_supermarket_assets
Si ya tienes otro trabajo de Cuxial, ya tienes cuxial_jobs. Deja una sola copia, la más reciente.
cuxial_supermarket_assets sustituye el edificio del supermercado de Paleto Bay. Quita o detén cualquier otro MLO de ese mismo supermercado antes de arrancarlo: dos mapas en el mismo sitio se rompen entre sí.
Conserva la carpeta data/seed/ de cuxial_supply. Contiene los huecos de las baldas, las neveras y las cajas del supermercado, y se copia a la base de datos al arrancar.
Crea el trabajo del supermercado
El personal del supermercado pertenece al trabajo del framework supermarket. El número de grado decide qué puede hacer cada empleado:
| Grado | Puesto | Puede |
|---|---|---|
| 0 | Reponedor | Coger cajas del almacén y reponer las baldas |
| 1 | Cajero | Todo lo anterior, y cobrar a los clientes en caja |
| 2 | Encargado | Todo lo anterior, y abrir el panel de gestión |
| 3 | Jefe | Todo lo anterior, y poner los precios del lineal |
El nombre del trabajo y los números de grado se cambian en store de shared/config.lua. Los nombres de los grados y los sueldos los eliges tú.
['supermarket'] = {
label = 'Supermercado',
defaultDuty = true,
offDutyPay = false,
grades = {
[0] = { name = 'Reponedor', payment = 50 },
[1] = { name = 'Cajero', payment = 75 },
[2] = { name = 'Encargado', payment = 100 },
[3] = { name = 'Jefe', isboss = true, payment = 150 },
},
},Reponer y cobrar exige estar de servicio (store.duty). Los jugadores entran de servicio con el sistema de servicio de tu framework; defaultDuty = true los pone de servicio al conectarse.
Cuxial Banking crea una cuenta de empresa para cada trabajo de tu framework al arrancar. Reinicia cuxial_banking (o el servidor) después de añadir el trabajo para que exista la cuenta supermarket.
Añade los ítems
Cada producto da un ítem al comprarlo en el supermercado. Añade los que tu inventario aún no tenga. Los nombres visibles y los pesos son un ejemplo: ajústalos a tu servidor.
['raw_chicken'] = { label = 'Pollo', weight = 200 },
['eggs'] = { label = 'Huevos', weight = 200 },
['tomato'] = { label = 'Tomates', weight = 200 },
['lettuce'] = { label = 'Lechugas', weight = 200 },
['potato'] = { label = 'Patatas', weight = 200 },
['onion'] = { label = 'Cebollas', weight = 200 },
['milk'] = { label = 'Leche', weight = 200 },
['flour'] = { label = 'Harina', weight = 200 },
['raw_beef'] = { label = 'Carne de res', weight = 200 },
['champagne'] = { label = 'Champán', weight = 200 },
['whisky'] = { label = 'Whisky', weight = 200 },
['noodles'] = { label = 'Fideos instantáneos', weight = 200 },
['noodles_seafood'] = { label = 'Fideos de marisco', weight = 200 },
['tomato_soup'] = { label = 'Sopa de tomate', weight = 200 },
['veg_soup'] = { label = 'Sopa de verduras', weight = 200 },
['tuna'] = { label = 'Atún en lata', weight = 200 },
['sweetcorn'] = { label = 'Maíz dulce', weight = 200 },
['ketchup'] = { label = 'Kétchup', weight = 200 },
['mustard'] = { label = 'Mostaza', weight = 200 },
['cereal'] = { label = 'Cereales', weight = 200 },
['bread'] = { label = 'Pan de molde', weight = 200 },
['chips'] = { label = 'Patatas fritas', weight = 200 },
['chocolate'] = { label = 'Chocolatinas', weight = 200 },
['candy'] = { label = 'Caramelos', weight = 200 },
['water'] = { label = 'Agua mineral', weight = 200 },
['cola'] = { label = 'Refresco de cola', weight = 200 },
['sprunk'] = { label = 'Sprunk', weight = 200 },
['detergent'] = { label = 'Detergente', weight = 200 },
['dish_soap'] = { label = 'Lavavajillas', weight = 200 },
['cleaner'] = { label = 'Limpiador en espray', weight = 200 },
['shampoo'] = { label = 'Champú', weight = 200 },
['soap'] = { label = 'Jabón de manos', weight = 200 },
['toothpaste'] = { label = 'Pasta de dientes', weight = 200 },
['hair_gel'] = { label = 'Gomina', weight = 200 },
['shaving_foam'] = { label = 'Espuma de afeitar', weight = 200 },
['sugar'] = { label = 'Azúcar', weight = 200 },
['soy_sauce'] = { label = 'Salsa de soja', weight = 200 },
['rum'] = { label = 'Ron', weight = 200 },
['vodka'] = { label = 'Vodka', weight = 200 },
['tequila'] = { label = 'Tequila', weight = 200 },
['beer'] = { label = 'Barril de cerveza', weight = 200 },
['fruit_orange'] = { label = 'Naranja', weight = 200 },
['fruit_pineapple'] = { label = 'Piña', weight = 200 },
['fruit_strawberry'] = { label = 'Fresa', weight = 200 },
['fruit_cherry'] = { label = 'Cereza', weight = 200 },
['fruit_banana'] = { label = 'Banana', weight = 200 },
['raw_pork'] = { label = 'Cerdo crudo', weight = 200 },
['salmon'] = { label = 'Salmón', weight = 200 },
['fish_fillet'] = { label = 'Filete de pescado', weight = 200 },
['shrimp'] = { label = 'Gambas', weight = 200 },
['lobster'] = { label = 'Langosta', weight = 200 },
['cheese'] = { label = 'Queso', weight = 200 },
['cream'] = { label = 'Nata', weight = 200 },
['avocado'] = { label = 'Aguacate', weight = 200 },
['chili'] = { label = 'Chile', weight = 200 },
['fruit_lime'] = { label = 'Lima', weight = 200 },
['mint'] = { label = 'Menta', weight = 200 },
['rice'] = { label = 'Arroz', weight = 200 },
['pasta'] = { label = 'Pasta', weight = 200 },
['beans'] = { label = 'Frijoles', weight = 200 },
['nori'] = { label = 'Alga nori', weight = 200 },
['syrup'] = { label = 'Sirope', weight = 200 },
['coffee_beans'] = { label = 'Café en grano', weight = 200 },
['tea_leaves'] = { label = 'Té', weight = 200 },
['ice'] = { label = 'Hielo', weight = 200 },Con qb-inventory, añade los mismos nombres de ítem a qb-core/shared/items.lua. El ítem de cada producto está en item de data/products.lua: si lo prefieres, apúntalo a un ítem que ya tengas.
El editor avisa, en cada producto, cuando su ítem no existe en tu inventario.
Configura las convars
Todas son opcionales.
# Idioma del trabajo (incluye en y es)
setr ox:locale "es"
# Webhook de Discord para los registros del trabajo
set cuxial_supply_webhook "https://discord.com/api/webhooks/..."
# Trazas de depuración en la consola
setr cuxial_supply_debug "0"El webhook va en server.cfg, nunca en shared/config.lua. El nombre de la convar se cambia en logs.convar. Se lee al arrancar el recurso: ponla encima de las líneas ensure.
Arranca los recursos
Arranca el trabajo después de sus dependencias y de tu framework. cuxial_jobs y cuxial_supermarket_assets van antes que cuxial_supply:
ensure ox_lib
ensure oxmysql
# tu framework aquí (qbx_core, qb-core o es_extended)
# tu inventario aquí (ox_inventory o qb-inventory)
ensure cuxial_bridge
ensure sleepless_interact
ensure cuxial_banking
# opcional
ensure cuxial_garages
ensure cuxial_jobs
ensure cuxial_supermarket_assets
ensure cuxial_supplyNo hay SQL que ejecutar. En el primer arranque el trabajo crea las tablas cuxial_jobs_* que comparten todos los trabajos de Cuxial (cada fila lleva su trabajo) y sus tablas cuxial_supply_*: stock, pedidos, historial, libro de movimientos, capa del editor, huecos y reserva del supermercado, giro de productos y cuxial_supply_seed, que recibe el contenido de data/seed/. install/cuxial_supply.sql es una copia de referencia.
cuxial_supermarket_assets añade un mapa y props. Reinicia el servidor después de instalarlo, no solo el recurso, y reconecta para que todos los clientes lo carguen.
Comprueba que funciona
- Entra en el servidor y abre el mapa. El blip de abastecedor marca el NPC del trabajo en Grapeseed y el del supermercado marca la tienda de Paleto Bay.
- Ve al NPC y usa la opción de interacción. Se abre el panel del trabajo.
- Elige la línea de la granja avícola y pulsa el botón de empezar. Aparece una furgoneta junto al NPC y el HUD muestra el siguiente paso.
- Escribe
/supplyresetpara cancelar la partida de prueba. La furgoneta desaparece. - Como staff, escribe
/supplyrestockpara llenar el supermercado y entra: aparecen productos en las baldas. - Ponte el trabajo
supermarket, entra de servicio y comprueba que los palés del almacén ofrecen Coger caja.
Siguiente: mira cómo funciona todo en el juego en la Guía de funciones y ajústalo en Configuración.
