Post Top Ad

17/05/2024

Por (missing text) em 17/05/2024 -
Nova configuração habilitada em Wireds: as Variáveis Internas!

Novidade em Wireds: as Variáveis Internas foram habilitadas nos wireds que foram lançados recentemente. Agora você pode, por exemplo, checa...


Novidade em Wireds: as Variáveis Internas foram habilitadas nos wireds que foram lançados recentemente. Agora você pode, por exemplo, checar o nível de um usuário e baseado nessa informação "detectar" se ele é fake!

Já imaginou inspecionar os Wireds em quartos que não tem grupos? Uma publicação no Discord The Wired Faculty dá spoiler que isso já é possível (e que deve ser liberada pro público em breve)!








Esse foi o resumo da matéria! Você pode conferir um pouco mais sobre as variáveis internas e a "inspeção de wireds" em quartos sem grupo logo a seguir:


Variáveis Interna - Introdução


As Variáveis Wired não se limitam apenas às variáveis criadas pelo usuário. O ambiente também pode criar variáveis. Atualmente existe um tipo de variáveis como essa: Variáveis internas!

Variáveis internas formam uma porta de entrada entre o Wired e todos os sistemas internos que o Habbo usa para mobis, usuários, quartos e execuções de Wireds (variáveis de contexto, falaremos mais sobre isso mais tarde). Algumas das variáveis internas possuem alguns “artefatos técnicos” porque o Habbo é um jogo antigo!

Além de detalhes técnicos, eles também são poderosos para uso em jogos Wired. Os Wireds agora podem acessar 61 variáveis internas no total, recursos que anteriormente exigiriam a adição de novas condições wired, etc. Variáveis internas são realmente equivalentes a muitos lotes wired combinados em um!


Para usar variáveis internas, clique no botão "... mostrar variáveis internas" dentro do seletor de Variáveis. Assim como em todos os lugares, serão mostradas todas as variáveis que podem ser aplicadas ​​ao Wired selecionado!


Por exemplo, no "CONDIÇÃO Wired: Tem Variável", você verá apenas as variáveis que são opcionais. Se um usuário sempre tiver uma variável (exemplo: nível de usuário), você não poderá verificar sua existência.


Outro exemplo, em "Efeito WIRED: Mudar Valor Variável", você só pode ver variáveis internas que possuem um valor e são editáveis. A maioria das variáveis internas são apenas para leitura!


Agora você pode, por exemplo, checar o nível de um usuário, e baseado nessa informação, detectar se ele é fake!








Logo a seguir você pode conferir informações sobre todas variáveis internas que estão disponíveis no momento. Segundo publicação no Discord The Wired Faculty, essa lista vai expandir ainda mais no futuro!


Variáveis Interna - Visão geral


 Variáveis Interna - Mobis

@id *
@class_id  *
@height          (multiplicado por 100 porque Wired não tem decimais)
@state           Cada mobi pode ter seu próprio sistema de uso de estados. Um piso colorido tem 7. 0=azul claro, 1=amarelo, 2=laranja, etc. Você pode ler/escrever um novo valor)
@position_x      *
@position_y      *
@rotation        (o valor conta para cima a partir de 0. Se um mobi tiver 2 rotações, os valores válidos são 0 e 1)
@altitude        * (altura do mobi - também multiplicado por 100)
@is_invisible    (está invisível)
@type            (0=Normal, 1=Clube do Arquiteto)
@is_stackable            (É empilhável)
@can_stand_on          (Pode subir no mobi)
@can_sit_on          (Pode sentar no mobi)
@can_lay_on          (Pode deitar no mobi)
@owner_id        (ID do usuário do proprietário do mobi. Os mobis do C.A. sempre pertencem ao proprietário do quarto)
@wallitem_offset * 

 Variáveis Interna - Usuários

@index                 *
@type                         (1=Usuário, 2=Mascote, 3=Antigos bots - ignore isso, 4=Bot)
@gender                     (-1=Desconhecido, 0=Masculino, 1=Feminino)
@level                         (Nível do usuário)
@achievement_score  (Pontos de Conquista do usuário)
@is_hc                         (É HC)
@has_rights                  (Tem direitos no quarto)
@is_group_admin       (É administrador do grupo)
@is_owner                  (É dono do quarto)
@position_x            *
@position_y            *
@direction             *
@altitude              * (também multiplicado por 100)
@handitem_id         (ID do handitem que está usando)
@effect_id               (ID do efeito que está usando)
@is_frozen               (está congelado)
@is_muted               (está mutado)
@favourite_group_id     (ID do grupo favoritado)
@dance                 (0=Hap-Hop, 1=Pogo Mogo, 2=Duck Funk, 3=Rollie)
@sign                  (0=placa 0, 1= placa 1, .., 11= placa coração, 12= placa caveira, ..)
@is_idle               (está ausente)
@user_id               *
@pet_id                *
@bot_id                *
@pet_owner_id      (ID do dono do mascote)

 Variáveis Internal - Global

