Documentação do PhoneHub + Pulse

PhoneHub + Pulse Phone — guia de instalação

Edição integrada 1.4.6 · ZeroDev

Para o PhoneHub + Pulse Phone 1.4.710 min de leituraAtualizado em

Esta edição reúne o Pulse Phone, o prédio da PhoneHub, o PhoneHub OS customizado, o quiosque 3D de celulares, a bancada de conserto e o sistema de estoque/entregas dos funcionários. É um produto separado da edição só do celular. Instale o celular e o resource da loja juntos. Não rode duas cópias de phone nem duas versões do mapa da PhoneHub.

1. Antes da instalação

  • Faça backup do seu resource de celular atual, do resource de mapa, da configuração e do banco de dados.
  • Use OneSync e o game build 2699 do GTA ou mais recente.
  • Inicie primeiro o seu banco de dados, framework, inventário, resource de voz e screenshot-basic.
  • Mantenha os nomes dos resources exatamente phone e zerodev_phonehub_mlo.
  • Remova os resources antigos da PhoneHub do diretório de resources ativos e remova as linhas ensure duplicadas. Guarde os backups fora desse diretório.
  • Mantenha desativado qualquer outro mapa que substitua o mesmo prédio da Portola Drive.
  • Feche o FiveM por completo e pare o servidor antes de substituir os arquivos do mapa. Inicie o servidor e depois abra o FiveM de novo. Desconecte os clients antes de substituir ou reiniciar este MLO em stream. Um client conectado pode reter o mapa mesmo longe do prédio; reiniciá-lo a quente pode travar esse client.

Este pacote não inclui chave de licença do servidor, framework, inventário nem scripts pagos de terceiros. Depois do processamento no Keymaster, a chave do servidor precisa pertencer à conta com direito a este novo asset combinado. O direito à antiga edição só do celular não dá direito a esta nova edição.

2. Copie os resources

Copie as pastas phone e zerodev_phonehub_mlo deste download para o diretório de resources do seu servidor. Você pode colocá-las em qualquer pasta de categoria; mantenha os nomes das pastas exatamente iguais.

screenshot-basic. A câmera precisa do screenshot-basic iniciado antes do phone; o resource padrão funciona. O download também inclui uma cópia mais leve (ela só desenha a imagem do jogo enquanto uma foto está sendo tirada, com o mesmo nome, exports e eventos). Trocar para ela é opcional: guarde a sua pasta antiga como backup fora de resources, teste os scripts que tiram capturas de tela e coloque a pasta antiga de volta se algo mudar. O guia rápido do Pulse Phone, passo 6, tem os passos; os arquivos alterados estão listados em screenshot-basic/ZERODEV-CHANGES.md.

Adicione estas linhas depois das suas dependências no server.cfg:

server.cfg
ensure phone
ensure zerodev_phonehub_mlo

Não copie um motor ou uma UI de celular antigos para o pacote novo. Numa atualização, migre as configurações de que precisa para os novos arquivos de configuração. Mantenha seu banco de dados, o armazenamento KVP do resource e as pastas media e ownermedia. O novo phone/config/phonehub_business.lua inclui configurações de entrega que não existem na edição só do celular.

O balcão da loja configurado fica em -749.541, -216.952224, 36.256562, heading 210. A localização da loja já vem configurada na edição integrada limpa. A PhoneHub é a única loja de celulares desta edição: a loja da Legion Square do pacote só do celular não faz parte dela. Um config.lua mantido da 1.4.4 ou anterior ainda lista a Legion Square; essa entrada é ignorada e o console avisa uma vez. Aperte a tecla da PhoneHub (E por padrão), ou use /phonehub, no quiosque do salão, numa bancada de conserto, no balcão de atendimento ou no ponto de controle da cobertura para abrir o terminal da PhoneHub. O quiosque abre Shop e uma bancada de conserto abre Repair. A tecla pode ser trocada nas key bindings do FiveM. O comando exige a mesma proximidade da tecla; as ações de funcionário continuam exigindo permissão do servidor.

3. Framework, inventário e outros scripts

Comece com Config.Framework = 'auto' e as configurações automáticas de provedores em phone/config/config.lua. O relatório de saúde da inicialização do celular mostra os provedores que ele realmente escolheu. Confira esse relatório antes de fazer compras.

