Ir al contenido

Clave

Clave

En Wired Code: trigger.says

Dispara cuando un usuario escribe en el chat algo que encaja con el patrón que configures. Es la base de los comandos de sala.

Cada mensaje que se escribe en la sala se compara con el patrón. Si encaja, la pila arranca y quien lo escribió queda como causante.

Las mayúsculas dan igual. Hola, hola y HOLA son lo mismo para la comparación, así que no hace falta que prepares una pila por cada forma de escribirlo.

Cuenta todo lo que se dice en la sala: hablar, gritar y también susurrar. Y cuenta lo que dicen los bots, así que un Mensaje de Bot que case con tu propia palabra clave monta un bucle — el sistema lo corta, pero la pila no hace lo que esperabas.

El mensaje queda a tu disposición. Los efectos de la pila pueden escribirlo con el identificador $(trigger_text), sin colocar ningún complemento. Vale el mensaje completo, tal como llega a la sala y con las mayúsculas del jugador, sea cual sea el modo: con Contiene la palabra clave y la clave hola, el mensaje “ahola qué tal” da $(trigger_text) = “ahola qué tal”, no solo la palabra clave. Lo tienes igual con Coincidencia exacta, con Coincide con cualquier texto, cuando habla un bot y cuando se susurra (en un susurro, sin el nombre de a quién se le susurra).

Ventana de configuración de Clave

Mensaje desencadenante. El texto a buscar.

Escoge el tipo, con tres modos:

Modo Encaja con
Contiene la palabra clave Cualquier mensaje que incluya ese texto
Coincidencia exacta Solo si el mensaje es exactamente ese texto
Coincide con cualquier texto Cualquier cosa que se diga. Deshabilita el campo de texto

Opciones, dos casillas:

  • Ocultar el mensaje desencadenante – el mensaje no lo ve nadie más en la sala; a quien lo escribió se le devuelve en susurro, para que sepa que se ha enviado. Viene marcada, y es lo que hace que los comandos se sientan como comandos y no como conversación. Con el Controlador: Anulador de Wired encendido no oculta nada.
  • El causante es dueño de la sala – solo dispara si quien lo escribió es el propietario. Es un filtro de permisos rápido, sin condición aparte.

Un comando para abrir la puerta, solo para el dueño:

Pila A
│
├─ Causante: Clave
│ ├─ Mensaje desencadenante .................. "!abrir"
│ ├─ Escoge el tipo .......................... Coincidencia exacta
│ └─ Opciones ................................ Ocultar el mensaje desencadenante
│ El causante es dueño de la sala
│
└─ Efecto: Mutar
├─ Elige Furni ............................. Portón
└─ Escoge el tipo de cambio ................ Cambiar al siguiente estado

Y un megáfono: lo que escribe quien lleva !mega lo ve toda la sala, destacado:

Pila B
│
├─ Causante: Clave
│ ├─ Mensaje desencadenante .................. "!mega"
│ ├─ Escoge el tipo .......................... Contiene la palabra clave
│ └─ Opciones ................................ Ocultar el mensaje desencadenante
│
└─ Efecto: Mensaje
├─ ¿Cuál es el mensaje? .................... "[b]$(trigger_text)[/b]"
├─ Visibilidad del mensaje ................. Toda la sala
└─ Estilo de notificación .................. Información

Sale también la palabra clave, porque $(trigger_text) es el mensaje entero.

Contiene es más amplio de lo que parece. Con la palabra clave hola, el mensaje “ahola qué tal” también encaja. Para comandos, usa coincidencia exacta o empieza siempre por un símbolo poco común.

El mensaje solo se oculta si la pila pasa sus condiciones. El sistema decide si esconderlo después de evaluarlas, así que si alguien escribe la palabra clave y no cumple los requisitos, su mensaje se ve en el chat con normalidad. Eso es cómodo —el que no tiene permiso no se queda con la duda— pero significa que la palabra clave se hace pública en cuanto alguien la prueba sin cumplir.

Si tu clave tiene que ser secreta de verdad, no la protejas con condiciones: monta una pila que la oculte siempre y decide dentro qué hacer, con Ejecutar pilas Negativo para el caso de que no tenga permiso.

Cuidado con cualquier texto. Dispara con absolutamente todo lo que se hable en la sala. Con una sala concurrida son muchísimas ejecuciones; mira Límites.

Los dos puntos ya están cogidos. Si tu clave empieza por : y coincide con un comando de verdad del hotel, el comando se lleva el mensaje y aquí no llega nada. Para claves con pinta de comando usa otro símbolo delante —!, /, .— y te ahorras la colisión.

Si hay un Capturador de variables en la pila, manda él. El complemento Capturador de variables reescribe la comparación: en cuanto el patrón lleva un hueco #(nombre), es el capturador quien decide si el mensaje encaja, respetando el modo que hayas elegido arriba. Si no encaja, la pila ni arranca.

Trae puesto cómo se dijo. Toda pila que nazca de aquí puede leer @event.chat.type —hablar, gritar o susurrar— y @event.chat.style, la burbuja. Es lo que permite montar un comando que solo valga susurrado.

trigger_text es un nombre reservado. Un complemento de texto — Identificar Nombres, Identificar Nombres de Furni o Marcador de posición de variable— que se llame así, con las mayúsculas que sea, no se guarda: la ventana avisa con «El identificador trigger_text está reservado para el mensaje o chat recibido.»

Solo existe en las pilas que nacen de un Clave, y en las que les llegan desde ella por una señal o con Ejecuta Pilas. En cualquier otra, $(trigger_text) se queda escrito tal cual. Por eso el botón Añadir identificador del editor de mensajes solo lo ofrece, al final de la lista, en las pilas que llevan un Clave. Con un efecto con retardo sigue siendo el mensaje que disparó la pila.

Ocultar el mensaje no lo quita de $(trigger_text). El mensaje oculto deja de verse en el chat, pero los efectos siguen teniéndolo.

Es el mensaje que llega a la sala. Las palabras que el filtro de la sala cambia llegan ya cambiadas, y si lleva etiquetas de formato ([wave], [room=…]…) o un $(nombre) de los de la pila, un mensaje de wired que lo repita los aplica, porque los mensajes de wired admiten etiquetas.

Cuidado al repetirlo con un bot. Como $(trigger_text) es el mensaje entero, lleva también la palabra clave: un Mensaje de Bot que diga $(trigger_text) casa con su propio Clave y monta el bucle de arriba. Para repetirlo usa un Mensaje, que no vuelve a disparar el Clave.