Saltar al contenido

Newspaper Job

Ver Newspaper Job en la tienda →

Recursos: lt-newspaper (v1.0.0) · lt-printshop (v1.0.0, opcional).

Requisitos

TipoRecursos
Obligatoriosox_lib, oxmysql
Frameworkqs-core, qb-core o es_extended (se detecta solo)
Inventarioqs-inventory u ox_inventory (se detecta solo)
Opcionalesox_target, qs-smartphone, qb-management / esx_society, qs-banking, qs-corevehiclekeys / qb-vehiclekeys
Solo para lt-printshopqs-smartphone

Instalación

  1. Descarga el script desde Keymaster → Granted Assets con la cuenta de Cfx.re que compró.
  2. Copia las carpetas lt-newspaper y lt-printshop dentro de resources/, sin cambiarles el nombre.
  3. Crea los items (ver Items).
  4. Instala el trabajo según tu framework (ver Trabajo).
  5. 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

  1. Entra en el servidor con un usuario que tenga el permiso lt_newspaper.admin y escribe /newspaperadmin.
  2. 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.
  3. En la pestaña Rutas, pulsa Nueva ruta y rellena nombre, pago, tiempos, requisitos y blip.
  4. Añade paradas: entras en el modo edición y colocas buzones, carteles en paredes o zonas de lanzamiento con las teclas de abajo.
  5. Pulsa F para terminar y Guardar. La ruta queda disponible en el NPC.

Teclas del modo edición

TeclaAcción
ENTERColocar el punto
ESCSalir (pulsa otra vez para descartar los puntos sin terminar)
BACKSPACEDeshacer el último punto
FTerminar
GCambiar tipo de parada
HSiguiente modelo
KVoltear el cartel
PAGE UP / PAGE DOWNSeparar o acercar el cartel a la pared
RUEDA (ALT + RUEDA)Girar / cambiar lo que ajusta la rueda
FLECHASMover el punto

Todas se cambian en Config.Keys.

Cómo lo juegan los jugadores

  1. Hablan con el NPC (blip en el mapa) y eligen una ruta. Pueden invitar a jugadores cercanos (hasta 4).
  2. Recogen la caja en el punto de cajas y la cargan en la furgoneta de la ruta.
  3. En cada viaje sacan periódicos o carteles del maletero.
  4. Entregan en buzones, pegan carteles o lanzan el periódico: a pie (apuntar y clic) o desde la furgoneta (G).
  5. Al terminar cobran (efectivo, banco o item) y ganan XP para subir de nivel.

Para abandonar una ruta: /canceldelivery.

Publicidad de negocios

  1. 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.
  2. 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.
  3. Aprobación: por defecto los pedidos se aprueban antes de publicarse, y solo se aceptan imágenes https de los dominios permitidos (i.imgur.com y cdn.discordapp.com).
  4. 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.
  5. 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

ComandoQuiénQué hace
/newspaperadminAdmin (ACE)Abre el editor
/canceldeliveryJugadorAbandona la ruta actual
/testorderAdmin (ACE)Crea un encargo sin la app
/test orderAdmin (ACE)Crea un pedido de prueba ya aprobado
/printshoppin <trabajo>Admin (ACE)Borra el PIN de un negocio (PIN olvidado)
/printshopstatusJugadorExplica 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ónPara qué
Config.DebugMensajes de diagnóstico en la consola. Ponlo en false en producción.
Config.Framework / Config.Inventory'auto' o forzar uno concreto
Config.DefaultsValores con los que nace cada ruta nueva
Config.LevelsXP por nivel y nivel máximo
Config.GroupTamaño del grupo y si el pago se reparte
Config.Vehicles / Config.VehicleFurgonetas disponibles y formato de matrícula
Config.ThrowLanzamiento a pie y desde el vehículo
Config.TrunkUnidades por viaje y qué pasa sin stock
Config.Interaction'auto', 'target' (ox_target) o 'key'
Config.AdsPrecios, 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.