Framework Configuração
ESX Legacy Inicie o es_extended e o inventário antes do phone. Importe zerodev_phonehub_mlo/setup/phonehub_esx_jobs.sql; isso adiciona os cargos de emprego que faltam sem atribuir a nenhum jogador.
QBCore Adicione a entrada de emprego fornecida zerodev_phonehub_mlo/setup/phonehub_qb_job.lua à tabela de shared jobs do seu core. Registre os itens do celular usando o guia de itens do celular.
Qbox Registre o mesmo emprego/cargos pela configuração de empregos do Qbox que você tem instalada ou pela API de registro de empregos suportada. Use as definições de item do ox_inventory.
ox_core / vRP Configure o adapter de framework existente do celular e um provedor de empregos que retorne o emprego PhoneHub e o cargo numérico. Use acesso ao prédio controlado por ACE se o seu sistema de empregos não expuser esses dados.
Standalone / customizado As compras públicas ficam disponíveis pela bridge standalone/customizada existente do celular. O acesso de funcionários precisa de um provedor de empregos configurado ou de uma ACE de administrador confiável.

Os adapters de inventário cobrem o ox_inventory, as funções de inventário dos frameworks suportados e os provedores de terceiros listados em phone/guides/integrations.md (ou o guia de integração que vem com o seu build do celular). Cada provedor precisa das suas definições de item reais e de uma versão de API compatível. Os itens que faltam são apontados pelas verificações de saúde do celular; não suprima esses erros. Os exemplos de configuração de itens vêm em phone/config/items/.

As bridges editáveis do celular cobrem voz, contas de society, bancos, garagens, housing, dispatch e outras integrações. Mantenha exatamente um provedor selecionado por função. Fixe resources renomeados por Config.ResourceNames; use Config.Providers para selecionar um provedor explicitamente. Exports arbitrários de terceiros não são compatíveis automaticamente: implemente a bridge customizada documentada quando o seu script não estiver na lista. Os adapters de framework e os testes de contrato automatizados não significam que toda versão de terceiros foi testada ao vivo.

Stack testado ao vivo nesta versão: ESX Legacy, ox_inventory, oxmysql e pma-voice. Em outro framework, rode as verificações da primeira execução da seção 7 antes de abrir a loja.

4. Loja pública ou empresa de jogador

Rode um dos comandos no console do servidor:

phonehubmode public
phonehubmode business

O modo selecionado se mantém entre reinícios. O modo público mantém as compras normais. O modo empresa aplica estoque persistente e reservas às compras feitas no balcão da PhoneHub. O modo empresa desativa as trocas no balcão. O mesmo checkout do celular valida preços, pagamentos e entrega de itens.

Defina o nome do emprego e os cargos em phone/config/phonehub_business.lua:

Cargo Funções padrão
0 — trainee Ver o terminal da empresa, receber entregas que chegaram, controles do prédio
1 — vendas Funções de trainee mais pedidos a fornecedores
2 — técnico Pedidos/recebimento e a função de conserto configurada
3 — gerente Todos os controles de funcionários mais cancelamento/reembolso de pedidos de fornecimento pendentes

Atribua empregos com as ferramentas normais de administração do seu framework. Abra Services → My Work → PhoneHub → Staff and account no celular para a gestão da empresa. Ela usa as funções de funcionários/society suportadas do framework selecionado. A edição combinada também suporta propriedade permanente por jogador, por uma compra no jogo na aba Business ou pelo comando de atribuição de administrador descrito abaixo. Todos os preços de propriedade são valores na moeda do jogo.

Para ESX com esx_addonaccount, importe também zerodev_phonehub_mlo/setup/phonehub_esx_society.sql antes de iniciar o resource de contas, depois reinicie o servidor. Isso cria a conta de empresa society_phonehub com saldo zero, sem substituir um saldo existente. Se você renomeou o emprego, ajuste o sufixo da conta para combinar. Outros provedores de banco precisam da configuração normal de conta de empresa para o emprego configurado. Teste um pequeno depósito e um saque em Company antes de abrir a empresa.

O orçamento operacional é um livro-caixa interno separado para compra de estoque. As vendas somam a ele; os pedidos a fornecedores descontam dele. Ele não é automaticamente uma conta bancária de society e não é um saldo em dinheiro que o jogador possa sacar.

5. Pedidos a fornecedores e entrega no estoque

No balcão de atendimento, aperte E para abrir o terminal da PhoneHub e depois Stock. Escolha um produto, uma configuração e uma quantidade. O servidor calcula o orçamento do fornecedor e verifica o cargo, a proximidade e o orçamento operacional do funcionário.