@furni_count    (quantidade total de mobis no quarto)
@user_count     (quantidade total de usuários no quarto)
@wired_timer    (quantidade de pulsos - acontece a cada 0,5s - desde a inicialização do quarto ou reinicialização do temporizador)
@team_red_score    (placar total do time vermelho)
@team_green_score    (placar total do time verde)
@team_blue_score    (placar total do time azul)
@team_yellow_score    (placar total do time amarelo)
@team_red_size    (número de membros na equipe vermelha)
@team_green_size    (número de membros na equipe verde)
@team_blue_size    (número de membros na equipe azul)
@team_yellow_size    (número de membros na equipe amarelo)
@room_id    (ID do quarto)
@group_id    (ID do grupo)

 Variáveis Internas - Contexto

@selector_furni_count
@selector_user_count
@signal_furni_count
@signal_furni_count
@antenna_id              ("ATIVADOR WIRED: Recebe Sinal")
@chat_type               (0=Falar, 1=Gritar, 2=Sussurrar)
@chat_style               (Balão de Fala)

Outras informações sobre as Variáveis Internas:

O tempo de última modificação/criação não são suportados para variáveis internas, portanto, a "CONDIÇÃO Wired: Idade Variável" não pode usá-los. A mesma coisa para o "ATIVADOR Wired: Variável Mudou":


Ao alterar uma variável interna, ele usará os sistemas Wired existentes para alterar essa variável. Por exemplo, aumentar a variável @position_x de um mobi com 1 é idêntico a executar o "Efeito WIRED: Mover e Rotacionar Mobis" que é configurado para mover um quadrado. Isso significa que os complementos de movimento também funcionarão.

No GIF abaixo vamos movimentar o mobi e depois aumentar a sua altura em 1.0 (que configuramos como 100 no Wired) a cada clique!








A lista de todas as variáveis internas, com suas respectivas propriedades (tem um valor? você pode alterar ela? etc) será disponibilizada no jogo quando a última parte das variáveis for lançada!


Variáveis Internas - Sistema de Posição


A partir daqui você pode conferir informações detalhadas sobre algumas Variáveis Internas, lembrando que todo conteúdo citado aqui está disponível no Discord "The Wired Faculty" do sirjonasxx.

O que é @position_x e y, precisamos disso? Como usamos alturas e direções?

- Posicionamento

Cada quarto do Habbo é uma grade que pode ter no máximo 64 quadrados de largura e altura.

Para entender esta postagem, você precisa saber o que são os eixos X e Y e como funciona um sistema de coordenadas que usa esses 2. Se você não tem experiência com isso, confira este vídeo do Youtube:


Cada posição no quarto tem suas próprias coordenadas X e Y exclusivas. Ao mover-se junto com a parede do lado direito, a posição X do seu usuário aumentará. Ao mover-se junto com a parede esquerda, a posição Y do seu usuário aumentará (na direção das setas da imagem abaixo)!


Cada usuário e mobi possui as seguintes 2 variáveis: @position_x e @position_y, elas informam a sua coordenada atual.

Você também pode alterar essas variáveis, vou mostrar o que acontece quando você aumenta a posição Y em 1 a cada 0,5 segundos:


Em um sistema de coordenadas normal como este, você pode assumir com segurança que as coordenadas começam na posição 0,0. Isso também é verdade no Habbo, mas praticamente sempre há uma compensação. Você pode verificar fazendo o seguinte:

1. Abra o editor de chão com o comando :floor
2. Clique em Importar/Exportar

Você pode notar que o bloco superior da sala pode não começar nas posições mínimas esperadas. No meu caso, o bloco superior na verdade tem a posição x=4, y=1


Agora esqueça tudo que eu te falei, porque você nunca deve usar posições fixas em Wireds! Eu só queria passar essas informações, pois podem ser úteis ao depurar sua configuração posteriormente.

Então, o que você pode fazer se quiser mover um mobi para a terceira coluna da grade do Habbo?

Coloque um mobi (pode ser invisível) na terceira coluna. Agora, em vez de mover todos os mobis do quarto para uma posição x escrita manualmente, consulte os mobis colocados!


Será mais fácil ver na prática:


