Skip to main content
Com os campos personalizados você pode exibir praticamente qualquer informação que desejar dentro do Tablet Policial, por exemplo, carteira de motorista, licença de caça ou outras informações que um policial possa querer saber sobre o jogador. Nessa documentação, iremos utilizar como exemplo Carteira de Motorista.

Exemplo de Campo Personalizado

config.lua

Parâmetros de Configuração do Campo

O identificador "driver" é apenas um exemplo e pode ser substituído por qualquer identificador de sua escolha para representar diferentes campos personalizados.

Funções Necessárias

Para o correto funcionamento deste campo de licença, é necessário implementar as seguintes funções nos arquivos indicados. O nome das funções é o ID com a primeira letra maiúscula. No exemplo, nosso ID é driver, então o nome das funções são getDriverLicense,updateDriverLicense e onUpdateDriverLicense.

functions.lua

Functions.getDriverLicense(userID)

Esta função deve verificar se um usuário possui carteira de motorista válida.
functions.lua

Functions.updateDriverLicense(userID)

Esta função deve alternar o status da carteira de motorista de um usuário (criar ou invalidar).
functions.lua

webhooks.lua

Webhooks.onUpdateDriverLicense(userID, officerID)

Esta função de webhook é chamada quando um policial altera o status da carteira de motorista de um cidadão. Pode ser utilizada para logging, notificações ou integrações externas.
webhooks.lua

Fluxo de Funcionamento

  1. Quando um policial acessa os detalhes de um jogador no tablet, o sistema chama a função get (por exemplo, Functions.getDriverLicense(userID)) para obter o status atual da licença.
  2. O valor retornado é formatado pela função parseValue para exibição, por lá, você pode retornar o valor que você quiser (no exemplo, “Sim” ou “Não”).
  3. A função buttonCondition determina se o botão de ação deve ser exibido (no exemplo, só é exibido se o cidadão já possui a licença).
  4. Quando o policial clica no botão “Alternar status”:
    • É exibido uma confirmação para o policial;
    • Se confirmado, a função de update (por exemplo, Functions.updateDriverLicense(userID)) é chamada;
    • Em seguida, o webhook correspondente (por exemplo, Webhooks.onUpdateDriverLicense(userID, officerID)) é acionado.

Criando Diferentes Tipos de Campos

O mesmo padrão de configuração pode ser usado para implementar qualquer campo personalizado, bastando alterar o identificador do campo e as funções correspondentes. Por exemplo:
config.lua
Você precisaria então implementar as funções correspondentes:
  • Functions.getHuntingLicense(userID)
  • Functions.updateHuntingLicense(userID)
  • Webhooks.onUpdateHuntingLicense(userID, officerID)

Notas de Implementação

  • Esta configuração utiliza a tag de substituição {name} nas mensagens, que deve ser substituída pelo nome do cidadão antes de exibir.
  • A lógica implementada em buttonCondition pode ser personalizada conforme a necessidade (no exemplo, só permite invalidar licenças existentes).