Como o mecanismo Wired funciona
Fluxo interno do WiredHandler presente neste emulador: do evento até a execução dos efeitos.
1. A pilha é definida pela posição X/Y
Quando um ativador dispara, o servidor busca as condições e os efeitos localizados nas mesmas coordenadas X/Y do ativador. É isso que forma a pilha lógica. A altura Z não é o principal vínculo usado pelo WiredHandler nessa busca.
Um evento do hotel chama
WiredHandler.handle(triggerType, ...).O handler procura os ativadores daquele tipo, aplica cooldown/permissão e chama
trigger.execute().Condições que implementam
WiredFilter são processadas antes das condições normais. Elas podem selecionar Habbos ou mobis e alimentar o contexto dos efeitos.Condições normais são avaliadas com regras AND/OR. O modificador “pelo menos uma condição” troca a regra para aceitar a pilha quando uma delas passa.
Random, Unseen, Cancel Movement, Execute In Order, Load Habbos, Movement Physics e Custom Addon podem mudar seleção, ordem ou contexto.
Os efeitos liberados são agendados considerando delay, cooldown, usuário disparador, filtros e ordem.
Deduplicação por tile
Durante o mesmo evento, o handler mantém um conjunto de tiles já disparados. Se houver mais de um ativador do mesmo tipo no mesmo X/Y, a pilha pode ser processada apenas uma vez naquele ciclo.
Condições AND/OR
Condições com operador OR são agrupadas por tipo; uma correspondência daquele tipo pode satisfazer o grupo. As condições AND precisam passar individualmente, salvo interferência de plugin/evento.
Filtros primeiro
Os filtros são ordenados por ID e executados antes das condições normais. Se um filtro falha ou termina sem contexto válido, a pilha para.
Random / Unseen
Os efeitos executáveis são separados dos modificadores. Random embaralha a lista e escolhe um; Unseen usa seu extra para alternar/selecionar o efeito correspondente.
Execute In Order
Quando o modificador está presente, os efeitos são ordenados por ID. O intervalo padrão observado é de 40 ms, salvo ajuste de Animation Time.
Movement Physics
Ativa execução sequenciada com passo padrão de 120 ms; o Wired Animation Time pode substituir esse intervalo.
Contexto de usuários e mobis
Na hora de executar os efeitos, o handler monta a lista de RoomUnit e os itens filtrados. A prioridade observada é: filtro de Habbos → Load Habbos → usuário que disparou → Custom Addon → contexto sem usuário.
Quando há filtro de mobis, cada item filtrado é anexado ao array stuff recebido pelo efeito. Se um filtro de Habbos ou de mobis terminar vazio, nenhum efeito é executado.
Delay, cooldown e execução
Cada efeito é agendado com (delay × 500 ms) + atraso extra. Antes de agendar, o servidor verifica cooldown/permissão. Se o efeito exigir usuário disparador e não houver RoomUnit, ele é bloqueado. A execução acontece na thread do emulador e é registrada pelo profiler/trace.
Plugins podem interromper o fluxo
O mecanismo dispara eventos como WiredStackTriggeredEvent, WiredConditionFailedEvent e WiredStackExecutedEvent. Plugins podem cancelar etapas, portanto uma pilha aparentemente correta ainda pode ser interrompida por lógica externa.
Como diagnosticar no hotel
O source analisado possui o sistema WiredTraceManager. Para observar uma pilha real:
O monitor consegue mostrar ativador recebido, filtros, condição que falhou, pilha liberada, efeito agendado, efeito bloqueado, retorno false e exceções.