Como resolver personagem preso em mapa no MU Online (travado em colisão ou zona bugada)
Aprenda a diagnosticar e resolver o problema clássico do jogador preso em um mapa do MU Online, seja por colisão bugada, teleporte mal configurado ou dessincronia de posição, usando comandos de GM e ajustes de servidor.
Poucos tickets de suporte são tão recorrentes em um servidor de MU Online quanto o clássico "meu personagem ficou preso no mapa e não consigo me mover". O jogador reporta estar travado em um canto, dentro de uma parede, em cima de um obstáculo, ou em uma zona de teleporte que não completa a transiçã
Poucos tickets de suporte são tão recorrentes em um servidor de MU Online quanto o clássico "meu personagem ficou preso no mapa e não consigo me mover". O jogador reporta estar travado em um canto, dentro de uma parede, em cima de um obstáculo, ou em uma zona de teleporte que não completa a transição. Esse tipo de bug pode ter várias causas — desde colisão mal calibrada no arquivo do mapa até dessincronia entre cliente e servidor — e o atendimento errado (como pedir para o jogador reinstalar o cliente) só atrasa a solução. Este tutorial ensina o fluxo de diagnóstico e resolução que qualquer GM ou administrador de suporte deveria seguir, dos comandos rápidos in-game até a correção estrutural do mapa.
Por que o personagem trava no mapa
O MU Online usa uma malha de colisão (arquivo .att, "attribute map") sobreposta ao terreno de cada mapa, que define quais células são caminháveis e quais são bloqueadas. Quando o personagem entra em uma célula que deveria ser bloqueada mas foi permitida por erro de configuração — ou quando um evento/objeto dinâmico altera temporariamente a colisão sem reverter corretamente — o cliente calcula uma posição que o servidor rejeita nos movimentos seguintes, prendendo o personagem visualmente. Outra causa comum é falha em teleportes de mapa (portais, eventos como Devil Square ou Blood Castle) que não completam a mudança de mapa no servidor, deixando o personagem em um estado limbo.
Classificando o tipo de travamento
Antes de agir, identifique em qual categoria o caso se encaixa — o tratamento é diferente para cada uma:
| Tipo de travamento | Sintoma relatado pelo jogador | Ação recomendada |
|---|---|---|
| Colisão de terreno | "Não saio do lugar, tentei todas as direções" | Teleporte de GM para coordenada segura |
| Zona de portal incompleta | "Entrei no portal e travei no carregamento" | Forçar reconexão + reposicionar no mapa de origem |
| Evento/instância travada | "Fiquei preso na sala do Devil Square" | Finalizar instância manualmente pelo comando de evento |
| Objeto dinâmico bloqueando | "Fiquei preso perto de um NPC/monstro de evento" | Reset do objeto ou reinício da rotina de spawn |
| Dessincronia cliente-servidor | "No meu jogo pareço andar, mas fico no mesmo lugar pros outros" | Forçar desconexão e reconexão do cliente |
Passo 1 — Confirmar o relato antes de agir
Peça ao jogador para informar: nome do personagem, mapa atual (visível no canto da UI) e, se possível, coordenadas aproximadas (algumas UIs mostram X/Y). Confirme também se outros jogadores próximos enxergam o personagem parado ou se ele "sumiu" da visão de todos — isso já ajuda a diferenciar colisão de dessincronia de rede.
Passo 2 — Localizar o personagem via comando de GM
A maioria dos emuladores (IGCN, MuEMU, X-Team) oferece comandos administrativos para localizar e inspecionar jogadores. Exemplos comuns:
/where <nome_do_personagem>
/whois <nome_do_personagem>
Esses comandos retornam mapa atual e coordenadas X/Y reais no servidor — que podem divergir do que o cliente do jogador está mostrando, revelando de imediato se o caso é dessincronia.
Passo 3 — Teleportar o personagem para um ponto seguro
O comando de movimentação de GM reposiciona o personagem ignorando a colisão problemática. Use coordenadas conhecidas e seguras (geralmente a entrada de cada mapa):
/move <nome_do_personagem> <mapa> <x> <y>
Exemplo prático: se o jogador travou em Devias em uma coordenada de colisão bugada, mova-o para a entrada padrão do mapa:
/move Fulano Devias 123 123
Evite reposicionar para coordenadas aleatórias — prefira sempre pontos de spawn/entrada já validados, para não trocar um bug por outro (como cair dentro de outra colisão).
Passo 4 — Lidar com travamentos em eventos e instâncias
Eventos como Devil Square, Blood Castle, Chaos Castle e Illusion Temple rodam em instâncias próprias, e um travamento ali costuma exigir finalizar a instância do jogador em vez de só mover a posição. A maioria dos emuladores tem um comando específico para forçar a saída do evento:
/eventclose <nome_do_personagem>
/warp <nome_do_personagem> lorencia
Depois de encerrar a instância, confirme que o cooldown de entrada no evento não ficou bloqueado incorretamente — outro efeito colateral comum desse tipo de bug.
Passo 5 — Corrigindo dessincronia cliente-servidor
Quando o comando /where mostra uma posição diferente da que o jogador enxerga na tela, o problema é de sincronização, não de colisão. A solução mais confiável é forçar a desconexão do personagem (kick) para obrigar uma nova autenticação e resync completo de estado:
/kick <nome_do_personagem>
Oriente o jogador a fechar o cliente completamente (não só reconectar pela tela de login) antes de entrar de novo, evitando que o cliente reutilize dados de posição em cache.
Passo 6 — Registrando o incidente para análise estrutural
Todo travamento resolvido manualmente deveria ser registrado — mapa, coordenadas aproximadas, tipo de evento envolvido — em uma planilha ou sistema de tickets interno. Se o mesmo ponto do mapa aparece repetidas vezes, o problema é estrutural (erro na malha .att) e precisa ser corrigido na origem, não apenas contornado a cada novo ticket.
| Frequência do ticket no mesmo ponto | Interpretação | Ação de longo prazo |
|---|---|---|
| 1 caso isolado | Evento pontual ou lag momentâneo | Nenhuma ação estrutural necessária |
| 2-4 casos na mesma região | Possível erro pequeno de colisão | Marcar região para revisão no editor de mapas |
| 5+ casos recorrentes | Erro confirmado na malha .att | Priorizar correção no arquivo de colisão do mapa |
Passo 7 — Corrigindo a malha de colisão na origem
Para corrigir definitivamente uma célula de colisão bugada, é necessário abrir o arquivo de atributos do mapa (EncTerrainX.att ou equivalente, dependendo do emulador) em uma ferramenta de edição de mapas da comunidade, localizar a célula problemática pelas coordenadas coletadas no passo anterior, e ajustar o valor de colisão daquela célula específica. Sempre trabalhe em uma cópia e teste em ambiente de homologação antes de publicar a correção no servidor de produção — um erro de edição pode bloquear uma rota inteira do mapa sem querer.
Passo 8 — Prevenindo tickets futuros com ferramentas para o jogador
Reduza a carga de suporte oferecendo uma saída self-service para o jogador comum, sem depender de GM disponível 24/7. As opções mais usadas pela comunidade são:
| Ferramenta | Como funciona | Cuidado necessário |
|---|---|---|
Comando /move2town (auto-retorno à vila) | Jogador comum pode se teleportar à vila com cooldown | Definir cooldown alto (5-10 min) para evitar abuso como fuga de PK |
| Item de "Pergaminho de Retorno" | Item consumível que teleporta à vila | Vender na loja ou dropar, criando incentivo de uso |
| Auto-desconexão por inatividade prolongada em posição idêntica | Servidor detecta e força resync automático | Requer suporte do emulador; nem todos têm essa função nativa |
Erros comuns e soluções
| Sintoma | Causa provável | Solução |
|---|---|---|
Jogador preso mesmo após /move | Coordenada de destino também está em colisão bugada | Usar ponto de spawn oficial validado do mapa |
/where não retorna nada | Personagem offline ou nome digitado errado | Confirmar grafia exata do nome com o jogador |
| Travamento recorrente no mesmo evento | Instância não finalizada corretamente | Usar /eventclose e revisar timeout da instância |
| Jogador volta a travar após reconectar | Cache do cliente com posição antiga | Orientar fechamento completo do cliente antes de reabrir |
| Vários jogadores travando ao mesmo tempo | Corrupção de estado do mapa em memória | Considerar reinício controlado do GameServer |
| Ticket recorrente na mesma coordenada | Erro estrutural na malha .att | Editar o arquivo de colisão do mapa na origem |
Checklist de atendimento a personagem preso
- Coletei nome do personagem, mapa e contexto (evento, portal, terreno comum).
- Confirmei a posição real via
/whereou/whois. - Identifiquei se é colisão, evento travado ou dessincronia.
- Apliquei
/movepara uma coordenada de spawn validada. - Se envolvia evento, finalizei a instância com o comando adequado.
- Registrei o incidente (mapa/coordenadas) para análise de recorrência.
- Avaliei se o ponto exige correção na malha de colisão do mapa.
- Verifiquei se ferramentas self-service (retorno à vila) estão disponíveis para reduzir tickets futuros.
Com o fluxo de atendimento organizado, o próximo passo é revisar a configuração geral dos seus mapas e eventos para reduzir a origem desses bugs — consulte o tutorial de criação de servidor para revisar toda a base da sua instalação.
Perguntas frequentes
O comando de teleporte do GM sempre resolve o personagem preso?
Na maioria dos casos sim, porque ele reposiciona o personagem em coordenadas válidas conhecidas, ignorando a colisão do ponto onde ele travou. Mas se a causa for dessincronia entre cliente e servidor (o cliente mostra uma posição que o servidor não reconhece), pode ser necessário também forçar reconexão do jogador.
Por que alguns jogadores ficam presos sempre no mesmo lugar do mapa?
Isso indica um problema estrutural: um bug de colisão no arquivo do mapa (.att) que persiste até ser corrigido pelo desenvolvedor. Se o suporte recebe tickets repetidos para as mesmas coordenadas, vale registrar e corrigir a malha de colisão em vez de só teleportar cada jogador manualmente.
Preciso reiniciar o GameServer para resolver um personagem preso?
Normalmente não. O comando de move/teleporte do GM resolve o caso individual sem precisar de reinício. Reinicie o servidor apenas se muitos jogadores estiverem travando ao mesmo tempo, o que sugere corrupção de estado do mapa em memória.
Existe forma de o próprio jogador se destravar sem chamar suporte?
Sim, muitos servidores configuram um comando de auto-move (tipo /move ou um item de retorno a vila) disponível para jogadores comuns, com cooldown, exatamente para reduzir tickets desse tipo. Vale considerar implementar se o problema for recorrente.
Como diferencio 'preso de verdade' de lag do jogador?
Peça para o jogador tentar se mover em várias direções e observar se a posição no mapa do cliente muda. Se o personagem realmente não sai do lugar mesmo com o servidor respondendo (ping normal, outros jogadores visíveis se movendo), é travamento real; se tudo trava, é lag/desconexão.