Documentación de PhoneHub + Pulse

PhoneHub + Pulse Phone — guía de instalación

Edición integrada 1.4.6 · ZeroDev

Para PhoneHub + Pulse Phone 1.4.710 min de lecturaActualizado el

Esta edición combina Pulse Phone, el edificio PhoneHub, el PhoneHub OS personalizado, el kiosco 3D de teléfonos, el banco de reparación y el sistema de stock y entregas del personal. Es un producto distinto de la edición de solo teléfono. Instala el teléfono y el resource de la tienda juntos. No ejecutes dos copias de phone ni dos versiones del mapa de PhoneHub.

1. Antes de instalar

  • Haz una copia de seguridad de tu resource de teléfono actual, del resource del mapa, de la configuración y de la base de datos.
  • Usa OneSync y la game build de GTA 2699 o superior.
  • Inicia primero tu base de datos, framework, inventario, resource de voz y screenshot-basic.
  • Mantén los nombres de los resources exactamente como phone y zerodev_phonehub_mlo.
  • Quita los resources anteriores de PhoneHub del directorio de resources activo y elimina las líneas ensure duplicadas. Guarda las copias de seguridad fuera de ese directorio.
  • Mantén desactivado cualquier otro mapa que sustituya el mismo edificio de Portola Drive.
  • Cierra FiveM por completo y detén el servidor antes de sustituir los archivos del mapa. Inicia el servidor y luego vuelve a abrir FiveM. Desconecta a los clientes antes de sustituir o reiniciar este MLO en streaming. Un cliente conectado puede conservar el mapa aunque esté lejos del edificio; reiniciarlo en caliente puede hacer que ese cliente se cuelgue.

Este paquete no incluye una clave de licencia de servidor, framework, inventario ni scripts de pago de terceros. Una vez procesado en Keymaster, la clave del servidor debe pertenecer a la cuenta que tiene derecho a este nuevo asset combinado. Tener derecho a la antigua edición de solo teléfono no da derecho a esta nueva edición.

2. Copia los resources

Copia las carpetas phone y zerodev_phonehub_mlo de esta descarga al directorio de resources de tu servidor. Puedes ponerlas en cualquier carpeta de categoría; mantén los nombres de las carpetas exactamente igual.

screenshot-basic. La cámara necesita que screenshot-basic esté iniciado antes que phone; el resource estándar funciona. La descarga también incluye una copia más ligera (solo dibuja la imagen del juego mientras se está haciendo una foto, con el mismo nombre, exports y eventos). Cambiar a ella es opcional: guarda tu carpeta antigua como copia de seguridad fuera de resources, prueba los scripts que hacen capturas y vuelve a poner la carpeta antigua si algo cambia. La guía rápida de Pulse Phone, paso 6, tiene los pasos; los archivos modificados están en screenshot-basic/ZERODEV-CHANGES.md.

Añade estas líneas después de tus dependencias actuales en server.cfg:

server.cfg
ensure phone
ensure zerodev_phonehub_mlo

No copies un motor o una interfaz de teléfono antiguos en el paquete nuevo. Al actualizar, pasa los ajustes que necesites a los nuevos archivos de configuración. Conserva tu base de datos, el almacenamiento KVP del resource y los directorios media y ownermedia. El nuevo phone/config/phonehub_business.lua incluye ajustes de entrega que no existen en la edición de solo teléfono.

El mostrador de la tienda configurado está en -749.541, -216.952224, 36.256562, orientación 210. La ubicación de la tienda ya está configurada en la edición integrada limpia. PhoneHub es la única tienda de teléfonos de esta edición: la tienda de Legion Square del paquete de solo teléfono no forma parte de ella. Un config.lua conservado de la 1.4.4 o anterior todavía incluye Legion Square; esa entrada se omite y la consola lo indica una vez. Pulsa la tecla de PhoneHub (E por defecto), o usa /phonehub, en el kiosco de la tienda, en un banco de reparación, en el mostrador de servicio o en el punto de control de la azotea para abrir el terminal de PhoneHub. El kiosco abre Shop y un banco de reparación abre Repair. La tecla se puede cambiar en las asignaciones de teclas de FiveM. El comando requiere la misma cercanía que la tecla; las acciones del personal siguen requiriendo permiso del servidor.

3. Framework, inventario y otros scripts

Empieza con Config.Framework = 'auto' y los ajustes de proveedores automáticos en phone/config/config.lua. El informe de estado de inicio del teléfono indica los proveedores que seleccionó realmente. Revisa ese informe antes de hacer compras.

