Pular para o conteúdo

10% de desconto, aplicado no checkout

RPScriptsRPScripts

Como instalar e configurar o LB Phone: ESX, QBCore e QBOX

Por Luke, RPScripts

Fluxo ilustrado de configuração do LB Phone para ESX, QBCore, QBOX e dependências

O que é o LB Phone e do que ele precisa

O LB Phone é um recurso de smartphone completo para FiveM. Logo de cara ele cobre o que os jogadores esperam de um celular: chamadas, mensagens, e-mail, câmera, relógio, notas, mapas, clima, gravações de voz e uma loja de apps, além de apps sociais (InstaPic, Birdy, Trendy e Spark) e extras como DarkChat, um marketplace, Yellow Pages, música e cripto. O download traz dois recursos: o próprio lb-phone e um recurso separado para o prop do celular, lb-phoneprop.

Antes de instalar qualquer celular, anote o que o seu servidor realmente usa: framework, inventário, bibliotecas e a sua edição do GTA V com a versão do artifact do FXServer. Um celular mexe com chamadas, dados de personagem, itens de inventário e serviços do servidor, então verifique essas integrações, não só a lista de apps.

Frameworks suportados

Segundo a página do produto, o LB Phone funciona com ESX, QBCore, QBOX, ox_core, vRP 2.0 ou standalone e detecta o framework automaticamente por padrão. A documentação do criador também confirma essa detecção automática. Para qualquer outro framework existe um caminho documentado com framework personalizado (veja abaixo).

Requisitos

Os requisitos obrigatórios são poucos: oxmysql mais um dos frameworks suportados, ou standalone. O ox_core é uma dessas opções de framework, não uma dependência extra; a lista de dependências do criador não o inclui. O guia de instalação oficial acrescenta estes detalhes:

  • MariaDB 10.11 ou mais recente. Você confere sua versão com SELECT VERSION() no HeidiSQL. O guia diz expressamente para não usar XAMPP.
  • oxmysql
  • loaf_bcrypt (recomendado)
  • artifacts do servidor atualizados
  • OneSync Infinity (opcional), necessário para alguns recursos como o AirShare

Antes de começar: faça backup e confira o banco de dados

O guia do criador pede para sempre fazer um backup antes de qualquer alteração no banco de dados. Aqui isso pesa ainda mais: antes de rodar o arquivo SQL do LB Phone, o guia manda apagar todas as tabelas que começam com phone_.

Num servidor novo, isso não faz mal. Num servidor que já rodava outro celular, pode apagar os dados dele. O gcPhone original e o base.sql do Re-Ignited, por exemplo, criam phone_app_chat, phone_calls, phone_messages e phone_users_contacts, então as quatro batem com o prefixo phone_. O Quasar Smartphone V3 usa o prefixo qs_phone_ nas tabelas. Antes de apagar qualquer coisa, exporte o banco, liste toda tabela que começa com phone_ e veja qual recurso a criou. Seguir instruções de reset num banco existente não preserva o histórico do celular. Se quiser manter os dados antigos, planeje primeiro uma migração num servidor de teste em vez de uma instalação limpa.

Instalação passo a passo

Os passos abaixo combinam a página do produto e o guia de instalação oficial. Onde o guia é mais detalhado, seguimos o guia.

1. Copie os recursos

Descompacte o download e copie lb-phone e lb-phoneprop da pasta [lb] para a pasta resources do seu servidor.

2. Apague as tabelas phone_ antigas e rode o arquivo SQL

Com o backup feito, apague todas as tabelas que começam com phone_ e depois rode no banco o arquivo incluído lb-phone/phone.sql. O criador recomenda o HeidiSQL e diz para não usar o phpMyAdmin. A página de problemas comuns dele acrescenta que erros de importação do SQL costumam vir do phpMyAdmin ou de uma versão antiga do MariaDB, e que hosts com painel de jogo muitas vezes vêm com os dois.

3. Instale as dependências

Instale o oxmysql e mantenha os artifacts do servidor atualizados. O oxmysql não vem no download e precisa iniciar primeiro.

