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 é uma tradução do original. Caso observe inconsistências em relação ao conteúdo do jogo neste idioma, por favor, nos avise para que possamos corrigir a localização.

Sumário

1. Introdução

1.1. Resumo

Habbo Avatar Figure Notation (HAFN) v2 é um padrão para notação de strings em formato de texto projetado para representar aparências de avatares do Habbo usando códigos compactos separados por pontos. Cada string codifica dados estruturados que representam partes da figura, IDs de conjunto e IDs de cor opcionais, e baseia-se nos dados expostos pelo figuredata atualmente disponível.

Embora o HAFN v2 reflita como as figuras de avatar são codificadas nas URLs do Habbo e nos sistemas de backend, ele não é uma notação oficial da Sulake, e mudanças futuras podem não ser adotadas pela Sulake.

1.2. Escopo e Objetivo

1.2.1. Este Documento

Esta especificação existe para formalizar e documentar como o Habbo codifica strings de figura de avatar para fins de renderização e personalização. Ela é:

1.2.2. A Notação

O HAFN v2 é uma representação textual da configuração do avatar que permite:

Ele NÃO inclui elementos adicionais como ações de avatar e efeitos visuais, conforme descrito na Seção 8.

1.3. Público-alvo

Este documento é voltado para desenvolvedores, arquivistas, modders e entusiastas da comunidade Habbo que trabalham com ferramentas e experiências relacionadas a avatares. Familiaridade com manipulação de strings e análise de XML (para leitura do figuredata) é recomendada.


2. Estado deste Documento

O HAFN v2.0 define a estrutura atualmente conhecida das strings de avatar do Habbo, com base no comportamento de parsing observado no Habbo Hotel e personalizável através do arquivo figuredata.

O HAFN é mantido pela comunidade. Embora corresponda aos padrões de uso atuais, a Sulake pode alterar o formato a qualquer momento. Extensões futuras buscarão preservar compatibilidade retroativa sempre que possível.


3. Linguagem Normativa

As palavras-chave “DEVE”, “NÃO DEVE”, “OBRIGATÓRIO”, “DEVERÁ”, “DEVERÁ NÃO”, “RECOMENDADO”, “PODE” e “OPCIONAL” neste documento devem ser interpretadas conforme descrito em RFC 2119.


4. Conformidade

Uma implementação é considerada compatível com o HAFN v2.0 se aderir à sintaxe, lógica de validação e regras de resolução definidas neste documento. Um implementador de parser em conformidade:

Uma string HAFN v2.0 válida DEVE:

  1. Seguir a definição de sintaxe na Seção 5.
  2. Referenciar apenas tipos de parte, IDs de conjunto e IDs de cor conhecidos definidos em figuredata.
  3. Ser totalmente validada antes do processamento para evitar configurações de avatar indefinidas ou malformadas.

5. Definição de Sintaxe

5.1. Visão Geral

Uma string HAFN v2 codifica a aparência completa de um avatar do Habbo. Consiste em múltiplas partes da figura, separadas por pontos (.). Cada parte codifica um tipo, ID de conjunto e até dois IDs de cor.

5.2. Gramática

A Forma de Backus-Naur Estendida (EBNF) a seguir define a sintaxe do 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. Restrições Lexicais

Campo Tipo Descrição
type String Um tipo de parte válido, conforme definido em figuredata
setId Inteiro Um ID de conjunto válido pertencente ao tipo de parte especificado
colorId1 Inteiro Um ID de cor primária (PODE ser obrigatório dependendo da parte)
colorId2 Inteiro Um ID de cor secundária, OPCIONAL (para partes com duas camadas)

Cada parte DEVE corresponder a uma entrada set existente no arquivo figuredata sob o <settype type="..."> correspondente.

5.4. Expressão Regular (Simplificada)

A expressão regular a seguir pode ser usada para validar a estrutura geral de uma string HAFN v2.0:

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

6. Modelo de Processamento

6.1. Partes Separadas por Ponto

Cada parte é separada por um ponto (.). O parser DEVE:

6.2. Regras de Validação

6.3. Componentes Opcionais

6.4. Tratamento de Erros

Código de Erro Descrição
ERR_UNKNOWN_TYPE type não encontrado no figuredata atual
ERR_INVALID_SETID ID de conjunto não definido para o tipo especificado
ERR_INVALID_COLOR ID de cor não válido para a paleta usada no conjunto
ERR_FORMAT_SYNTAX Delimitador - ausente, uso incorreto de delimitadores
ERR_PART_INCOMPLETE Falta ID de conjunto ou ID de cor obrigatório