Isso também teria funcionado se eu não tivesse usado um mobi de referência e apenas preenchido "6" (x=4 era a primeira coluna, +2 para ir para a terceira coluna) no campo de texto.

No entanto, preciso avisá-lo com antecedência que não é garantido que o sistema de posicionamento permaneça o mesmo após modificações no Editor de Chão no quarto. Portanto, uma coluna que atualmente é x=5 pode se tornar x=7 após você atualizar seu Editor de Chão. É uma boa prática e mais fácil de conectar se você usar mobis de referência. Também torna mais fácil realocar partes do seu quarto!

- Altura

Felizmente, as altura não são tão difíceis quanto as coordenadas. Todos vocês já brincaram com a Lajota Pilha Mágica, que exibe a altura atual de um mobi.

Na imagem abaixo, a altura atual é 1,5. No Wired você não pode usar valores decimais, então o Wired pensa nesse número como 150. Ele é simplesmente multiplicado por 100!


Vou definir o valor através de sua variável interna para que você possa ver isso na prática:


- Direção

Todos os usuários possuem a variável interna @direction, e são igualmente fáceis de trabalhar. Cada direção para a qual o usuário está voltado pode ser representada por um número de 0 a 7 (mostrado na imagem abaixo), e também podemos alterar esse valor através de wireds.









Variáveis Internas - Mobis/usuários de referência e identificadores


Outro grande ganho das variáveis internas é que elas podem ser utilizadas para identificar mobis/usuários dentro dos valores das variáveis, utilizando seu identificador. Podemos então converter esse id de volta para o mobi/usuário real através dos Seletores Wireds. Isto pode parecer complexo e desnecessário à primeira vista, até que você precise!

É tão útil que queria dedicar um post a ele.


Caso de uso e referências

Para começar, vamos expor primeiro o caso de uso.

Tentarei manter isso muito simples e não entrar em detalhes. A ideia é que quando um usuário entra no jogo, ele receba um Piso Andar Mágico e um Bloco Invisível, você pode ver no vídeo o motivo disso ser necessário.

Você notará que este jogo em específico já era possível antes das variáveis, mas severamente limitado em funcionalidades (só podia ter um jogador, se você quisesse estar seguro de bugs). Isso não é mais restrição!


Como um usuário só pode ter um Piso Andar Mágico e um Bloco Invisível, criei 2 novas Variáveis de Usuário que serão atribuídas a cada jogador. Referem-se à variável interna @id dos 2 mobis!

A cada 0,5s, usamos seletores para encontrar o Piso Andar Mágico e o Bloco Invisível de cada jogador e movê-los para seu novo local.

 
 

Mas os jogadores também estão coletando pisos de anel, e não podemos usar uma variável de usuário aqui, pois um jogador pode conter uma quantidade (virtualmente) infinita de pisos de anel.

Em vez disso, darei uma Variável de Mobi chamada plate_to_user_index ao piso de anel, que fará referência ao usuário. Para selecionar os pisos de anel que pertencem a um usuário agora, selecionamos todos os mobis que possuem a variável plate_to_user_index onde o índice corresponde à variável interna @index do jogador.
 
Também estamos atualizando a posição deles a cada 0,5s, para que eles sigam o usuário!

Observe que estou usando @index e não @user_id. Eu poderia ter usado @user_id também, explicarei na próxima seção qual é a diferença entre os dois.

 

- Identificadores de usuário

Aqui está uma lista de todos os diferentes identificadores que um usuário possui:

* @index
* @user_id
* @pet_id
* @bot_id

Devo começar observando que os três últimos dessa lista são opcionais. Se o usuário for um usuário, terá um @user_id. Se o usuário for um mascote terá um @pet_id, e o mesmo vale para bots com @bot_id.

Esses 3 identificadores são únicos em todo o Habbo. Nenhum outro usuário existe com o mesmo @user_id que você, então eles são perfeitos para acompanhar um usuário específico por um longo período de tempo.

Observe que pode haver um bot que tenha um @bot_id idêntico ao @user_id de um usuário. Por exemplo, pode haver um bot 1000 e um usuário 1000. A mesma coincidência pode acontecer com mascotes. Então, se você tem um jogo onde todos esses tipos de usuários podem jogar, você deveria usar um método de identificação diferente!

Para nossa sorte, todos os bots, mascotes e usuários no quarto mostrado anteriormente compartilham um sistema comum diferente de identificação usando a indexação do quarto. O primeiro usuário/bot/mascote a entrar no quarto receberá a @index com valor 0. O segundo receberá 1, e assim por diante...