A entrega padrão leva 120 segundos. Ela continua em trânsito entre reinícios. Depois que chega, um funcionário seleciona Receive delivery no terminal. O padrão destination='stock' adiciona as mercadorias ao controle de estoque da loja usado pelo checkout, independentemente do provedor de inventário do comprador. Pedidos repetidos de recebimento não conseguem adicionar a mesma remessa duas vezes. Os gerentes podem cancelar uma remessa não recebida para um único reembolso ao orçamento.

Configuração:

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

Para um depósito/stash customizado, defina destination='custom' e indique um export do servidor. Ele recebe (shipment, source) e precisa usar shipment.id como chave permanente de deduplicação. Retorne true só quando todas as linhas forem guardadas com sucesso. Configure o mapeamento de item/SKU do seu inventário nesse adapter. A entrega customizada não adiciona também os itens ao livro-caixa interno de vendas; conecte explicitamente o fluxo de venda do seu depósito para evitar estoque duplicado. Nenhum adapter universal de stash é presumido.

Uma entrega externa incerta fica retida para revisão, nunca é repetida às cegas. Depois de conferir o inventário de destino, use:

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

Para uma reserva de checkout de cliente incerta, verifique os registros de pagamento e de inventário antes de usar phonehubresolve <reservation-id> returned|delivered.

6. Controles da loja

Aperte E perto do ponto de controle de serviço ou do pedestal de controle da cobertura.

  • Space: travas da porta da frente e da porta da cobertura, luzes da loja, a tela do lounge, o toldo do terraço (automático na chuva ou na neve, ou aberto/fechado), aquecedores ou ventilação do terraço, energia do terraço e um teste de sprinklers de 15 segundos.
  • Cameras: Entrance overview, Showroom overview e Service counter. Voltar ao terminal fecha a câmera; Escape sai.
  • Stock e Business: pedidos a fornecedores, entregas, faturamento, o livro-caixa de vendas e consertos, e o acesso da equipe.

Os controles do prédio exigem o emprego PhoneHub ou a ACE de funcionário/admin configurada. O acesso público aos controles do terraço é configurado à parte em systems_config.lua. Dê phonehub.admin só ao seu principal de administrador confiável; nunca a todos. Defina phoneResource='phone' na configuração de sistemas do MLO.

As portas automáticas usam sensores de proximidade quando destravadas. As folhas em movimento precisam continuar sólidas, inclusive abertas. Móveis, vidros e iluminação são assets do mapa; nem todo objeto decorativo tem uma interação de gameplay.

7. Aceite da primeira execução

  1. Inicie o servidor e rode phone:health. Confirme os provedores de framework, inventário, banco de dados e voz esperados, e que não falta nenhum item obrigatório.
  2. Entre normalmente e visite a loja. Ande da calçada pelos dois pares de portas de entrada, suba/desça as escadas e passe pela porta da cobertura com o noclip desligado.
  3. Abra e feche o toldo. Os oito painéis precisam continuar alinhados nos trilhos em todas as posições. Teste o fechamento automático com chuva/neve separadamente.
  4. Abra cada vista do CFTV, alterne entre elas e saia. A cena precisa estar visível e a visão/foco normal do jogador precisa voltar.
  5. Trave os dois grupos de portas com uma conta de funcionário. Confira a colisão dos dois lados. Destrave e confirme de novo a animação de abertura por proximidade.
  6. Confira a iluminação de dia/noite, a tela ligada/desligada, vidros, placas, assentos e todas as bordas. Ande e dirija em direção ao prédio e para longe dele para inspecionar as transições de stream.
  7. Compre um celular/acessório no modo público. No modo empresa, confira a baixa no estoque, os pedidos dos funcionários, a chegada/recebimento, saldo insuficiente e acesso não autorizado.
  8. Reinicie o servidor e confirme que o modo da loja, o estoque e as entregas pendentes se mantêm. Repita uma tentativa duplicada de recebimento/cancelamento; nenhuma mercadoria ou reembolso duplicado deve aparecer. Confirme que vários jogadores veem o mesmo estado da loja.

O phonehubcheck no console F8 do client informa o alinhamento real do toldo; cada painel deve informar alinhamento perto de 1. É um diagnóstico, não prova de que a qualidade visual ou as colisões estão corretas. Verificações automatizadas não conseguem certificar todos os ângulos de câmera nem todas as combinações de servidor.

