Ir al contenido
Wiki Hartico

Variables

Una caja de variable declara un dato: cómo se llama, de quién es y cuánto dura. Se coloca en la sala una sola vez y a partir de ahí las condiciones y los efectos pueden leerla y escribirla.

Sin una caja no hay variable. Es lo primero que hay que poner cuando una sala pasa de reaccionar a recordar.

De quién es el dato

Esta es la única decisión que importa de verdad, y la que hay que tomar antes de escribir nada. La misma variable llamada puntos significa cosas distintas según dónde viva.

CajaEl dato pertenece aSirve para
Variable de usuarioCada personaPuntuación, progreso, permisos
Variable de furniCada muebleContadores de una casilla, estado de un cofre
Variable globalLa sala, o el hotelMarcadores comunes, fase del juego
Variable de contextoNadie: se borra al terminar la pilaCálculos intermedios

Cambiar de caja después no arrastra los datos ya guardados: te quedas con dos juegos y una sala que funciona a medias. Piénsalo al principio.

Si has programado alguna vez

Las de usuario, furni y global son campos: pertenecen a un objeto y siguen ahí cuando la llamada termina. La de contexto es una variable local: existe mientras corre la ejecución y desaparece sola.

Puesto así, la pregunta "¿qué caja uso?" se contesta sola casi siempre: si el dato tiene que seguir existiendo después, es de alguien; si solo lo necesitas para llegar al final de lo que estás haciendo, es de contexto.

Las tres especiales

CajaQué hace
Variable heredadaTrae una variable compartida de otra sala tuya
EcoLe pone nombre propio a otra variable de la sala, también a una tuya
Variable punteroHace de otra variable de la sala, la que diga una variable de contexto al empezar la pila

Cuánto duran

Las cajas de usuario, de furni y global traen opciones de disponibilidad:

  • Mientras la sala esté activa (o el usuario esté en ella) — se pierde al vaciarse la sala. Ojo: una sala se descarga en cuanto lleva un rato sin gente, así que esto dura menos de lo que parece.
  • Permanente — se conserva en esta sala entre visitas.
  • Permanente, compartida entre salas — el dato se puede traer a otras salas tuyas con una Variable heredada. No hace falta que el nombre sea único en el hotel: se comparte por caja, no por nombre.

Las permanentes tienen tope: cada sala admite como mucho 100 variables permanentes de cada tipo (de usuario, de furni y globales, contadas por separado). Si pasas a permanente la caja que haría 101, el cambio no se guarda y sale el aviso «Esta sala ha alcanzado el límite de variables permanentes para este tipo de variable.» — ver Límites.

La de contexto no tiene disponibilidad porque no dura, y eso es justo su gracia: nada que limpiar.

Cómo se usan

La caja solo declara. El trabajo lo hacen las otras familias:

ParaUsa
Crearla con un valorDar variable
Cambiar lo que valeCambiar valor de variable
BorrarlaEliminar variable
Comprobar si existeContiene variable
Comprobar cuánto valeValor de variable
Reunir a quien cumplaUsuarios con variable
Enseñarla en un mensajeMarcador de posición
Enseñarla sobre el avatar o el furniVariable FX
Publicar la clasificación de una variable de usuarioTabla de Clasificación
Leerla y escribirla desde fuera del juegoAPI pública de variables

Una variable en vez de un número

Muchos wireds tienen un campo que acepta un número o el nombre de una variable: el valor inicial de un Dar variable, el número contra el que opera un Cambiar valor, el plazo de una espera. Cómo se elige la variable y de quién se lee está en Valor o variable.

Existir y valer cero no es lo mismo

Es la trampa que más se paga en todo el sistema. Una variable borrada no existe; una que vale cero existe y vale cero. Contiene variable distingue las dos cosas, y de ahí salen los "solo la primera vez" que funcionan de verdad.

Si lo que quieres es reiniciar un marcador, asígnale cero — no lo borres.

Las variables internas

Además de las tuyas, el sistema trae variables ya hechas que puedes leer sin declarar nada: la puntuación, la hora, el nombre, el efecto que lleva puesto el avatar. Se reconocen porque empiezan por arroba, como @effect.

Algunas se pueden escribir, y eso es lo que permite hacer cosas que no tienen efecto propio: asignarle un número a @effect con Cambiar valor de variable es la forma de ponerle un efecto a un avatar, y asignarle 0 se lo quita.

En esta página