AutoMod

Premium
Volver a los tutoriales

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.

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 expresiones
2

Crea 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)
3

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.

CampoValor
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 variablecounting_next · Incrementar · 1
2. Definir variablecounting_last_author · Definir · {user.id}
4

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ó.

CampoValor
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 variablecounting_next · Definir · 1
2. Definir variablecounting_last_author · Definir · (vacío)
3. Enviar mensajeResponder · "💥 ¡Se rompió! Volvemos a 1."
5

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.

6

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.