Ir al contenido

Qué son las variables internas

Además de las que declaras con una caja de variable, el sistema trae 124 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 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.

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

La mayoría son de solo lectura, pero unas cuantas se escriben con Cambiar valor de variable, y ahí está lo interesante: son acciones que no tienen efecto propio.

Escribir Hace
@position.x / @position.y / @rotation / @altitude Mover o girar un furni
@state Cambiar el estado de un furni
@effect / @dance / @sign Poner efecto, baile o cartel a un avatar
@handitem Dar un objeto en la mano
@direction Girar a un avatar
@teams.<color>.score / @team.score Tocar el marcador de un equipo

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.

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 Este. Lo llevan @direction, @gender, @type, @team.color, @dance, @effect, @current_time.day_of_week y unas cuantas más.

Cuántas De quién es el dato
De usuario 29 Cada persona, bot o mascota
De furni 18 Cada mueble
Globales 24 La sala y la hora
De contexto 13 La ejecución que está corriendo
Inteligentes 40 La mecánica de un furni concreto