Website Faviconnotations

Notations and some important data structures used in Habbo Hotel

View the Project on GitHub Habbianos/notations

Habbo Avatar Figure Notation (HAFN) v2.0

Nota

Este documento es una traducción del original. Si observas inconsistencias con el contenido del juego en este idioma, por favor, avísanos para que podamos corregir la localización.

Índice

1. Introducción

1.1. Resumen

Habbo Avatar Figure Notation (HAFN) v2 es un estándar para la notación de strings de texto diseñado para representar apariencias de avatares de Habbo usando códigos compactos separados por puntos. Cada string codifica datos estructurados que representan partes de la figura, set IDs y color IDs, y se basa en los datos expuestos por la figuredata disponible.

Aunque HAFN v2 refleja cómo se codifican las figuras de avatar en las URLs de Habbo y en los sistemas backend, no es una notación oficial de Sulake, y futuros cambios podrían no ser adoptados por Sulake.

1.2. Alcance y Objetivo

1.2.1. Este Documento

Esta especificación existe para formalizar y documentar cómo Habbo codifica strings de figura de avatar para renderización y personalización. Está dirigida a:

1.2.2. La Notación

HAFN v2 es una representación textual de la configuración del avatar que permite:

NO incluye elementos adicionales como acciones del avatar y efectos visuales, tal como se describe en la Sección 8.

1.3. Audiencia

Este documento está dirigido a desarrolladores, archivistas, modders y entusiastas de la comunidad Habbo que trabajan en herramientas y experiencias relacionadas con avatares. Se recomienda familiaridad con manipulación de strings y análisis de XML (para leer figuredata).


2. Estado de este Documento

HAFN v2.0 define la estructura actualmente conocida de strings de los avatares de Habbo, basada en el comportamiento de análisis observado en Habbo Hotel y es personalizable mediante el archivo figuredata.

HAFN es mantenido por la comunidad. Aunque coincide con los patrones de uso actuales, Sulake puede cambiar el formato en cualquier momento. Futuras extensiones intentarán preservar la retrocompatibilidad siempre que sea posible.


3. Lenguaje Normativo

Las palabras clave “DEBE”, “NO DEBE”, “OBLIGATORIO”, “DEBERÁ”, “NO DEBERÁ”, “RECOMENDADO”, “PUEDE” y “OPCIONAL” en este documento deben interpretarse según lo descrito en RFC 2119.


4. Conformidad

Una implementación se considera conforme con HAFN v2.0 si sigue la syntax, la lógica de validación y las reglas de resolución definidas en este documento. Una implementación de analizador (parser) conforme:

Una string válida de HAFN v2.0 DEBE:

  1. Seguir la definición de syntax en la Sección 5.
  2. Referenciar únicamente tipos de partes, Set IDs y color IDs conocidos, definidos en figuredata.
  3. Validar completamente antes de procesar para evitar configuraciones de avatar indefinidas o malformadas.

5. Definición de Syntax

5.1. Visión General

Una string HAFN v2 codifica la apariencia completa de un avatar de Habbo. Consiste en múltiples partes de figura, separadas por puntos (.). Cada parte codifica un tipo, un set ID y hasta dos color IDs.

5.2. Gramática

La Forma de Backus-Naur Extendida (EBNF) que sigue define el syntax de HAFN v2.0:

<figure>    ::= <part> ("." <part>)*
<part>      ::= <type> "-" <setId> [ "-" <colorId1> [ "-" <colorId2> ] ]
<type>      ::= "hr" | "hd" | "ch" | "lg" | "sh" | "ea" | "cc" | ... ; (ver figuredata)
<setId>     ::= <positiveInteger>
<colorId1>  ::= <positiveInteger>
<colorId2>  ::= <positiveInteger>

5.3. Restricciones Léxicas

Campo Tipo Descripción
type Cadena Un tipo de parte válido según figuredata
setId Entero Un set ID válido perteneciente al tipo de parte especificado
colorId1 Entero Un color ID válido primario (PODRÍA ser obligatorio según la parte)
colorId2 Entero Un color ID válido secundario, es OPCIONAL (para partes con dos capas de color)

Cada parte DEBE corresponder a una entrada set existente en figuredata bajo <settype type="...">.

5.4. Expresión Regular (Simplificada)

La siguiente expresión regular puede usarse para validar la estructura general de una string HAFN v2.0:

(?:[a-z]{2}-\d+(?:-\d+(?:-\d+)?)?)(?:\.(?:[a-z]{2}-\d+(?:-\d+(?:-\d+)?)?))*

6. Modelo de Procesamiento

6.1. Partes Separadas por Punto

Cada parte se separa con un punto (.). El parser DEBE:

6.2. Reglas de Validación

6.3. Componentes Opcionales

6.4. Manejo de Errores

Código de Error Descripción
ERR_UNKNOWN_TYPE type no encontrado en el figuredata actual
ERR_INVALID_SETID Set ID no definido para el tipo especificado
ERR_INVALID_COLOR Color ID no válido para la paleta usada en el set
ERR_FORMAT_SYNTAX Falta -, uso incorrecto de delimitadores, formato de partes inválido
ERR_PART_INCOMPLETE Falta set ID o color ID obligatorio