O loaf_bcrypt é opcional, mas recomendado. O criador explica que o bcrypt nativo do FiveM roda na thread principal do servidor e pode causar uma travada de cerca de 80 ms quando o LB Phone gera ou confere o hash de uma senha, enquanto o loaf_bcrypt faz esse trabalho numa thread separada. O LB Phone detecta e usa o loaf_bcrypt automaticamente assim que ele é iniciado. Adicione estas linhas antes de start lb-phone no seu server.cfg:

add_unsafe_worker_permission loaf_bcrypt
start loaf_bcrypt

4. Defina a ordem de inicialização no server.cfg

Todo recurso que o LB Phone usa, incluindo seu framework, o oxmysql e o inventário, precisa iniciar antes do LB Phone. Apps personalizados iniciam depois. A página do produto dá esta ordem, colocada depois do oxmysql e do seu framework:

ensure oxmysql
ensure lb-phoneprop
ensure lb-phone

5. Configure uploads e chaves de API

Ajuste o config/config.lua às suas necessidades. Uploads de foto, vídeo e áudio precisam de um método de upload e de chaves de API: escolha o método no config.lua e coloque as chaves em lb-phone/server/apiKeys.lua. O método padrão é o Fivemanage; se preferir seu próprio armazenamento S3 ou R2, o criador indica o lb-presigned. Conte o serviço de upload como parte dos seus custos operacionais e guarde as credenciais na configuração do servidor, não no código do cliente.

Segundo o criador, depois disso o celular deve funcionar direto, com mais opções na pasta config.

Ainda não tem o LB Phone? Garanta o LB Phone v2 na RPScripts: download imediato, arquivos mais novos nos downloads da sua conta e suporte na instalação.

Notas por framework: ESX, QBCore e QBOX

O LB Phone detecta ESX, QBCore e QBOX automaticamente por padrão, então as fontes que conferimos não trazem uma instalação diferente para cada framework. As diferenças aparecem no seu inventário e nos apps ligados ao framework.

Celulares únicos

O LB Phone pode dar a cada item de celular um número próprio. Assim os jogadores podem roubar e emprestar celulares, mas isso exige um inventário com suporte a metadados. O criador recomenda o ox_inventory (para ESX, QBOX e outros) ou o qb-inventory (para QBCore) e cita lj-inventory, core_inventory e qs-inventory como suportados de fábrica. Outros inventários com metadados podem ser ligados pelo guia de inventário personalizado do criador.