Isso significa que não há existe chance de haver colisões entre bots, pets e usuários se você usar o identificador @index. No jogo que acabei de mostrar, mascotes e bots também devem poder jogar. Se um usuário entrar novamente no quarto, ele receberá um novo índice!

Tenha cuidado para nunca armazenar um @index em uma variável permanente! Porque na próxima vez que o quarto for ativado, os índices serão reiniciados a partir de 0, e um @index anterior que não tem mais significado pode potencialmente quebrar o seu jogo.

- Identificadores de Mobis

(isso é realmente técnico e você pode pular isso, resumo: a variável interna de mobi @id é segura para uso)

As coisas são um pouco mais fáceis para os mobis, o que não é evidente, pois existem 2 tipos de itens que usam identificações diferentes (itens de parede e itens de chão).

Além disso, os itens normais e os itens do Clube do Arquiteto funcionam de maneira diferente nos bastidores. Também não existe um sistema de indexação personalizado como os usuários têm.

Mas você não precisa se preocupar com isso! Todos os valores @id dos mobis de um quarto são únicos e nunca podem coincidir.

- Itens de chão usam identificadores positivos (acima de 0)
- Itens de parede usam identificadores negativos (abaixo de 0)
- O primeiro mobi normal, que não é do Clube do Arquiteto, no Habbo começa no id 1 e conta para cima. Os identificadores de mobis normais são únicos no jogo
- Os IDs dos mobis do Clube do Arquiteto são únicos por quarto, mas não em todo o jogo e começam com a ID 2147418112 (por quarto), sempre contando para cima.

Isso também significa que, assim que 2147418112 mobis normais existirem no jogo, os IDs dos mobis do Clube do Arquiteto serão alterados para uma faixa de ID diferente. Por esse motivo, você nunca deve escrever manualmente ids de mobis em Variáveis Wireds. Assim como você não deve escrever manualmente as posições X/Y!

Além disso, os mobis também possuem uma variável @class_id. Esta variável identifica exclusivamente o código do mobi. Por exemplo, um pato de borracha terá o mesmo @class_id que outro pato de borracha. Os itens da parede usarão, novamente, identificadores abaixo de 0 para que nunca colidam. Você também não deve escrevê-los manualmente, eles não são iguais em todos hotéis e não posso garantir que permanecerão os mesmos ao longo do tempo.


Configurações Wired de "código aberto"


Você pode visitar o quarto citado abaixo no Habbo.com (Hotel Inglês) com o comando :roomid 79586111 se quiser inspecionar os Wireds! Todos no quarto podem clicar duas vezes em um Wired para inspecionar suas configurações!

Proprietário: supersirjonasxx
Comando para ir para o quarto: :roomid 79586111 (no Habbo.com)


Observe que esta não é um quarto para tutoriais, é apenas um quarto que você pode inspecionar os wireds se estiver interessado! Considere estas configurações wired de "código aberto"









Variáveis Wired - Variável para itens de parede


Quando eu disse que algumas das Variáveis Internas têm alguns "artefatos técnicos" porque o Habbo é um jogo antigo, alguém começou a fugir o mais rápido que pôde. Não se preocupe, eu o levei sob custódia!

Estamos falando de um criminoso entre variáveis internas - @wallitem_offset. Por que? Você descobrirá daqui a pouco neste post!


Mas primeiro, vamos fazer uma breve recapitulação da integração existente de itens de parede em Wireds:

Todas os Wireds que existem atualmente para mobis, onde é possível suportar itens de parede, agora funcionam com itens de parede. Você pode ver como todos os tipos de movimentos resultam exatamente na mesma mudança visual:


No entanto, estamos esquecendo uma coisa importante! Existe algo chamado deslocamento de item de parede (wall item offset). O deslocamento do item de parede é a posição do item de parede dentro de um único quadrado.

Na imagem, a bandeira está na metade do quadrado (o centro do item da parede/ponto azul é a referência)

 

E certamente, isso funciona! Agora podemos manipular esse valor através da variável interna @wallitem_offset. Então, por que exatamente essa variável é criminosa?


Vamos perguntar ao homem em questão. Marquei uma entrevista exclusiva com ninguém menos que... o próprio @wall_item_offset!

Olá sr. deslocamento de item de parede
Olá senhor.. por que você está me chamando de criminoso? Tenho uma reputação a defender entre os meus colegas

Silêncio, vou fazer as perguntas. Mas antes de mais nada, parabéns por ser a única Variável Interna exclusiva para itens de parede 🎉! Como você está se sentindo?
Obrigado. Eu sou muito especial mesmo. É por isso que tenho uma reputação a defender

