Campos Personalizados
Aprenda como configurar campos personalizados dentro do Tablet Policial
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
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.
Parâmetro | Tipo | Descrição |
---|---|---|
id | string | Um identificador único para a licença. No exemplo acima, utilizamos driver . |
title | string | Define o título que será exibido no campo dentro do tablet. No exemplo acima, utilizamos Carteira de Motorista . |
actionName | string | Define o texto que será exibido no botão de ação. No exemplo acima, utilizamos Alterar status . |
confirmationMessage | string ou array[2] de strings | Mensagens de confirmação antes de realizar a ação. Se for um array, a primeira mensagem é para criação e a segunda para invalidação. |
successMessage | string ou array[2] de strings | Mensagens exibidas após a conclusão bem-sucedida da ação. Se for um array, a primeira mensagem é para criação e a segunda para invalidação. |
parseValue | function | Função que formata o valor para exibição no tablet. No exemplo acima, retornamos Sim para true e Não para false . |
buttonCondition | function | Função que determina se o botão de ação deve ser exibido ou não. No exemplo acima, mostramos o botão apenas se value for true . |
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.updateDriverLicense(userID)
Esta função deve alternar o status da carteira de motorista de um usuário (criar ou invalidar).
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.
Fluxo de Funcionamento
- 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. - 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”). - 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). - 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:
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).