Framework Configuración
ESX Legacy Inicia es_extended y el inventario antes que phone. Importa zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql; esto añade los rangos de trabajo que faltan sin asignar a ningún jugador.
QBCore Añade la entrada de trabajo incluida zerodev_phonehub_mlo/setup/phonehub_qb_job.lua a la tabla de shared jobs de tu core. Registra los items del teléfono con la guía de items del teléfono.
Qbox Registra el mismo trabajo y rangos mediante la configuración de trabajos de Qbox que tengas instalada o una API de registro de trabajos compatible. Usa las definiciones de items de ox_inventory.
ox_core / vRP Configura el adaptador de framework que ya tiene el teléfono y un proveedor de trabajos que devuelva el trabajo de PhoneHub y el rango numérico. Usa el acceso al edificio controlado por ACE si tu sistema de trabajos no los expone.
Standalone / personalizado La compra pública está disponible mediante el bridge standalone/personalizado que ya tiene el teléfono. El acceso del personal necesita un proveedor de trabajos configurado o un ACE de administrador de confianza.

Los adaptadores de inventario cubren ox_inventory, las funciones de inventario de los frameworks compatibles y los proveedores de terceros indicados en phone/guides/integrations.md (o en la guía de integraciones incluida con tu build del teléfono). Cada proveedor necesita sus definiciones de items reales y una versión de API compatible. Las comprobaciones de estado del teléfono informan de los items que faltan; no ocultes esos errores. Los ejemplos de configuración de items vienen en phone/config/items/.

Los bridges editables del teléfono cubren voz, cuentas de sociedad, banca, garajes, viviendas, dispatch y otras integraciones. Mantén exactamente un proveedor seleccionado por función. Fija los resources renombrados mediante Config.ResourceNames; usa Config.Providers para seleccionar un proveedor explícitamente. Los exports arbitrarios de terceros no son compatibles automáticamente: implementa el bridge personalizado documentado cuando tu script no esté en la lista. Los adaptadores de framework y las pruebas de contrato automáticas no significan que se haya probado en vivo cada versión de terceros.

Stack probado en vivo para esta versión: ESX Legacy, ox_inventory, oxmysql y pma-voice. Con otro framework, ejecuta las comprobaciones del primer inicio de la sección 7 antes de abrir la tienda.

4. Tienda pública o negocio propiedad de un jugador

Ejecuta cualquiera de los dos comandos en la consola del servidor:

phonehubmode public
phonehubmode business

El modo seleccionado se mantiene tras los reinicios. El modo público mantiene la compra normal. El modo negocio aplica stock persistente y reservas a las compras hechas en el mostrador de PhoneHub. El modo negocio desactiva las entregas a cuenta en el mostrador. El mismo checkout del teléfono valida precios, pagos y entrega de items.

Configura el nombre del trabajo y los rangos en phone/config/phonehub_business.lua:

Rango Funciones por defecto
0 — aprendiz Ver el terminal del negocio, recibir las entregas que han llegado, controles del edificio
1 — ventas Funciones de aprendiz más pedidos a proveedores
2 — técnico Pedidos/recepción y la función de reparación configurada
3 — gerente Todos los controles del personal más cancelación/reembolso de pedidos de suministro pendientes

Asigna los trabajos con las herramientas de administración normales de tu framework. Abre Services → My Work → PhoneHub → Staff and account en el teléfono para la gestión de la empresa. Usa las funciones de personal/sociedad compatibles del framework seleccionado. La edición combinada también admite la propiedad duradera por parte de un jugador mediante una compra en el juego en la pestaña Business o con el comando de asignación de administrador descrito más abajo. Todos los precios de propiedad son cantidades de moneda del juego.

Para ESX con esx_addonaccount, importa también zerodev_phonehub_mlo/setup/phonehub_esx_society.sql antes de iniciar el resource de cuentas, y luego reinicia tu servidor. Esto crea la cuenta de empresa society_phonehub con saldo cero sin sustituir un saldo existente. Si renombraste el trabajo, actualiza el sufijo de la cuenta para que coincida. Otros proveedores de banca necesitan su configuración normal de cuenta de empresa para el trabajo configurado. Comprueba un pequeño depósito y retiro en Company antes de abrir el negocio.

El presupuesto operativo es un libro interno aparte para comprar stock. Las ventas lo aumentan; los pedidos a proveedores lo reducen. No es automáticamente una cuenta bancaria de sociedad ni un saldo de efectivo que un jugador pueda retirar.

5. Pedidos a proveedores y entrega de inventario

En el mostrador de servicio, pulsa E para abrir el terminal de PhoneHub y luego Stock. Elige un producto, una configuración y una cantidad. El servidor calcula el presupuesto del proveedor y comprueba el rango, la cercanía y el presupuesto operativo del empleado.

