Newspaper Job
Ver Newspaper Job en la tienda →
Recursos: lt-newspaper (v1.0.0) · lt-printshop (v1.0.0, opcional).
Requisitos
| Tipo | Recursos |
|---|---|
| Obligatorios | ox_lib, oxmysql |
| Framework | qs-core, qb-core o es_extended (se detecta solo) |
| Inventario | qs-inventory u ox_inventory (se detecta solo) |
| Opcionales | ox_target, qs-smartphone, qb-management / esx_society, qs-banking, qs-corevehiclekeys / qb-vehiclekeys |
Solo para lt-printshop | qs-smartphone |
Instalación
- Descarga el script desde Keymaster → Granted Assets con la cuenta de Cfx.re que compró.
- Copia las carpetas
lt-newspaperylt-printshopdentro deresources/, sin cambiarles el nombre. - Crea los items (ver Items).
- Instala el trabajo según tu framework (ver Trabajo).
- Añade al
server.cfg, siempre después del framework, el inventario y el móvil:
ensure ox_lib ensure oxmysql ensure lt-newspaper ensure lt-printshop # opcional / optional (qs-smartphone) add_ace group.admin lt_newspaper.admin allow
Las tablas de la base de datos se crean solas al arrancar (newspaper.sql y printshop.sql); importarlas a mano es opcional. Si actualizas el script, las columnas nuevas también se añaden solas.
Items
El script usa dos items: newspaper y poster. Los nombres se cambian en Config.Items. Peso, imagen y texto son ejemplos: ajústalos a tu servidor.
ox_inventory · ox_inventory/data/items.lua
['newspaper'] = {
label = 'Periódico',
weight = 100,
stack = true,
},
['poster'] = {
label = 'Cartel',
weight = 200,
stack = true,
},
qs-inventory
Créalos con /inventorycreator. Para que el periódico se pueda lanzar desde el inventario, pon en el campo object del item newspaper el modelo prop_cs_rolled_paper (es uno de los modelos que el script busca en Config.Throw.models).
Trabajo "Reparto de prensa"
El trabajo newspaper (3 grados: Repartidor, Repartidor senior y Jefe de reparto) se define en Config.WorkJob.
- QS Core: se registra solo al arrancar. No hay que hacer nada.
- ESX: importa
lt-newspaper/newspaper_job.sql(se puede ejecutar varias veces). - QBCore: añádelo a
qb-core/shared/jobs.lua:
newspaper = {
label = 'Reparto de prensa',
defaultDuty = true,
offDutyPay = false,
grades = {
['0'] = { name = 'Repartidor', payment = 120 },
['1'] = { name = 'Repartidor senior', payment = 170 },
['2'] = { name = 'Jefe de reparto', isboss = true, payment = 240 },
},
},
Si prefieres que cualquier jugador pueda hacer rutas y pedidos sin tener el trabajo, desactívalo en el editor, pestaña Configuración.
Primeros pasos: crear una ruta
- Entra en el servidor con un usuario que tenga el permiso
lt_newspaper.adminy escribe/newspaperadmin. - En la pestaña Configuración, coloca el NPC que da las rutas, los puntos de aparcamiento de la furgoneta y el punto de recogida de cajas. Mientras no los coloques, se usan las posiciones de
config.lua. - En la pestaña Rutas, pulsa Nueva ruta y rellena nombre, pago, tiempos, requisitos y blip.
- Añade paradas: entras en el modo edición y colocas buzones, carteles en paredes o zonas de lanzamiento con las teclas de abajo.
- Pulsa F para terminar y Guardar. La ruta queda disponible en el NPC.
Teclas del modo edición
| Tecla | Acción |
|---|---|
| ENTER | Colocar el punto |
| ESC | Salir (pulsa otra vez para descartar los puntos sin terminar) |
| BACKSPACE | Deshacer el último punto |
| F | Terminar |
| G | Cambiar tipo de parada |
| H | Siguiente modelo |
| K | Voltear el cartel |
| PAGE UP / PAGE DOWN | Separar o acercar el cartel a la pared |
| RUEDA (ALT + RUEDA) | Girar / cambiar lo que ajusta la rueda |
| FLECHAS | Mover el punto |
Todas se cambian en Config.Keys.
Cómo lo juegan los jugadores
- Hablan con el NPC (blip en el mapa) y eligen una ruta. Pueden invitar a jugadores cercanos (hasta 4).
- Recogen la caja en el punto de cajas y la cargan en la furgoneta de la ruta.
- En cada viaje sacan periódicos o carteles del maletero.
- Entregan en buzones, pegan carteles o lanzan el periódico: a pie (apuntar y clic) o desde la furgoneta (G).
- Al terminar cobran (efectivo, banco o item) y ganan XP para subir de nivel.
Para abandonar una ruta: /canceldelivery.
Publicidad de negocios
- Prepara las zonas: en el editor, pestaña Encargos negocios, crea zonas y marca en ellas los huecos de pared donde se podrán pegar carteles.
- El negocio encarga: el jefe de un negocio abre la app Print Shop en el móvil, crea su PIN la primera vez y pide carteles con la URL de su imagen, la zona y la cantidad.
- Aprobación: por defecto los pedidos se aprueban antes de publicarse, y solo se aceptan imágenes
httpsde los dominios permitidos (i.imgur.comycdn.discordapp.com). - Los repartidores lo cumplen: cogen el pedido, recogen los carteles y los pegan en los huecos marcados. Cobran su parte (por defecto, el 40 %). El resto va a la cuenta de sociedad del trabajo, si existe.
- Si nadie coge el pedido en 24 h, se devuelve el dinero (configurable).
Aviso: las imágenes las descarga el juego de todos los jugadores que pasen cerca. Mantén activadas la aprobación y la lista de dominios.
Comandos
| Comando | Quién | Qué hace |
|---|---|---|
/newspaperadmin | Admin (ACE) | Abre el editor |
/canceldelivery | Jugador | Abandona la ruta actual |
/testorder | Admin (ACE) | Crea un encargo sin la app |
/test order | Admin (ACE) | Crea un pedido de prueba ya aprobado |
/printshoppin <trabajo> | Admin (ACE) | Borra el PIN de un negocio (PIN olvidado) |
/printshopstatus | Jugador | Explica por qué la app Print Shop se ve o no |
Teclas de jugador (cada uno puede cambiarlas en Ajustes → Asignación de teclas → FiveM): E interactuar, G lanzar desde el vehículo.
Importante: /test order paga al repartidor con dinero que no sale de nadie. En un servidor abierto, desactívalo con Config.Ads.test.command = ''.
Configuración principal
Todo está comentado en config.lua. Lo más habitual:
| Opción | Para qué |
|---|---|
Config.Debug | Mensajes de diagnóstico en la consola. Ponlo en false en producción. |
Config.Framework / Config.Inventory | 'auto' o forzar uno concreto |
Config.Defaults | Valores con los que nace cada ruta nueva |
Config.Levels | XP por nivel y nivel máximo |
Config.Group | Tamaño del grupo y si el pago se reparte |
Config.Vehicles / Config.Vehicle | Furgonetas disponibles y formato de matrícula |
Config.Throw | Lanzamiento a pie y desde el vehículo |
Config.Trunk | Unidades por viaje y qué pasa sin stock |
Config.Interaction | 'auto', 'target' (ox_target) o 'key' |
Config.Ads | Precios, aprobación, dominios, reparto del dinero y webhook de Discord |
Los textos están en locales/es.lua. Para traducir, edita ese archivo. Para usar otros recursos (otro móvil, banco o inventario), adapta los archivos de bridge/.
Problemas comunes
No se abre el editor con /newspaperadmin
Falta el permiso. Comprueba el add_ace del server.cfg y que tu usuario pertenece a ese grupo.
"No se pudo leer la lista de items del inventario"
El inventario no está arrancado antes que lt-newspaper, o no es qs-inventory ni ox_inventory. Revisa el orden del server.cfg.
"No se pudo registrar el trabajo newspaper"
Solo pasa en QS Core: qs-core debe arrancar antes que el script.
El periódico lanzado desde el inventario no cuenta
En qs-inventory, el item newspaper debe tener como object un modelo de Config.Throw.models.
No veo la app Print Shop en el móvil
Escribe /printshopstatus: te dice el motivo. Solo la ven los jefes de negocio con acceso a los encargos, y necesita qs-smartphone.
Un cartel sale del revés
En el modo edición, pulsa K para voltearlo. Para dejarlo fijo, añade front a ese modelo en Config.PosterModels.
Errores de Escrow (entitlement, verify, parsing)
Mira la FAQ general.
Soporte
¿No lo resuelves? Abre un ticket en nuestro Discord con la versión del script, tu framework e inventario y el error completo de la consola.