Ir al contenido

Cambiar valor de variable

Cambiar valor de variable

En Wired Code: effect.change_var

Cambia lo que vale una variable, con una lista larga de operaciones.

Es la calculadora del sistema. Con Dar variable creas el dato y con este lo haces evolucionar: marcadores que suben, vidas que bajan, valores aleatorios, topes que no se pueden pasar.

Lo que lo hace realmente potente es poder operar contra otra variable en lugar de contra un número escrito a mano. Eso permite comparar jugadores entre sí, acumular el marcador de uno en el de su equipo y montar cualquier cuenta que dependa de algo que cambia. El campo que admite las dos cosas, y cómo se reparten varios destinos y varias referencias, está en Valor o variable.

Ventana de configuración de Cambiar valor de variable

Escoge una variable, con los cuatro iconos de ámbito —furni, usuario, global y contexto— al lado del rótulo: la que se va a cambiar. Solo se dejan elegir las que se pueden escribir.

Escoge una operación, con veintiséis a elegir. El desplegable enseña las siete corrientes y, con “… mostrar avanzadas”, despliega las otras diecinueve (ya sale desplegado si la operación que tenías guardada es una de ellas). Están todas explicadas en Las operaciones, aquí abajo.

Valor de referencia, un número o el nombre de otra variable: el valor contra el que se opera (Valor o variable). El botón del campo abre el selector de variables, que trae dos cosas que importan aquí:

  • Escoge la fuente de la variable: de qué tipo es la variable de referencia (furni, usuario, global o contexto) y, con furni o usuario, de quién se lee. Ofrece las mismas opciones que el objetivo de abajo.
  • Usar el mismo furni o usuario que la variable de destino: cada destino opera con el valor que tenga él mismo en la variable de referencia. Solo se puede marcar si las dos variables son del mismo tipo (las dos de furni o las dos de usuario).

Este campo se apaga en Valor absoluto, Bitwise NOT y Bit count, que no lo usan.

Escoge el objetivo de la variable, abajo del todo, debajo del retardo: de quién es la variable que se cambia. Las opciones dependen del icono de ámbito:

Ámbito Opciones
Furni Usar furnis seleccionados, con su contador, para marcarlos clicando en la sala · Selección de furnis secundarios · Usar furnis de Selector · Usar furnis de Señal · Usar furni desencadenante
Usuario Usuario desencadenante · Usuario del Selector · Usuario de la señal · Usuario clickado · El usuario alcanzado (estas dos últimas solo si su causante está en la pila)
Global y contexto Nada que elegir: sale fijo Variables Globales o Variables de Contexto

La Selección de furnis secundarios es una segunda lista marcada a mano. Sirve para que la variable que se cambia y la de referencia puedan vivir en furnis distintos; en el selector del campo, la fuente de la referencia ofrece la misma lista.

En las tablas, valor es lo que vale la variable ahora y ajuste es el valor de referencia: el número que escribes o el valor de la variable que pongas en el campo.

Operación Qué hace Ejemplo
Asignar Tira lo que había y pone el ajuste 7, asignar 3 → 3
Suma valor + ajuste 7, suma 3 → 10
Resta valor − ajuste 7, resta 3 → 4
Multiplicación valor × ajuste 7, por 3 → 21
Dividir valor ÷ ajuste, sin decimales 7, entre 3 → 2
Módulo Lo que sobra de esa división 7, módulo 3 → 1
Potencia valor elevado al ajuste 7, potencia 2 → 49
Operación Qué hace Ejemplo
Definir mínimo Un suelo: sube el valor si estaba por debajo 3, mínimo 10 → 10 · 30, mínimo 10 → 30
Definir máximo Un techo: baja el valor si se pasó 30, máximo 10 → 10 · 3, máximo 10 → 3
Valor absoluto Le quita el signo. No usa el ajuste −7 → 7
Operación Qué hace Ejemplo
Aleatorio con límite superior Un número al azar entre 0 y el ajuste, los dos incluidos límite 6 → un número de 0 a 6

Tira lo que hubiera en la variable. Con un ajuste de cero o negativo siempre sale 0. Para un dado de 1 a 6, saca el aleatorio con límite 5 y súmale 1.

