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.
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õesCrie 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)
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.
| Campo | Valor |
|---|---|
| 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ável | counting_next · Incrementar · 1 |
| 2. Definir variável | counting_last_author · Definir · {user.id} |
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.
| Campo | Valor |
|---|---|
| 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ável | counting_next · Definir · 1 |
| 2. Definir variável | counting_last_author · Definir · (vazio) |
| 3. Enviar mensagem | Responder · "💥 Quebrou! De volta ao 1." |
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.
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.