Un parser conforme con HAFN DEBE rechazar strings inválidas y reportar el error apropiado.


7. Ejemplos

7.1. Ejemplo Básico

Considere el siguiente ejemplo de string HAFN v2.0:

hr-890-45.hd-600-10.ch-665-1408.lg-716-1408-1408

Avatar de `alynva` en `hhus`

Explicación:

7.2. Ejemplo Completo

El avatar puede tener muchas más partes definidas:

hr-802-37.hd-180-1.ch-3030-1408.lg-3023-64.sh-3068-1408-64.ea-1403-1408.cc-3280-64-1408.cp-3284-64

Avatar de `alynva` en `hhus`

Explicación:

7.3. Otros Ejemplos

Avatar de `alynva` en `hhbr` Avatar de `SweetLiah` en `hhbr` Avatar de `GuReiPanda` en `hhbr` Avatar de `sirjonasxxx` Avatar de `matheusferraz`


8. Elementos Adicionales

Existen otros aspectos relacionados con la figura del avatar que no estan cubiertos por esta especificación, como prendas que usan múltiples partes, acciones del avatar (por ejemplo, acostarse, sentarse, saludar, bailar) y efectos visuales. Estos elementos no estan presentes en la notación en sí y deben considerarse puramente informativos en este documento; estos no definen ni alteran la notación en ningún sentido.

A continuación tienen enlaces a fuentes de datos relevantes usadas para calcular o renderizar esos elementos. En un futuro se puede redactar documentación adicional para explicarlos con más detalle:


9. Extensibilidad y Trabajos Futuros

Futuras versiones PODRÍAN incluir:

  1. Soporte para tipos de parte desconocidos con renderizado de reserva
  2. Sets nombrados o mapeadores para representaciones más amigables
  3. Una versión comprimida o tokenizada de la string de figura para su uso en URLs

Las revisiones de la especificación DEBERÁN versionarse adecuadamente, y la retrocompatibilidan DEBERÍA mantenerse mientras sea posible.


10. Consideraciones de Seguridad

Aunque HAFN v2 es una notación textual y no ejecuta código, las implementaciones DEBEN sanitizar y validar rigurosamente las input strings para prevenir:

Importante

Las strings HAFN v2 no verifican la propiedad de ropa o colores. Solo representan la apariencia y no deben usarse para imponer acceso o la propiedad de partes de la figura.

La estricta adherencia al syntax y a las directrices de procesamiento son requeridas para una implementación segura.


11. Referencias


12. Colaboradores

Este documento fue desarrollado con contribuciones de:

13. Registro de Cambios


14. Apéndices

14.1. Apéndice A. Categorías de Partes de la Figura

La siguiente tabla enumera los identificadores de dos letras actualmente soportados utilizados para las partes de la figura del avatar, junto con sus nombres, íconos y ejemplos.

Nombre de Categoría Ícono de Categoría Identificador de Subcategoría ▲ Nombre de Subcategoría Ícono de Subcategoría Ejemplos
Torso Ícono Torso ca Joyería (accesorios superiores) Ícono Accesorios Superiores Ícono Contorno Accesorios Superiores Joyería 1 Joyería 2
Torso Ícono Torso cc Abrigos Ícono Abrigos Ícono Contorno Abrigos Chaquetas 1 Chaquetas 2
Torso Ícono Torso ch Camisas Ícono Camisas Ícono Contorno Camisas Camisas 1 Camisas 2
Torso Ícono Torso cp Serigrafías Ícono Serigrafías Ícono Contorno Serigrafías Estampados 1 Estampados 2
Cabeza Ícono Cabeza ea Lentes (accesorios faciales) Ícono Lentes Ícono Contorno Lentes Gafas 1 Gafas 2
Cabeza Ícono Cabeza fa Máscaras (accesorios de cara) Ícono Accesorios de Cara Ícono Contorno Accesorios de Cara Máscaras 1 Máscaras 2
Cabeza Ícono Cabeza ha Sombreros Ícono Sombreros Ícono Contorno Sombreros Sombreros 1 Sombreros 2
Cuerpo Ícono Genérico hd Cara & Cuerpo Ícono Hombre Ícono Contorno Hombre Ícono Mujer Ícono Contorno Mujer Rostro y Cuerpo 1 Rostro y Cuerpo 2
Cabeza Ícono Cabeza he Accesorios Ícono Accesorios Cabeza Ícono Contorno Accesorios Cabeza Accesorios 1 Accesorios 2
Cabeza Ícono Cabeza hr Cabellos Ícono Cabello Ícono Contorno Cabello Cabello 1 Cabello 2
Piernas Ícono Piernas lg Pantalones Ícono Pantalones Ícono Contorno Pantalones Pantalones 1 Pantalones 2
Piernas Ícono Piernas sh Zapatos Ícono Zapatos Ícono Contorno Zapatos Zapatos 1 Zapatos 2
Piernas Ícono Piernas wa Cinturones (accesorios inferiores) Ícono Accesorios Inferiores Ícono Contorno Accesorios Inferiores Cinturones 1 Cinturones 2
⬆️ Back to top

✏️ Edit this page on GitHub