Building a Counting Game
Un canal de conteo que sigue las reglas: los miembros cuentan de uno en uno, y un número equivocado o la misma persona publicando dos veces seguidas lo reinicia a 1.
Elige un canal y conoce la pieza clave
Elige (o crea) un canal para contar, como #conteo. Este tutorial se basa en el operando {"var": "<name>"} de la condición Expresión personalizada, que compara un mensaje con una variable guardada en vivo en lugar de con un valor fijo. Si aún no lo has hecho, echa antes un vistazo a la referencia de abajo.
Ver la referencia del lenguaje de expresionesCrea dos variables guardadas
Abre la pestaña Variables del plugin Automatizaciones y crea dos variables: counting_next, un Número con valor predeterminado 1 (el número que debe venir después), y counting_last_author, un Texto con valor predeterminado vacío (el ID de usuario de quien contó por última vez, para que nadie cuente dos veces seguidas).
Variables que hay que crear
counting_next Number default: 1 counting_last_author Text default: (empty)
Crea la automatización "número aceptado"
Crea una automatización llamada "Conteo: Aceptar". En la pestaña Disparador, elige Mensaje enviado y limítalo a tu canal de conteo. Añade tres condiciones Expresión personalizada en modo Y y después dos acciones.
| Campo | Valor |
|---|---|
| 1. Expresión personalizada | {"gte": ["message.content", {"var": "counting_next"}]} |
| 2. Expresión personalizada | {"lte": ["message.content", {"var": "counting_next"}]} |
| 3. Expresión personalizada | {"ne": ["user.id", {"var": "counting_last_author"}]} |
| 1. Definir variable | counting_next · Incrementar · 1 |
| 2. Definir variable | counting_last_author · Definir · {user.id} |
Crea la automatización "conteo roto"
Crea una segunda automatización, "Conteo: Reiniciar", con el mismo disparador (Mensaje enviado, mismo canal). Esta vez, cambia el modo de condición a O en la pestaña Condiciones. Si se cumple cualquiera de estas, el conteo se rompió.
| Campo | Valor |
|---|---|
| 1. Expresión personalizada | {"not": [{"regex": ["message.content", "^\d+$"]}]} |
| 2. Expresión personalizada | {"lt": ["message.content", {"var": "counting_next"}]} |
| 3. Expresión personalizada | {"gt": ["message.content", {"var": "counting_next"}]} |
| 4. Expresión personalizada | {"eq": ["user.id", {"var": "counting_last_author"}]} |
| 1. Definir variable | counting_next · Definir · 1 |
| 2. Definir variable | counting_last_author · Definir · (vacío) |
| 3. Enviar mensaje | Responder · "💥 ¡Se rompió! Volvemos a 1." |
Prueba ambas automatizaciones
Usa Pruebas y registros en cada automatización con un mensaje de ejemplo. Prueba el siguiente número correcto, uno incorrecto y el mismo autor dos veces seguidas para confirmar que cada condición se comporta como esperas antes de probarlo en vivo.
Ideas para ampliarlo
Añade una acción Modificar reacción (✅) a "Aceptar" para que un número correcto reciba una marca visible. O usa {counting_next} en un mensaje en cualquier otra parte de la automatización para mostrar a los jugadores el conteo actual, con los mismos tokens {variable_name} que ya admite cualquier otra automatización.
Has creado un juego de conteo que respeta las reglas
El truco principal, guardar un valor en vivo en una variable y comparar un mensaje con él usando {"var": "<name>"}, sirve para cualquier problema en el que cambian ambos lados, no solo para contar. Consulta la referencia del lenguaje de expresiones para ver todos los operadores.