AutoMod

Premium
Voltar aos tutoriais

Building a Counting Game

Um canal de contagem que segue as regras: os membros contam de um em um, e um número errado ou a mesma pessoa postando duas vezes seguidas zera para 1.

1

Escolha um canal e conheça a peça principal

Escolha (ou crie) um canal para contar, como #contagem. Este tutorial usa o operando {"var": "<name>"} da condição Expressão personalizada, que compara uma mensagem com uma variável armazenada ao vivo em vez de um valor fixo. Se ainda não leu, dê uma olhada na referência abaixo antes.

Ver a referência da linguagem de expressões
2

Crie duas variáveis armazenadas

Abra a aba Variáveis do plugin Automações e crie duas variáveis: counting_next, um Número com padrão 1 (o número que tem que vir a seguir), e counting_last_author, um Texto com padrão vazio (o ID de quem contou por último, para ninguém contar duas vezes seguidas).

Variáveis para criar

counting_next          Number   default: 1
counting_last_author   Text     default: (empty)
3

Crie a automação "número aceito"

Crie uma automação chamada "Contagem: Aceitar". Na aba Gatilho, escolha Mensagem enviada e limite ao seu canal de contagem. Adicione três condições Expressão personalizada no modo E e depois duas ações.

CampoValor
1. Expressão personalizada{"gte": ["message.content", {"var": "counting_next"}]}
2. Expressão personalizada{"lte": ["message.content", {"var": "counting_next"}]}
3. Expressão personalizada{"ne": ["user.id", {"var": "counting_last_author"}]}
1. Definir variávelcounting_next · Incrementar · 1
2. Definir variávelcounting_last_author · Definir · {user.id}
4

Crie a automação "contagem quebrada"

Crie uma segunda automação, "Contagem: Zerar", com o mesmo gatilho (Mensagem enviada, mesmo canal). Desta vez, mude o modo de condição para OU na aba Condições. Se qualquer uma destas for verdadeira, a contagem foi quebrada.

CampoValor
1. Expressão personalizada{"not": [{"regex": ["message.content", "^\d+$"]}]}
2. Expressão personalizada{"lt": ["message.content", {"var": "counting_next"}]}
3. Expressão personalizada{"gt": ["message.content", {"var": "counting_next"}]}
4. Expressão personalizada{"eq": ["user.id", {"var": "counting_last_author"}]}
1. Definir variávelcounting_next · Definir · 1
2. Definir variávelcounting_last_author · Definir · (vazio)
3. Enviar mensagemResponder · "💥 Quebrou! De volta ao 1."
5

Teste as duas automações

Use Testes e logs em cada automação com uma mensagem de exemplo. Teste o próximo número certo, um errado e o mesmo autor duas vezes seguidas para confirmar que cada condição se comporta como esperado antes de testar ao vivo.

6

Ideias para ir além

Adicione uma ação Modificar reação (✅) em "Aceitar" para que um número certo ganhe um check visível. Ou use {counting_next} em uma mensagem em qualquer outro lugar da automação para mostrar a contagem atual aos jogadores, com os mesmos tokens {variable_name} que toda outra automação já aceita.

Você criou um jogo de contagem que segue as regras

O truque principal, guardar um valor ao vivo em uma variável e comparar uma mensagem com ele usando {"var": "<name>"}, funciona para qualquer problema em que os dois lados mudam, não só para contagem. Veja a referência da linguagem de expressões para todos os operadores.