8. Solução de problemas e atualizações

Porta 30120 ocupada: outra instância do servidor já está rodando. Pare-a pelo seu txAdmin (ou pelo painel da hospedagem) em vez de iniciar um segundo FXServer.

Controles faltando: confirme que os dois resources iniciaram, que os nomes não mudaram e que o jogador está no ponto de controle. Confira o F8 do client e os erros do servidor.

Sem acesso de funcionário: confira o emprego configurado, o cargo numérico, a proximidade do balcão de atendimento e o provedor de empregos selecionado. O modo de loja pública não dá direitos de funcionário.

O mapa antigo/a interface antiga continua: remova resources/entradas ensure duplicados. Feche o FiveM por completo, pare o servidor, substitua os arquivos, depois inicie o servidor e abra o FiveM de novo. Só reconectar pode manter assets antigos em stream. Não recarregue o MLO a quente com um client conectado, mesmo longe do prédio.

Voltar atrás: pare estes resources, restaure as pastas de resource e a configuração do backup e reinicie com o seu txAdmin. Preserve o banco de dados/armazenamento KVP, a menos que esteja restaurando de propósito um backup de dados consistente.

Guarde os hashes da versão fornecidos (SHA256.json) para pedidos de suporte.

PhoneHub OS e propriedade

Config.PhoneHubOS em phone/config/phonehub_business.lua controla esta edição. ownership='both' permite a compra no jogo e a atribuição por administrador. Defina 'admin' ou 'purchase' para permitir só um dos caminhos. purchasePrice é um valor na moeda do jogo. Os administradores usam phonehubowner <online player id> pelo console do servidor ou com a ACE phonehub.admin. A atribuição fica bloqueada enquanto um pagamento de compra está pendente. O dono é registrado pelo identificador de personagem do framework, nunca por um número de source temporário do jogador. A propriedade ativa o sistema permanente de estoque e de orçamento operacional que já existe.

Os donos adicionam funcionários ou gerentes por perto na aba Business. Essas funções independentes funcionam pela bridge de identidade do framework; elas não mudam o emprego principal do jogador. As funções de emprego PhoneHub existentes e o acesso administrativo configurado continuam funcionando. Por padrão, os gerentes podem pedir suprimentos e os funcionários podem receber as remessas que chegaram. O estoque continua reservado até uma compra ou uma entrega de fornecedor ser confirmada.

service='hybrid' permite checkout e consertos tanto com atendimento quanto em autoatendimento. 'self' permite o serviço direto; 'staff' exige uma oferta de um funcionário aprovada pelo cliente nesta loja. O produto avulso mantém o sistema de compras que já tem.

No quiosque do salão, chegue perto e aperte E. A aba Shop carrega o modelo Pulse protegido de verdade, com rotação por arrasto, inspeção da frente/traseira, zoom e o acabamento selecionado. O preço vem do servidor do celular. O pagamento exige confirmação e usa o inventário, o dinheiro e a entrega do celular na caixa configurados. Um timeout não prova que a cobrança falhou; confira o inventário e o registro de pagamentos antes de tentar de novo.

Os clientes pedem ajuda de vendas ou de conserto na aba Help e recebem um número na fila. Os funcionários escolhem um cliente por perto na aba Counter e preparam uma oferta; só aquele cliente pode aprovar e pagar. Os dois precisam continuar na mesma loja, no mesmo routing bucket. A aprovação de conserto fica vinculada ao aparelho único selecionado e ao preço orçado. Trocar de aparelho a invalida.

Nos consertos com atendimento, o técnico abre o terminal numa bancada de conserto livre, prepara a oferta de conserto do cliente e fica ali até o aceite. A bancada é reservada antes do pagamento. Um conserto pago concluído roda a sequência de montagem com aquele jogador como técnico; o autoatendimento usa o técnico da loja. O motor do celular é responsável pelo conserto do aparelho e recupera o trabalho pago depois de uma sessão do servidor interrompida. Os props do client nunca criam nem substituem um celular do inventário.

A aba Space, nos pontos de controle da cobertura e do balcão, controla o toldo, a climatização, as travas, a iluminação e a tela. A geometria, a proteção contra o tempo, o piso e os assentos do MLO finalizado são mantidos.

Traduzido do inglês. Se algo aqui divergir da página em inglês, vale a página em inglês. English