Voltar ao blog
Scripts8 min de leitura

Agency-Phone: o smartphone feito especialmente para FiveM

Descubra como o Agency-Phone oferece a experiência mais imersiva de smartphone no FiveM, da arquitetura dos aplicativos ao desempenho sob carga.

Agency Scripts

Fundador e programador principal na Agency Scripts

Demonstração ao vivo

Experimente o Agency Phone no navegador, sem precisar baixar nada.

Abrir demonstração

Por que criar mais um telefone para FiveM?

Criamos o Agency-Phone porque todos os telefones que testamos em nossos próprios servidores ou tinham ótima aparência e desempenho ruim, ou bom desempenho e aparência desatualizada. O mercado estava cheio de soluções de compromisso. Queríamos algo que realmente parecesse um smartphone moderno assim que você o abrisse e que ainda atingisse 0.00ms de uso de recursos em repouso quando estivesse no bolso de alguém.

Uma interface que não parece ser do FiveM

A maioria dos telefones para FiveM revela sua origem nos primeiros dois segundos após ser aberta. As fontes parecem um pouco estranhas, as animações são travadas e o layout da tela inicial parece provisório. O Agency-Phone foi criado por pessoas que usam smartphones de verdade todos os dias. Cada elemento, do relógio da tela de bloqueio à física de mola da gaveta de aplicativos, foi ajustado até deixar de parecer um script e começar a parecer um telefone.

A arquitetura dos aplicativos

Nos bastidores, o Agency-Phone usa um sistema de carregamento sob demanda para os aplicativos. A interface dos aplicativos só é inicializada quando eles são abertos, o que mantém o uso de memória estável mesmo com o lançamento de novos aplicativos. O barramento de eventos entre o Lua do cliente e a camada NUI usa debounce, para que ações rápidas dos usuários não provoquem picos de resmon no jogo. Esse é o tipo de trabalho de engenharia que ninguém vê, mas do qual todos se beneficiam quando o servidor está com 128 jogadores.

Independente de framework por padrão

Agency-Phone vem com adaptadores para QBCore e ESX, mas o núcleo é independente de framework. Se você usa um servidor standalone com sua própria camada de dados dos jogadores, pode integrá-lo em uma tarde implementando quatro funções de consulta. Não lançamos scripts que prendem você a um único framework, porque frameworks mudam. Já vimos pelo menos três ondas de “agora este é o padrão” surgirem e desaparecerem durante nosso tempo na comunidade.

O papel de um telefone no RP

Um telefone no FiveM é, em última análise, uma ferramenta social. Os jogadores o usam para combinar encontros, negociar drogas, enviar mensagens ao personagem do chefe e ouvir música no aplicativo de rádio. Tudo o que adicionamos ou removemos do Agency-Phone é avaliado com base na pergunta: isso facilita ou torna mais divertida a interação social? Por isso lançamos um aplicativo de galeria antes dos lembretes de calendário, e o aplicativo de mensagens padrão tem indicadores de digitação detalhados antes de permitir envios agendados. RP em primeiro lugar, listas de recursos em segundo.

Instalação e configuração

Agency-Phone requer oxmysql para persistir contatos, mensagens e registros de chamadas. Importe phone.sql para seu banco de dados, baixe o recurso no Tebex, coloque-o no diretório resources e adicione ensure agency-phone a server.cfg . A detecção de framework é automática para QBCore e ESX. Para configurações standalone, implemente as quatro funções do adaptador em config.lua. Isso normalmente leva uma ou duas horas, dependendo da sua camada de dados personalizada dos jogadores.

Os jogadores abrem o telefone pressionando a tecla configurável (padrão: M) ou usando um item do inventário. Os dois métodos podem ser usados ao mesmo tempo. Alguns servidores usam o atalho de teclado, enquanto outros preferem a abordagem mais imersiva com um item, que pode ser deixado cair ou roubado.

Opções de configuração

O config.lua abrange configurações técnicas e de jogabilidade:

  • Atalho do telefone, tecla para abrir/fechar o telefone. Padrão: M.
  • Telefone como item, define se é necessário ter um item de telefone no inventário. Padrão: desativado (somente tecla).
  • Formato do número, como os números de telefone são exibidos e gerados automaticamente para novos personagens.
  • Alcance das chamadas, distância física máxima para chamadas dentro do alcance, em comparação com chamadas fora do alcance (correio de voz). Padrão: ilimitado para chamadas em personagem.
  • Integração com Twitter/LifeInvader, conecte o Agency-LifeInvader, se estiver instalado, para usar o aplicativo social.
  • Integração com o aplicativo de rádio, configure as transmissões de rádio disponíveis para o aplicativo de música.
  • Aplicativo bancário, conecte o sistema bancário do QBCore, as contas do ESX ou um gerenciador bancário personalizado.
  • Aplicativo de GPS, categorias de pontos de referência personalizadas para locais específicos do servidor (hospitais, delegacias, empresas).
  • Encaminhamento de notificações, quais scripts externos podem enviar notificações para o telefone e como elas são exibidas.

Compatibilidade com frameworks

