Cambio de variable
En Wired Code: trigger.var_changed
Dispara cuando una variable de la sala cambia. Es lo que convierte las variables en algo activo: en vez de tener que consultarlas, la pila reacciona sola.
Cómo funciona
Sección titulada «Cómo funciona»Vigila una variable concreta —o las de varias cajas de variable a la vez— y dispara según el tipo de cambio que le indiques. Permite montar sistemas donde una pila escribe y otra reacciona, sin señales de por medio.
Y te entrega al dueño de la variable. Si vigilas una variable de usuario, el usuario cuya variable cambió llega como desencadenante de la pila; si vigilas una de furni, el furni cuya variable cambió llega como furni desencadenante. Con una variable global no hay ninguno de los dos: es un cambio de la sala, sin dueño. Si vigilas varias cajas de tipos distintos, cada cambio entrega al dueño que le corresponde por el tipo de la variable que cambió.
Configuración
Sección titulada «Configuración»
Elegir variable por, con dos opciones:
| Opción | Qué vigila |
|---|---|
| Una variable escogida | La variable que elijas justo debajo |
| Variables WIRED seleccionadas | Las variables de las cajas de variable que marques clicándolas en la sala |
Con Variables WIRED seleccionadas se apaga la parte de elegir variable (los iconos de ámbito y la lista), y las casillas de abajo valen para todas las cajas marcadas a la vez. Hay que marcar al menos una caja, y todos los furnis que marques tienen que ser cajas de variable con su variable ya puesta: si no, el wired no se guarda y sale un aviso de «Actualización fallida»; la ventana sigue abierta para que lo corrijas. Con Una variable escogida, los furnis que hayas marcado no cuentan.
Escoge una variable, de las disponibles en la sala. Al lado del título hay tres iconos de ámbito —furni, usuario y global— que deciden de qué lista sales a elegir. Cambiar de ámbito vacía la selección, así que elige primero el icono y luego la variable.
Las variables que el sistema no deja interceptar aparecen en gris. No se ocultan: se ven, pero no se pueden escoger.
Desencadenar cuando la variable, con tres casillas. Son casillas, no opciones excluyentes: puedes marcar varias y la pila disparará con cualquiera de ellas.
| Casilla | Dispara cuando |
|---|---|
| Es creada | La variable aparece por primera vez |
| Cambia su valor | Su valor cambia |
| Se elimina | La variable desaparece |
Según la variable que elijas, alguna casilla puede salir en gris: si esa variable no se puede crear ni retirar, “Es creada” y “Se elimina” no están disponibles. Es lo que pasa con las globales, que existen desde que pones la caja y no se van nunca.
Al marcar Cambia su valor se habilitan tres subcasillas que afinan qué clase de cambio te interesa. Si no marcas ninguna, valen las tres: cualquier cambio dispara. Solo hace falta tocarlas si quieres filtrar.
| Subcasilla | Dispara cuando |
|---|---|
| Aumentado | El nuevo valor es mayor que el anterior |
| Disminuido | El nuevo valor es menor |
| Sin cambios | Se escribió el mismo valor que ya tenía |
Aumentado y disminuido son los que hacen útil este causante para contadores: te dicen la dirección del cambio sin que tengas que guardar tú el valor anterior. Y “sin cambios” aísla las escrituras que no alteraron nada —sumar cero, reasignar el mismo número—, por si quieres reaccionar solo a esas.
Permitir activación desde, plegado por defecto. Una variable no solo la cambian los wireds de tu sala: también puede tocarla otra sala, alguien desde la herramienta de inspección o la gestión externa de variables. Estas cuatro casillas dicen desde qué origen se acepta el cambio; de fábrica vienen todas marcadas y el causante dispara venga de donde venga.
| Casilla | El cambio lo hizo |
|---|---|
| Esta sala | Un wired de la propia sala |
| Otra sala | Otra sala, a través de una variable compartida entre salas |
| Inspección | Alguien a mano, desde la herramienta de inspección (:inspect) |
| Externa | La gestión de variables o la API web de variables |
Dos casillas dependen de la variable elegida y salen en gris cuando no tienen sentido: Otra sala solo con una variable global compartida entre salas (o una referencia a ella), y Externa solo con una variable persistente. Sin variable elegida, las dos van en gris.
Sirve sobre todo para blindar una pila: si desmarcas Inspección, un moderador que corrija a mano
un marcador no dispara la pila de recompensa. En Wired Code el campo es origin_mask, con un bit por
casilla en ese orden y -1 para “todas”.
Ejemplo
Sección titulada «Ejemplo»Avisar a un jugador cada vez que sube su marcador. La variable es de usuario, así que el causante ya entrega a la persona a la que le subió:
Pila A│├─ Complemento: Marcador de posición de variable│ ├─ Escoge una variable ..................... puntos (ámbito usuario)│ ├─ Escoge la fuente de la variable ......... Usar usuario desencadenante│ ├─ Nombre del identificador ................ puntos_txt│ └─ Escoge el tipo de visualización ......... Numérica│├─ Causante: Cambio de variable│ ├─ Escoge una variable ..................... puntos (ámbito usuario)│ └─ Desencadenar cuando la variable ......... Cambia su valor → Aumentado│└─ Efecto: Mensaje ├─ ¿Cuál es el mensaje? .................... "Vamos por $(puntos_txt) puntos" └─ Solo el usuario desencadenanteCuidado con los bucles. Si la pila que reacciona al cambio vuelve a escribir la misma variable, se dispara a sí misma, y además al momento: no espera al siguiente turno. Lo acaba cortando el tope de ejecuciones de la sala, pero para entonces la pila ya ha corrido de más. Escribe la respuesta en otra variable.
Escribir el mismo valor también cuenta. Sumar cero, o asignar el número que ya tenía, dispara igual: para el sistema ha habido una escritura. Si eso te estorba, marca a mano “Aumentado” y “Disminuido” y deja “Sin cambios” sin marcar — recuerda que dejar las tres en blanco es lo mismo que marcarlas todas.