La entrega por defecto tarda 120 segundos. Sigue en tránsito tras los reinicios. Cuando llega, un empleado selecciona Receive delivery en el terminal. El valor por defecto destination='stock' añade la mercancía al libro de stock de la tienda que consume el checkout, independientemente del proveedor de inventario del jugador comprador. Las peticiones repetidas de recepción no pueden añadir dos veces el mismo envío. Los gerentes pueden cancelar un envío no recibido con un único reembolso al presupuesto.

Configuración:

Lua
delivery = {
    seconds = 120,
    autoReceive = false,
    destination = 'stock',
    resource = '',
    export = '',
}

Para un almacén/stash personalizado, pon destination='custom' e indica un export de servidor. Recibe (shipment, source) y debe usar shipment.id como clave duradera para evitar duplicados. Devuelve true solo cuando todas las líneas se hayan guardado correctamente. Configura la correspondencia de items/SKU de tu inventario en ese adaptador. La entrega personalizada no añade además los items al libro de ventas interno; conecta explícitamente el flujo de venta de tu almacén para evitar stock duplicado. No se presupone ningún adaptador de stash universal.

Una entrega externa incierta queda retenida para revisión, nunca se reintenta a ciegas. Después de revisar el inventario de destino, usa:

phonehubdelivery <shipment-id> delivered
phonehubdelivery <shipment-id> retry

Para una reserva de checkout de cliente incierta, revisa los registros de pago y de inventario antes de usar phonehubresolve <reservation-id> returned|delivered.

6. Controles de la tienda

Pulsa E cerca del punto de control de servicio o del pedestal de control de la azotea.

  • Space: cierres de la puerta principal y de la puerta de la azotea, luces de la tienda, la pantalla del lounge, el toldo de la terraza (automático con lluvia o nieve, o abierto/cerrado), estufas o ventilación de la terraza, electricidad de la terraza y una prueba de aspersores de 15 segundos.
  • Cameras: Entrance overview, Showroom overview y Service counter. Volver al terminal cierra la cámara; Escape sale.
  • Stock y Business: pedidos a proveedores, entregas, recaudación, el libro de ventas y reparaciones, y acceso del equipo.

Los controles del edificio requieren el trabajo de PhoneHub o el ACE de personal/admin configurado. El acceso público a los controles de la terraza se configura aparte en systems_config.lua. Asigna phonehub.admin solo a tu principal de administrador de confianza; nunca a todos. Pon phoneResource='phone' en la configuración de sistemas del MLO.

Las puertas automáticas usan sensores de proximidad cuando están desbloqueadas. Sus hojas móviles deben seguir siendo sólidas, también cuando están abiertas. Los muebles, el cristal y la iluminación son assets de mapa creados a mano; no todos los objetos decorativos tienen una interacción jugable.

7. Validación del primer inicio

  1. Inicia el servidor y ejecuta phone:health. Confirma que el framework, el inventario, la base de datos y los proveedores de voz son los esperados, y que no falta ningún item necesario.
  2. Entra con normalidad y visita la tienda. Camina desde la acera a través de los dos pares de puertas de entrada, sube y baja las escaleras y atraviesa la puerta de la azotea con el noclip desactivado.
  3. Abre y cierra el toldo. Sus ocho paneles deben quedar alineados dentro de los raíles guía en todas las posiciones. Prueba aparte el cierre automático por lluvia/nieve.
  4. Abre cada vista de CCTV, cambia entre ellas y sal. La escena debe verse y la vista/el foco normal del jugador debe volver.
  5. Cierra los dos grupos de puertas con una cuenta de personal. Comprueba la colisión desde ambos lados. Desbloquéalas y vuelve a comprobar la animación de apertura por proximidad.
  6. Revisa la iluminación de día y de noche, la pantalla encendida/apagada, el cristal, la señalización, los asientos y todos los bordes. Camina y conduce hacia el edificio y alejándote de él para revisar las transiciones de streaming.
  7. Compra un teléfono/accesorio en modo público. En modo negocio, comprueba que el stock baja, los pedidos de los empleados, la llegada/recepción, los fondos insuficientes y el acceso no autorizado.
  8. Reinicia el servidor y confirma que el modo de la tienda, el stock y las entregas pendientes se mantienen. Repite un intento de recepción/cancelación duplicada; no debe aparecer mercancía ni reembolso duplicados. Comprueba que varios jugadores ven el mismo estado de la tienda.

phonehubcheck en la consola F8 del cliente informa de la alineación real del toldo; cada panel debería indicar una alineación cercana a 1. Es un diagnóstico, no una prueba de que la calidad visual o las colisiones sean correctas. Las comprobaciones automáticas no pueden certificar todos los ángulos de cámara ni todas las combinaciones de servidor.

