Ir al contenido

De usuario

El dato es de cada unidad de la sala: una persona, un bot o una mascota. La misma variable leída sobre dos avatares distintos da dos resultados distintos.

Variable Qué es
@user_id El id de la cuenta
@index Su número dentro de la sala. Cambia cada vez que entra
@type Qué es: 1 persona · 2 mascota · 4 bot 🏷️
@gender Su género 🏷️
@position.x @position.y La baldosa en la que está ✏️
@position La baldosa en la que está, empaquetada en un solo número: x × 256 + y. Escribirla la lleva a las dos coordenadas de una vez ✏️ 📦
@direction Hacia dónde mira, de 0 a 7 (0 norte, 1 noreste, 2 este…) 🏷️ ✏️
@altitude La altura a la que está, en centésimas de baldosa

🏷️ trae conector de texto · ✏️ se puede escribir · ➕ se puede dar y retirar · 📦 empaquetada: un solo número que lleva varios datos dentro, como se explica en Las empaquetadas

Escribir @position.x, @position.y o @position mueve a la persona —o al bot, o a la mascota— por el mismo camino que Mover y Rotar Usuario: se desliza a la baldosa con la animación y los complementos de movimiento de la pila. Si no puede estar ahí —no se puede pisar, o ya hay otro avatar y la pila no lleva Movimientos Físicos que lo permitan—, se queda donde estaba. Un valor de @position que no cabe en 16 bits (más de 65535) no hace nada. @direction la gira entera, cuerpo y cabeza; fuera de 0 a 7 no gira.

@index, @user_id, @bot_id y @pet_id no son intercambiables, y elegir mal produce fallos que solo aparecen cuando entra la segunda persona.

@user_id, @bot_id y @pet_id son listas distintas y colisionan entre sí. Puede existir a la vez el bot 1000 y la persona 1000. Si tu montaje mezcla personas con bots o mascotas, el único que no colisiona es @index, porque lo reparte la sala entre todo lo que hay dentro.

Y @index no se guarda nunca en una variable permanente. Se reparte por orden de llegada, así que al descargarse la sala vuelve a empezar en 0: un índice guardado ayer apunta hoy a otra persona, y tu juego le entrega el progreso de otro sin dar ningún error.

@index para lo que dura una partida. @user_id para lo que se guarda.

Todo el patrón está en Referencias e identificadores.

Las cuatro se comportan igual: si no lleva nada, la variable no existe. Por eso “Contiene variable” sobre ellas responde “¿lleva algo?”.

Variable Qué es
@handitem El objeto que lleva en la mano 🏷️ ✏️ ➕
@effect El efecto del avatar 🏷️ ✏️ ➕
@dance El baile. Quieto, no se tiene 🏷️ ✏️ ➕
@sign El cartel que tiene levantado 🏷️

En las tres primeras el 0 es la ausencia —mano vacía, sin efecto, quieto—, así que escribirlo las quita. Y por eso se pueden dar y retirar con Dar variable y Eliminar variable, igual que cualquier variable tuya: retirarlas escribe ese 0.

Al escribirlas hay topes, y un valor fuera de ellos no se recorta: la escritura se cancela. @effect va de 1 a 1013 y solo admite los efectos que esa persona podría ponerse por su cuenta —los que exigen placa o rango se rechazan—; @dance, de 1 a 16 y el 67; @handitem, cualquier número positivo.

De presencia: se tienen o no se tienen, y no valen ningún número. Se comprueban con Contiene variable.

Variable La tiene quien…
@is_owner Es el dueño de la sala
@has_rights Tiene derechos en la sala
@is_hc Tiene Habbo Club
@is_group_admin Es administrador del grupo de la sala
@is_idle Está ausente
@is_trading Está intercambiando
@is_frozen Está inmovilizado por el efecto Congelar usuario (no es el congelado de una partida de Freeze)

Bots y mascotas no tienen @has_rights: no son cuentas.

Variable Qué es
@team.color El color de su equipo 🏷️
@team.type El tipo de equipo 🏷️
@team.score Los puntos de su equipo ✏️

@team.score es el mismo número que @teams.<color>.score, visto desde el jugador en vez de desde la sala. No existe la puntuación por persona: todo punto es del equipo. Escribirla solo funciona con la partida abierta y cuenta como puntos dados (dispara Puntos Conseguidos); sin equipo, la variable no existe y no hay dónde escribir.

Variable Qué es
@room_entry.method Por dónde entró: 0 normal · 2 teleport · 3 red de salas 🏷️
@room_entry.teleport_id El furni por el que apareció: el teleport, o el Nexo de Sala WIRED si llegó por la red de salas

@room_entry.teleport_id solo existe si llegó por uno de esos furnis. Entrando por la puerta, la variable no está.

Solo las tiene quien tiene abierto un Tradeo Wired con un contrato, el que abre Iniciar Transacción. Sin transacción abierta no tiene ninguna, y los bots y las mascotas nunca. Las seis son de solo lectura.

Variable Qué es
@transaction.in_trade Tiene una transacción abierta ⭕
@transaction.start_time Cuándo empezó, en segundos desde 1970
@transaction.contract_id El contrato: el furni de contrato o el Contrato Personalizado
@transaction.state 1 Adding Items, poniendo lo que paga · 2 Confirmed, ya lo aceptó 🏷️
@transaction.can_accept Lo que ofrece ya cumple el contrato: puede aceptar ⭕
@transaction.current_multiplier Cuántas veces paga: las que cumple ahora lo ofrecido con Auto-multiplicador, el número fijo con Multiplicador y 1 con Normal

Los textos de @transaction.state salen en inglés, como en el hotel oficial.

Variable Qué es
@achievement_score Sus puntos de logros
@favourite_group_id Su grupo favorito. Sin grupo favorito, no se tiene
@bot_id El id del bot. Solo la tienen los bots
@pet_id El id de la mascota. Solo las mascotas
@pet_owner_id El dueño de la mascota. No sale en el desplegable de la ventana: elige ~pet.owner_id, que es el mismo número

Las mascotas y los caballos tienen además su propia familia de variables inteligentes: mira Inteligentes.