Qué son las variables internas
Además de las que declaras con una caja de variable, el sistema trae 163 variables ya hechas. No hay que crearlas ni colocar nada: están ahí desde siempre, y guardan cosas que el hotel ya sabe — dónde está un furni, qué efecto lleva puesto un avatar, qué hora es, cuánta gente hay.
Se reconocen porque empiezan por un símbolo:
@ |
Internas | Datos que tiene cualquier sala, usuario o furni |
~ |
Inteligentes | Ventanas a la mecánica de un furni —o de una mascota— concreto |
La diferencia práctica es dónde existen. @position.x la tiene cualquier furni; ~clock.state solo
la tienen los relojes, y ni siquiera aparece en la lista si no hay un reloj en la sala.
Se tienen, o se tienen y valen algo
Sección titulada «Se tienen, o se tienen y valen algo»Esta es la parte que hay que entender antes de usarlas, porque decide con qué las compruebas.
Las que siempre están. @position.x, @user_count, @current_time… existen pase lo que pase y
siempre tienen un número. Se leen con
Valor de variable.
Las que se tienen o no se tienen. @effect solo la tiene quien lleva un efecto puesto;
@handitem solo quien lleva algo en la mano; @room_entry.teleport_id solo quien entró por un
teleport o por un Nexo de Sala. Cuando no procede, la variable no existe — no es que valga cero.
Para eso está
Contiene variable, y es lo que hace útil preguntar
“¿lleva algún efecto?” sin importar cuál.
Las de presencia. No tienen número: la tienes o no la tienes, y eso es el dato. @is_hc,
@has_rights, @is_owner, @can_sit_on… Son los booleanos del sistema. Con estas, Valor de
variable no sirve de nada: se comprueban siempre con Contiene variable.
Cuáles se pueden escribir
Sección titulada «Cuáles se pueden escribir»Casi todas son de solo lectura. Son la ventana por la que el wired mira el estado del hotel, no un
mando para cambiarlo: de las 163 que hay, solo se puede escribir en 21 internas (@) y en
13 inteligentes (~). Se escriben con
Cambiar valor de variable, y ahí está lo interesante: son
acciones que no tienen efecto propio.
Escribir en una interna no es asignar un número en una tabla: es ejecutar la acción que
correspondería. Subir @position.x de un furni es un Mover de una baldosa, con
todo lo que eso arrastra — los complementos de movimiento de la pila se aplican igual, y las
validaciones también. Si el efecto no habría podido, la escritura tampoco puede.
Estas son las veintiuna internas, y en cada página van marcadas con ✏️:
| Familia | Variables | Hace |
|---|---|---|
| Sitio y postura de un furni | @position.x · @position.y · @position · @occupation · @rotation · @altitude · @state · @wallitem_offset |
Mover, girar, subir o encender un furni |
| Sitio y postura de un avatar | @position.x · @position.y · @position · @direction |
Mover o girar a un avatar |
| Lo que lleva puesto | @handitem · @effect · @dance |
Dar un objeto en la mano, poner efecto o baile |
| Marcadores de la partida | @team.score · @teams.red.score · @teams.green.score · @teams.blue.score · @teams.yellow.score |
Tocar el marcador de un equipo |
| Cómo caminan en la sala | @pathfinder |
Elegir el calculador de rutas de los avatares |
Y las trece inteligentes: las medidas de la Zona Oculta (~area_hide.root_x, ~area_hide.root_y,
~area_hide.width, ~area_hide.length), los tres colores del pintafondos
(~background_color.hue, ~background_color.saturation, ~background_color.lightness), el
contador de los relojes (~clock.pulse_count), el destino de un teleport o de un Nexo de Sala
(~teleport.target_id), el color de un bloque recoloreable (~recolorable_furni.color.rgb) y los tres
desplazamientos de un anuncio (~branding.offset_x, ~branding.offset_y, ~branding.offset_z). Están
en Inteligentes.
Poder calcular el valor es lo que las hace valiosas: @effect + 1, un número aleatorio, o lo que
valga otra variable. Con la acción normal tendrías que dejar un valor fijo.
Siete se pueden además dar y retirar con Dar variable y
Eliminar variable: @handitem, @effect y @dance, donde retirarlas
escribe su 0, y las cuatro inteligentes de presencia —~area_hide.inverted,
~area_hide.is_invisible_furni, ~area_hide.hiding_wallitems y ~walk_helper.is_multi_walk—, donde
darlas enciende una opción del furni y retirarlas la apaga.
Las empaquetadas
Sección titulada «Las empaquetadas»Cuatro variables guardan varios datos dentro de un solo número: una baldosa, una baldosa con su giro, o un color. En las páginas de cada lista llevan 📦.
| Variable | Qué lleva | El número es | Ejemplo |
|---|---|---|---|
@position (de furni y de usuario) |
La baldosa: x e y | x × 256 + y | La baldosa (4, 39) es 1063 |
@occupation (de furni) |
La baldosa y el índice de giro de @rotation |
x × 65536 + y × 256 + giro | La baldosa (4, 39) con giro 0 es 272128 |
~recolorable_furni.color.rgb (de un bloque recoloreable) |
El color | rojo × 65536 + verde × 256 + azul | El color 5EAAF8 —94, 170, 248— es 6204152 |
Cada dato ocupa 8 bits, de 0 a 255, así que en hexadecimal son dos cifras seguidas: la baldosa
(4, 39) es 0x0427 y el color 5EAAF8 es 0x5EAAF8.
Para qué sirven:
- Mover con una sola escritura. Escribir
@positionlleva al furni —o a la persona— a las dos coordenadas de una vez. Con@position.xy luego@position.yson dos movimientos, y el primero puede fallar si la baldosa intermedia está ocupada. - Copiar un sitio. Con el campo valor o variable de
Cambiar valor de variable puedes tomar como valor la
@positionde un furni y escribirla en la de otro furni, o en la de una persona: llega a su misma baldosa —si se puede pisar— sin que conozcas sus coordenadas. - Sacar un dato. Sobre una copia en una variable tuya, un Desplazamiento a la derecha de 8 deja la
x de una
@position, y un Bitwise AND con 255 deja la y. Son dos de las operaciones de bits.
En un mensaje, una condición o un selector una empaquetada es solo el número. El desglose
(x: 4, y: 39, #5EAAF8) lo dibuja el panel :wired; cómo se ve y cómo se edita ahí está en
Herramientas de creador.
Dónde se usan
Sección titulada «Dónde se usan»En los mismos sitios que las tuyas: condiciones, selectores por variable, efectos de cambiar valor, y dentro de un texto con el Marcador de posición.
Muchas traen además un conector de texto de fábrica: en vez de escribir 2, el mensaje enseña
E. Lo llevan @direction, @gender, @type, @team.color, @dance, @effect,
@current_time.day_of_week, @pathfinder y unas cuantas más. Son textos de fábrica —varios en inglés,
como en el hotel oficial— y no se pueden cambiar. Las descripciones de las tablas de estas fichas son
explicación: el texto que enseña un mensaje es el de fábrica, casi siempre en inglés (por ejemplo, @type da
Normal o Temp, no «temporal»).
¿No estás seguro de qué puede hacer una variable concreta? La pestaña Variables de
:wired enseña sus propiedades —si guarda valor, si se puede
escribir, dar o retirar, si tiene fecha, si trae textos— para cada una, sin tener que adivinarlas.
Las listas
Sección titulada «Las listas»| Cuántas | De quién es el dato | |
|---|---|---|
| De usuario | 36 | Cada persona, bot o mascota |
| De furni | 21 | Cada mueble |
| Del proyectil | 7 | Un furni lanzado con el complemento Proyectil, mientras vuela |
| Globales | 25 | La sala, cómo caminan sus avatares y la hora |
| De contexto | 21 | La ejecución que está corriendo |
| Inteligentes | 53 | La mecánica de un furni o de una mascota concretos. Las once de planta todavía no funcionan |