Agency-Phone vem com adaptadores para QBCore e ESX. O adaptador cobre a exibição de dinheiro, o item de inventário (se o telefone como item estiver ativado), os dados de emprego para controlar a visibilidade de aplicativos específicos de cada emprego e a exibição do nome do personagem. Para configurações standalone, aplica-se o mesmo padrão de quatro funções. Depois que o adaptador é escrito para um script da Agency, os scripts seguintes usam as mesmas funções.

Por que isso importa para o roleplay

Um telefone é o objeto mais pessoal que um personagem carrega. Os jogadores interagem com ele em todas as sessões, fazendo chamadas, enviando mensagens de texto, verificando o saldo bancário e olhando o mapa. Quando essa interação parece a de um telefone real, as sessões de RP que envolvem o uso do telefone também parecem mais reais. Uma negociação de drogas coordenada pelo aplicativo de SMS do Agency-Phone, com confirmações de leitura e indicadores de digitação, cria uma cena significativamente diferente (e melhor) do que a mesma negociação coordenada por um comando de chat.

A coordenação social é o papel do telefone mais importante para o RP. A maioria dos eventos importantes de RP começa com uma comunicação: alguém entra em contato, combina um encontro, fornece coordenadas ou confirma o horário. Toda essa comunicação é mais imersiva quando acontece por canais em personagem, em vez de pelo Discord ou pelo chat OOC. Os aplicativos de chamadas e SMS do Agency-Phone atendem nativamente a 95% dessa necessidade de coordenação social.

O uso de recurso em idle de 0.00ms não é apenas uma observação técnica, é o que torna viável manter o telefone sempre aberto como recurso. Scripts que consomem 0.02ms em idle em um servidor com 128 jogadores contribuem com 2.56ms de carga agregada em idle em toda a população. A contribuição de Agency-Phone para o custo em idle é zero. Isso importa para o desempenho do servidor da mesma forma que qualquer recurso compartilhado: proporcionalmente à quantidade de jogadores.

O app de galeria da v2 e a capacidade de tirar capturas de tela dentro do jogo criaram um uso de RP inesperado: fotografias de evidências em personagem. Personagens policiais tiram capturas de cenas de crime com a câmera do telefone e compartilham as imagens no chat interno do departamento. Jornalistas fotografam eventos e publicam as imagens no LifeInvader. A câmera transforma o telefone de uma ferramenta de comunicação em uma ferramenta de documentação com aplicações reais no RP.

Perguntas frequentes

Os números de telefone podem ser mantidos entre wipes do servidor?

Os números de telefone são armazenados no oxmysql vinculados ao identificador do personagem. Desde que o identificador do personagem seja preservado durante um wipe, o número será mantido. A maioria dos wipes de servidor limpa a progressão dos personagens, mas preserva os identificadores, então os números normalmente continuam salvos. Para wipes completos que também redefinem os identificadores, há um export de preservação de números que salva e restaura o número de um personagem separadamente do wipe principal.

A polícia pode rastrear chamadas e mensagens em tempo real?

Sim. Ative o sistema de rastreamento em config.lua. Policiais com a permissão necessária podem abrir o painel de rastreamento e pesquisar por número. A origem de chamadas ativas aparece no mapa. Os metadados das mensagens (horário, par de números) são armazenados na tabela de log e podem ser acessados pelo Agency-Admin. O rastreamento do conteúdo completo das mensagens vem desativado por padrão, como medida de privacidade desde a concepção. Ative-o explicitamente se as regras de RP do seu servidor permitirem.

Como o telefone lida com chamadas quando um jogador está morto ou sob custódia?

Configure o estado de morte e o estado de algemas em config.lua. Você pode definir que jogadores mortos sejam enviados diretamente para o correio de voz, fiquem com o telefone desativado ou possam fazer apenas chamadas de emergência. Jogadores algemados podem ser totalmente impedidos de usar o telefone ou ter o uso restrito à visualização do GPS, para que a polícia veja que não estão pedindo reforços. Esses estados são detectados por meio de funções exportadas pelos seus scripts de tela de morte e de algemas.

Quais estações de rádio estão disponíveis no app de música?

A lista padrão de estações inclui oito URLs de streaming de rádios comunitárias, cobrindo gêneros populares. Adicione as suas próprias estações incluindo URLs de streaming em Config.RadioStationsOs servidores costumam adicionar uma estação de rádio própria, na qual a equipe transmite notícias em personagem. Não há DRM nem integração com serviços de streaming, qualquer URL de stream de áudio acessível publicamente funciona.

Requisitos

  • Servidor FiveM (QBCore, ESX ou standalone)
  • oxmysql
  • Conta cfx.re com uma licença válida do Agency-Phone
  • Opcional: Agency-LifeInvader (para integração com o app social)
  • Opcional: Agency-Pad (para sincronização de dados entre dispositivos)

O script ideal

Pronto para o seu servidor, com atualizações incluídas.

Pronto para começar?

Obtém os scripts na nossa loja, ou junta-te ao Discord para suporte, novidades e uma antevisão do que vem aí.