Nos dois inventários recomendados, defina Config.Item.Unique e Config.Item.Require como true na config do LB Phone e, se quiser, Config.Item.Inventory com o nome do inventário. No ox_inventory você adiciona ou substitui o item phone em ox_inventory/data/items.lua e remove o bloco de integração do NPWD para Item('phone' em ox_inventory/items/client.lua. No qb-inventory (o guia mira a versão 2.0.0) você substitui a entrada phone em qb-core/shared/items.lua. Depois reinicie o servidor.

Decida o que deve acontecer quando um celular é dado, guardado ou apreendido, e teste sua integração em vez de supor que qualquer inventário com metadados funciona sem ajustes.

Housing e frameworks personalizados

O app Home suporta qb-houses, loaf_housing e qs-housing por padrão; você escolhe o seu com Config.HouseScript. Outros scripts de housing precisam de uma integração própria, que segundo o criador exige experiência com programação.

Com um framework personalizado, você edita os arquivos do framework standalone no cliente e no servidor. Para que os apps Wallet, Home, Garage e Services apareçam, defina Config.CustomFramework como true ou crie seus próprios arquivos de framework. Ou seja, uma instalação standalone também precisa de trabalho de integração para esses apps.

Videochamadas e servidores TURN

O LB Phone usa WebRTC para videochamadas, lives do InstaPic e gravação da voz de jogadores próximos. Se as videochamadas ou lives não mostram ninguém, o criador diz que geralmente um firewall está bloqueando a conexão e que um servidor TURN costuma resolver. O celular tem suporte nativo ao servidor Realtime TURN da Cloudflare via Config.DynamicWebRTC, e você também pode usar um serviço como o Metered via Config.RTCConfig. Confira também a sua edição do GTA V: as notas de migração da Cfx.re listam o Mumble como obsoleto no Enhanced, então uma dependência de voz sozinha não prova que as chamadas vão funcionar lá.

Problemas comuns depois da instalação

  • App Wallet, Garage ou Services não aparece: o script não detectou seu framework, ou ele não está configurado corretamente.
  • App Home não aparece: seu script de housing não está configurado; por padrão o app Home funciona com poucos scripts.
  • O celular não abre: o criador sugere uma cópia nova do lb-phone, depois definir Config.DisableOpenNUI como false para achar um recurso em conflito e, por fim, ativar o Config.Debug.
  • Erros ao importar o SQL: use o HeidiSQL em vez do phpMyAdmin e um MariaDB atualizado.
  • "Unknown column x in field list": falta uma coluna do banco adicionada numa atualização; o criador publica as queries de correção no canal #updates do Discord dele.
  • AirShare não funciona: ative o OneSync Infinity e atualize seus artifacts.

Para erros em geral, comece pela primeira linha vermelha sobre o recurso no console do servidor. Um objeto de framework nil geralmente significa que o framework inicia depois ou que é o framework errado.

Atualizando o LB Phone depois

De onde vêm os arquivos novos depende de onde você comprou o celular. Na RPScripts, um arquivo mais novo aparece nos downloads da sua conta assim que fica disponível. O guia do criador encaminha quem comprou o pacote dele para a Cfx.re.

Os passos de atualização do guia do criador:

  1. Faça backup da pasta lb-phone, por exemplo em ZIP.
  2. Faça backup do banco de dados se as patch notes disserem que o banco muda. O guia usa o "Export database as SQL" do HeidiSQL com as caixas "Create" marcadas, as caixas "Drop" desmarcadas e "Insert ignore (do not update existing)" selecionado para os dados.
  3. Apague o recurso lb-phone antigo.
  4. Instale a versão mais recente.
  5. Reaplique suas alterações de config. A menos que as patch notes digam o contrário, você pode copiar a pasta config inteira.

Se uma atualização adicionar uma coluna e você tiver pulado as queries das patch notes, vai ver o erro "Unknown column" citado acima.

FAQ

Quais frameworks o LB Phone suporta?

ESX, QBCore, QBOX, ox_core, vRP 2.0 ou standalone, com detecção automática por padrão.

O ox_core é obrigatório?

Não. O ox_core é um dos frameworks suportados. A dependência obrigatória é o oxmysql.

Qual versão do MariaDB eu preciso?

MariaDB 10.11 ou mais recente, segundo o guia de instalação do criador.

Preciso mesmo apagar as tabelas phone_?

O guia do criador manda apagar todas as tabelas que começam com phone_ antes de rodar o arquivo SQL. Faça backup antes e confira a qual recurso cada tabela pertence, porque celulares mais antigos como o gcPhone usam o mesmo prefixo.

O OneSync é obrigatório?

O OneSync Infinity é opcional, mas alguns recursos como o AirShare precisam dele.

Cada celular pode ter um número próprio?

Sim, com o recurso de celulares únicos e um inventário com suporte a metadados.

Preciso do loaf_bcrypt?

É recomendado, não obrigatório. Ele tira o hash de senhas da thread principal do servidor.

Para esta escolha de celular, compare os Scripts de telefone: o LB Phone v2 faz parte da seleção atual para vários frameworks, o GKSPhone (ESX) é especificamente o pacote antigo para ESX 1.1/1.2 (1.2 FIX 5), e o CodeM Phone (mPhone 2.0) exige verificar as dependências do pacote. A documentação atual do GKSPHONE V2 descreve outro produto, diferente do download GKSPhone linkado aqui. Nenhum deles comprova uma migração sem perda dos dados do seu celular. A RPScripts vende esses pacotes.