Ok, chega de falar sobre sua reputação. Você está aqui porque cometeu um crime
Começa a suar.. do que você está falando?

Tenho uma pergunta simples, você poderia me dizer qual é o valor máximo de offset? Em outras palavras; qual é o seu alcance?
Essa é fácil! Normalmente meu intervalo é de 0 a 16. Isso significa que se você me definir como 0, estarei na posição mais à esquerda do bloco. Se você me definir como 16, estarei mais a direita. Divirta-se 🙂

Uau, você é muito cooperativo para um criminoso... Espere, você acabou de dizer "normalmente"?
*foge*

Você não pode fugir de mim, eu tenho Teleportes Banzai
😭

Não chore, as variáveis não têm emoções. Voltando ao assunto. O que você quer dizer com normalmente?
Às vezes meu alcance é de 0-32

Geralmente seu intervalo é de 0 a 16, mas às vezes é de 0 a 32? Isso é trágico.
Sim, prometo que não foi minha culpa. Na verdade, é por isso que às vezes é tão difícil alinhar os pôsteres em um quarto... os pôsteres saltam 2 pixels na maioria dos quartos (intervalo de 0 a 16), então é impossível alinhá-los, pois eles inevitavelmente saltarão um pixel para esquerda ou direita metade do tempo!

Em outros quartos, eles saltam por 1 pixel (faixa 0-32)

Mistério descoberto! Bem, eu disse que você era um criminoso. Então, como os incríveis programadores de Wireds saberão qual deles se aplica em seus quartos? E como eles podem controlar isso? Eu não vi uma configuração no quarto para isso
Tudo bem, vou compartilhar essa informação sagrada com você, mas só porque você é meu chefe 😠
Em quartos pequenos, o intervalo é de 0 a 32, o que significa que você pode mover itens de parede com precisão de pixels. Em quartos grandes, o intervalo é de 0 a 16 e se moverá por 2 pixels.

Tudo bem, mas e se as pessoas quiserem precisão de pixels em um quarto grande?
Simples! O sistema analisa apenas o tamanho da sua sala no momento da criação do quarto. Portanto, se seu quarto foi criado como um quarto pequeno e você a atualizar com o comando :floor para transformá-la em um quarto grande, você obterá precisão de pixels!

Incrível! E interessante... Posso fazer algumas perguntas adicionais?
Sim

Eu poderia, como desenvolvedor do Habbo, mudar o sistema para que todas os quartos usem a precisão de pixels? Porque esse sistema é... uma bobba
Sim

Isso quebraria todos os quartos existentes?
Sim

Então eu provavelmente não deveria fazer isso?
Sim

Em vez disso, devo comunicar essa falha à comunidade wired usando uma entrevista falsa excessivamente irônica?
Sim

Você está apenas dizendo sim o tempo todo?
Não, é que você está sempre certo, senhor sirjonasxx 🙂

Uau, obrigado

Tchau
Até logo

Achei muito engraçado como a localização dos itens de parede funciona atualmente. Na maior parte, consegui esconder todas as peculiaridades subjacentes da Wired, mas esse problema de deslocamento é um problema que não consigo resolver. Essa inconsistência é resultado de como funcionava o antigo Habbo, onde quartos grandes só podiam ser visualizadas em modo reduzido (sem zoom).
 
A publicação em estilo de entrevista é uma homenagem a esta antiga entrevista sobre Plantas Monstro que encontrei há alguns meses (leitura divertida se você estiver interessado): https://habboblogging.wordpress.com/2012/05/24/monster-plant-interview/


Servidor de Wireds no Discord


Momento #publi: Você sabia que existe um servidor no Discord dedicado a Wireds? Você pode conversar e tirar dúvidas com membros do Wired Team, fazer sugestões de novos wireds e mobis úteis para jogos e muito mais!

Para entrar no servidor acesse o link: https://discord.gg/habbowired!








Já experimentou as novas configurações? Avalie ou comente:


Comentários:



Post Top Ad

Your Ad Spot

Páginas


Habbo News

Estrelas do nosso portal de notícias!

Vire uma ⭐ do site participando de nossas atividades ou interagindo em nossas notícias diárias através dos comentários.
Um dia você irá brilhar por aqui!


Fã Site OFICIAL!

Copyrights © - Fã Site 2012~2024 Habbo News - Todos os direitos reservados. - Esta Fã Site não está afiliada com, patrocinada por, apoiada por, ou principalmente aprovada pela Sulake Oy ou suas empresas Afiliadas. Esta Fã Site pode utilizar as marcas registradas e outras propriedades intelectuais do Habbo, que estão permitidas sob a Política de Fã Sites Habbo.