Um parser compatível com HAFN DEVE rejeitar strings inválidas e relatar o erro apropriado.


7. Exemplos

7.1. Exemplo Básico

Considere a seguinte string HAFN v2.0:

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

Avatar de `alynva` em `hhus`

Explicação:

7.2. Exemplo Completo

O avatar pode ter muito mais 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` em `hhus`

Explicação:

7.3. Outros Exemplos

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


8. Elementos Adicionais

Existem outros aspectos relacionados à figura do avatar que não são cobertos por esta especificação, como itens de vestuário que usam múltiplas partes, ações do avatar (por exemplo, deitar, sentar, acenar, dançar) e efeitos visuais. Esses elementos não estão presentes na notação em si e devem ser considerados puramente informativos neste documento; eles não definem ou alteram a notação.

Abaixo estão links para fontes de dados relevantes usadas para computar ou renderizar esses elementos. Documentação adicional pode ser escrita para explicá-los em mais detalhes:


9. Extensibilidade e Trabalhos Futuros

Versões futuras PODEM incluir:

  1. Suporte para tipos de parte desconhecidos com renderização de fallback
  2. Conjuntos nomeados ou auxiliares de mapeamento para representações mais amigáveis ao usuário
  3. Uma versão comprimida ou tokenizada da string de figura para uso em URLs

Revisões da especificação DEVERÃO ser versionadas adequadamente, e a compatibilidade retroativa PODE ser mantida quando possível.


10. Considerações de Segurança

Embora o HAFN v2 seja uma notação textual e não execute código, as implementações DEVEM sanitizar e validar rigorosamente as strings de entrada para prevenir problemas como:

Importante

Strings HAFN v2 não verificam propriedade de roupas ou cores. Elas representam apenas aparência e não devem ser usadas para impor acesso ou propriedade de partes da figura.

A adesão estrita à sintaxe e às diretrizes de processamento é necessária para uma implementação segura.


11. Referências


12. Contribuidores

Este documento foi desenvolvido com contribuições de:


13. Registro de Mudanças


14. Apêndices

14.1. Apêndice A. Categorias de Partes da Figura

A tabela a seguir lista os identificadores de duas letras atualmente suportados usados para partes da figura do avatar, juntamente com seus nomes, ícones e exemplos.

Nome da Categoria Ícone da Categoria Identificador da Subcategoria ▲ Nome da Subcategoria Ícone da Subcategoria Exemplos
Parte de cima Ícone Parte de cima ca Bijuterias (acessórios superiores) Ícone Acessórios Superiores Ícone Contorno Acessórios Superiores Joias 1 Joias 2
Parte de cima Ícone Parte de cima cc Casacos Ícone Casacos Ícone Contorno Casacos Jaquetas 1 Jaquetas 2
Parte de cima Ícone Parte de cima ch Camisas Ícone Camisa Ícone Contorno Camisa Camisas 1 Camisas 2
Parte de cima Ícone Parte de cima cp Estampas Ícone Estampas Ícone Contorno Estampas Estampas 1 Estampas 2
Cabeça Ícone Cabeça ea Óculos (acessórios de rosto) Ícone Óculos Ícone Contorno Óculos Óculos 1 Óculos 2
Cabeça Ícone Cabeça fa Máscaras (acessórios faciais) Ícone Acessórios Faciais Ícone Contorno Acessórios Faciais Máscaras 1 Máscaras 2
Cabeça Ícone Cabeça ha Chapéus Ícone Chapéus Ícone Contorno Chapéus Chapéus 1 Chapéus 2
Corpo Ícone Genérico hd Rosto e Corpo Ícone Masculino Ícone Contorno Masculino Ícone Feminino Ícone Contorno Feminino Rosto e Corpo 1 Rosto e Corpo 2
Cabeça Ícone Cabeça he Acessórios Ícone Acessórios Cabeça Ícone Contorno Acessórios Cabeça Acessórios 1 Acessórios 2
Cabeça Ícone Cabeça hr Cabelos Ícone Cabelo Ícone Contorno Cabelo Cabelos 1 Cabelos 2
Parte de baixo Ícone Parte de baixo lg Calças Ícone Calças Ícone Contorno Calças Calças 1 Calças 2
Parte de baixo Ícone Parte de baixo sh Sapatos Ícone Sapatos Ícone Contorno Sapatos Sapatos 1 Sapatos 2
Parte de baixo Ícone Parte de baixo wa Cintos (acessórios inferiores) Ícone Acessórios Inferiores Ícone Contorno Acessórios Inferiores Cintos 1 Cintos 2
⬆️ Back to top

✏️ Edit this page on GitHub