8. Solución de problemas y actualizaciones

Puerto 30120 ocupado: ya hay otra instancia del servidor en marcha. Detenla desde tu txAdmin (o el panel del hosting) en lugar de iniciar un segundo FXServer.

Faltan los controles: comprueba que los dos resources arrancaron, que sus nombres no han cambiado y que el jugador está en el punto de control. Revisa los errores de F8 del cliente y del servidor.

Sin acceso de personal: revisa el trabajo configurado, el rango numérico, la cercanía al mostrador de servicio y el proveedor de trabajos seleccionado. El modo de tienda pública no da derechos de personal.

Sigue apareciendo el mapa antiguo/la interfaz antigua: quita los resources/entradas ensure duplicados. Cierra FiveM por completo, detén el servidor, sustituye los archivos, luego inicia el servidor y vuelve a abrir FiveM. Solo reconectarse puede conservar assets en streaming obsoletos. No recargues en caliente el MLO mientras haya un cliente conectado, aunque esté lejos del edificio.

Volver atrás: detén estos resources, restaura las carpetas de resources y la configuración de la copia de seguridad, y reinicia con tu txAdmin actual. Conserva el almacenamiento de la base de datos/KVP salvo que restaures a propósito una copia de seguridad de datos coherente.

Guarda los hashes de la versión incluidos (SHA256.json) para las solicitudes de soporte.

PhoneHub OS y propiedad

Config.PhoneHubOS en phone/config/phonehub_business.lua controla esta edición. ownership='both' permite la compra en el juego y la asignación por un administrador. Pon 'admin' o 'purchase' para permitir solo una vía. purchasePrice es una cantidad de moneda del juego. Los administradores usan phonehubowner <online player id> desde la consola del servidor o con el ACE phonehub.admin. La asignación se bloquea mientras haya un pago de compra pendiente. El dueño se guarda asociado al identificador de personaje del framework, nunca a un número de source temporal del jugador. La propiedad activa el sistema duradero de stock y presupuesto operativo existente.

Los dueños añaden personal o gerentes cercanos en la pestaña Business. Estos roles independientes funcionan mediante el bridge de identidad del framework; no cambian el trabajo principal del jugador. Los roles del trabajo de PhoneHub existentes y el acceso administrativo configurado siguen funcionando. Por defecto, los gerentes pueden pedir suministros y el personal puede recibir los envíos que han llegado. El stock queda reservado hasta que se confirma una compra o una entrega del proveedor.

service='hybrid' permite tanto el checkout y las reparaciones con asistencia como en autoservicio. 'self' permite el servicio directo; 'staff' exige una oferta del personal aprobada por el cliente en esta tienda. El producto standalone mantiene su OS de compra existente.

En el kiosco de la tienda, acércate y pulsa E. La pestaña Shop carga el modelo Pulse protegido real, con giro arrastrando, vista frontal/trasera, zoom y el acabado seleccionado. El precio viene del servidor del teléfono. El pago requiere confirmación y usa el inventario, el dinero y la entrega del teléfono en caja configurados. Un tiempo de espera agotado no prueba que el cobro haya fallado; revisa el inventario y el registro de pagos antes de volver a intentarlo.

Los clientes piden ayuda de ventas o de reparación en la pestaña Help y reciben un número de cola. El personal elige un cliente cercano en la pestaña Counter y prepara una oferta; solo ese cliente puede aprobarla y pagar. Los dos deben seguir en la misma tienda y en el mismo routing bucket. La aprobación de una reparación queda ligada al dispositivo único seleccionado y a su precio presupuestado. Cambiar de dispositivo la invalida.

En las reparaciones asistidas, el técnico abre el terminal en un banco de reparación libre, prepara la oferta de reparación del cliente y se queda ahí hasta que se acepte. El banco se reserva antes del pago. Una reparación pagada con éxito ejecuta la secuencia de montaje con ese jugador como técnico; el autoservicio usa al técnico de la tienda. El motor del teléfono se encarga de la reparación del dispositivo y recupera el trabajo pagado tras una sesión del servidor interrumpida. Los props del cliente nunca crean ni sustituyen un teléfono del inventario.

La pestaña Space, en los puntos de control de la azotea y del mostrador, controla el toldo, la climatización, los cierres, la iluminación y la pantalla. Se conservan la geometría, la protección contra el tiempo, el suelo y los asientos del MLO terminado.

Traducido del inglés. Si algo de aquí no coincide con la página en inglés, la página en inglés es la correcta. English