Las que vienen ahora tratan el número como una fila de casillas de sí/no. Sirven para guardar muchos interruptores en una sola variable —los niveles desbloqueados, las piezas conseguidas, quién ha votado— y ahorrarte veinte variables. Si no necesitas eso, sáltate el resto de la página.

Las casillas se numeran desde el 0 y hay 64. La casilla 0 vale 1, la 1 vale 2, la 2 vale 4, la 3 vale 8, y así.

Operación Qué hace Ejemplo
Set Bit Enciende la casilla número ajuste 0, set bit 3 → 8
Clear Bit Apaga esa casilla 8, clear bit 3 → 0
Toggle Bit La invierte 8, toggle bit 3 → 0 · 0, toggle bit 3 → 8
Get Bit Deja 1 si esa casilla está encendida, 0 si no 8, get bit 3 → 1
Bit count Cuántas casillas encendidas hay. No usa el ajuste 11, bit count → 3

Las cuatro de búsqueda devuelven el número de casilla, no su contenido. Empiezan a mirar desde la casilla ajuste —esa incluida— y avanzan hacia arriba o hacia abajo. Si no encuentran ninguna, devuelven −1.

Operación Busca Hacia
Next High Bit La siguiente encendida arriba
Next Low Bit La siguiente apagada arriba
Previous High Bit La anterior encendida abajo
Previous Low Bit La anterior apagada abajo

Y las cinco que operan con todas las casillas a la vez:

Operación Qué hace Ejemplo
Bitwise AND Deja encendidas solo las que lo estaban en los dos 12 AND 10 → 8
Bitwise OR Deja encendidas las que lo estaban en cualquiera 12 OR 10 → 14
Bitwise XOR Deja encendidas las que estaban en uno solo 12 XOR 10 → 6
Bitwise NOT Da la vuelta a las 64. No usa el ajuste 0 → −1
Desplazamiento a la izquierda Corre las casillas ajuste sitios a la izquierda. Es multiplicar por 2 cada vez 3, izquierda 2 → 12
Desplazamiento a la derecha Lo mismo hacia el otro lado. Es dividir entre 2 12, derecha 2 → 3

Un marcador personal con tope. La variable puntos tiene que existir ya en el jugador —dásela antes con Dar variable, por ejemplo al entrar en la sala—, porque este efecto no la crea: a quien no la tenga no le hace nada.

Pila A
│
├─ Causante: Sobre un Furni
│ └─ Elige Furni ............................. Baldosa Invisible: Clic
│
├─ Efecto: Cambiar valor de variable
│ ├─ Escoge una variable ..................... puntos (ámbito usuario)
│ ├─ Escoge una operación .................... Suma
│ ├─ Valor de referencia ..................... 10
│ └─ Escoge el objetivo de la variable ....... Usuario desencadenante
│
└─ Efecto: Cambiar valor de variable
├─ Escoge una variable ..................... puntos (ámbito usuario)
├─ Escoge una operación .................... Definir máximo
├─ Valor de referencia ..................... 100
└─ Escoge el objetivo de la variable ....... Usuario desencadenante

El segundo efecto es el tope: pase lo que pase, la variable no sube de cien.

Tres operaciones no usan el valor de referencia: Valor absoluto, Bitwise NOT y Bit count trabajan solo con lo que ya vale la variable, y por eso el campo sale apagado.

Si a un destino le toca una referencia que no tiene la variable, ese destino no se toca. No se le escribe un 0, ni siquiera con Asignar: se queda como estaba. Y cuando hay varios destinos y varias referencias, se reparten: mira Valor o variable. Aunque el destino y la referencia sean los mismos furnis o usuarios, no puedes contar con que cada uno lea el suyo; para eso marca Usar el mismo furni o usuario que la variable de destino.

Con retardo, la referencia se lee cuando el retardo termina, no cuando se dispara la pila.

Los números no tienen decimales. Todo son enteros de 64 bits, así que cualquier división corta por lo sano. Si necesitas medios puntos, trabaja en décimas: guarda 15 y enséñalo como 1,5.