Como Configurar Invasões Customizadas no Servidor de MU Online
Aprenda a configurar invasões customizadas de bosses no seu servidor MU Online, com SQL, arquivos .ini e agendamento de horários.
Invasões customizadas são um dos recursos mais impactantes para manter jogadores engajados em servidores privados de MU Online. Configurar corretamente o agendamento, os mapas de spawn e os atributos dos bosses exige editar tanto arquivos de configuração do GameServer quanto tabelas do banco de dado
Introdução
Invasões customizadas são um dos recursos mais impactantes para manter jogadores engajados em servidores privados de MU Online. Configurar corretamente o agendamento, os mapas de spawn e os atributos dos bosses exige editar tanto arquivos de configuração do GameServer quanto tabelas do banco de dados SQL Server.
Este guia cobre a configuração completa em servidores Season 6 Episode 3 (o mais comum em privados), com notas para outras seasons onde o comportamento difere.
Passo 1: Entender a Estrutura de Invasões no MuServer
O sistema de invasões do MuServer opera em duas camadas:
- Arquivos de configuração — definem quais monstros existem, seus atributos e posições de spawn base
- Banco de dados — define os horários, habilitação e parâmetros dinâmicos da invasão
Os arquivos relevantes estão em:
GameServer/
└── Data/
├── Monster.txt ← atributos dos monstros (HP, dano, nível)
├── MonsterSpawn.txt ← posições de spawn fixas
└── BossInvasion.ini ← configuração de invasões por evento (Season 6+)
No banco de dados MuOnline, as tabelas principais são:
T_AttackEvent -- horários e configurações de invasão
T_MonsterAI -- comportamento dos monstros durante invasão
EventSchedule -- (algumas versões) agendamento global de eventos
Passo 2: Definir o Monstro da Invasão no Monster.txt
Abra GameServer/Data/Monster.txt e localize ou crie uma entrada para o boss customizado. O formato de cada linha é:
// Index / Name / Level / HP / MP / Atk / Def / MoveSpeed / AtkSpeed / AtkRange / ViewRange / MoveRange / Regen / MaxItemDrop / Money / AI / Element
Monster 400 BossCustom 120 5000000 0 8500 1200 35 700 4 8 5 3 90000 100 0
- Index 400 — use um índice livre (verifique que não existe outro monstro com o mesmo número)
- HP 5000000 — ajuste conforme a progressão do seu servidor
- AI 100 — modo agressivo com perseguição ativa
Passo 3: Configurar o Spawn no BossInvasion.ini
Abra GameServer/Data/BossInvasion.ini. Cada bloco de invasão segue este formato:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 0
PosX = 130
PosY = 125
Count = 5
RespawnTime = 180
InvasionTime = 60
NotifyMessage = O Boss Customizado esta invadindo Lorencia!
KillMessage = O Boss Customizado foi derrotado!
Campos obrigatórios explicados:
| Campo | Descrição | Valor exemplo |
|---|---|---|
BossType | Index do Monster.txt | 400 |
MapNumber | Número do mapa (0=Lorencia, 2=Noria, 3=Devias) | 0 |
PosX / PosY | Coordenadas de spawn no mapa | 130 / 125 |
Count | Quantos bosses aparecem simultaneamente | 5 |
RespawnTime | Segundos para respawn após morte | 180 |
InvasionTime | Duração total da invasão em minutos | 60 |
Para invasão em múltiplos mapas, adicione blocos separados:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 2
PosX = 180
PosY = 110
Count = 3
RespawnTime = 180
InvasionTime = 60
NotifyMessage = O Boss Customizado esta invadindo Noria!
KillMessage = O Boss Customizado foi derrotado em Noria!
/pos in-game para verificar coordenadas válidas antes de configurar.Passo 4: Agendar a Invasão no Banco de Dados
Conecte ao banco MuOnline no SQL Server Management Studio e execute:
-- Verificar registros existentes
SELECT * FROM T_AttackEvent;
-- Inserir nova invasão customizada
INSERT INTO T_AttackEvent (
AttackEventIndex,
Enable,
MapNumber,
StartHour,
StartMinute,
EndHour,
EndMinute,
NotifyTime
)
VALUES (
10, -- índice único, verifique que não existe
1, -- 1 = habilitado, 0 = desabilitado
0, -- mapa (0 = Lorencia)
20, -- hora de início (20h)
0, -- minuto de início
21, -- hora de fim (21h)
0, -- minuto de fim
10 -- minutos de aviso antecipado
);
Para agendar múltiplos horários no mesmo dia:
-- Invasão das 14h às 15h
INSERT INTO T_AttackEvent VALUES (11, 1, 0, 14, 0, 15, 0, 10);
-- Invasão das 20h às 21h
INSERT INTO T_AttackEvent VALUES (12, 1, 0, 20, 0, 21, 0, 10);
-- Invasão das 22h às 23h em Devias (MapNumber = 3)
INSERT INTO T_AttackEvent VALUES (13, 1, 3, 22, 0, 23, 0, 10);
EventSchedule ou T_EventInfo. Execute SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%Event%' para identificar a tabela correta na sua instalação.Passo 5: Configurar Drops do Boss
Para drops via banco de dados, localize a tabela de drops de monstros e insira os registros para o boss customizado:
-- Verificar tabela de drops de monstros
SELECT * FROM T_MonsterItemDrop WHERE MonsterIndex = 400;
-- Inserir drops customizados para o boss
INSERT INTO T_MonsterItemDrop (
MonsterIndex,
ItemType,
ItemIndex,
ItemLevel,
DropRate,
MinDrop,
MaxDrop
)
VALUES
(400, 13, 19, 13, 15, 1, 1), -- Jewel of Bless (15% chance)
(400, 13, 30, 13, 10, 1, 1), -- Jewel of Soul (10% chance)
(400, 14, 22, 13, 5, 1, 1); -- Jewel of Chaos (5% chance)
DropRate de um mesmo MonsterIndex não deve ultrapassar 100. Valores acima de 100 causam comportamento indefinido e o boss pode dropar itens incorretos ou nenhum item.Passo 6: Configurar Notificações do Sistema
No arquivo GameServer/Data/Notice.txt, adicione as mensagens de notificação:
[InvasionStart]
MapNumber = 0
Message = [INVASAO] O Boss Customizado iniciou invasao em Lorencia! Prepare-se!
[InvasionEnd]
MapNumber = 0
Message = [INVASAO] A invasao em Lorencia terminou. Obrigado por participar!
Para enviar notices via SQL em sistemas que suportam broadcast por banco:
-- Inserir notice temporário (aparece no próximo ciclo do GameServer)
INSERT INTO T_Notice (NoticeIndex, Message, MapNumber, StartTime, Duration)
VALUES (100, '[INVASAO] Boss Customizado em Lorencia! Dirija-se ao mapa!', 0, GETDATE(), 60);
Passo 7: Reiniciar e Verificar
Após todas as alterações:
- Salve todos os arquivos
.inie.txtmodificados - No painel do GameServer, clique em Reload Data (se disponível) ou reinicie o processo
- Aguarde o horário configurado e verifique o log em
GameServer/Log/GameServer_YYYYMMDD.log
Procure por entradas como:
[AttackEvent] BossType=400 spawned at Map=0 Pos=(130,125) Count=5
[AttackEvent] Invasion started - Duration=60min
Solução de Problemas
Boss não aparece no horário configurado:
- Verifique se o campo
Enable = 1está correto noBossInvasion.ini - Confirme que o
AttackEventIndexno banco não está duplicado com outro registro - Cheque o log do GameServer por erros de parsing do arquivo
.ini
Boss aparece mas não se move:
- O valor de
AInoMonster.txtpode estar como0(estático). Altere para100ou110 - Verifique se o mapa tem a flag de movimento ativada no arquivo de configuração do mapa
Mensagens de invasão não aparecem para os jogadores:
- Confirme que o
NotifyTimeno banco é maior que0 - Verifique se o campo
NotifyMessageno.ininão contém caracteres especiais sem escape correto
Drops não aparecem após matar o boss:
- Confirme que o
MonsterIndexna tabela de drops corresponde exatamente ao index definido noMonster.txt - Verifique se a soma dos
DropRatenão ultrapassa 100 para o mesmoMonsterIndex
Boss reaparece imediatamente após morte:
- O campo
RespawnTimeestá configurado como0. Defina um valor em segundos, como180para 3 minutos
Conclusão
Com esses passos, seu servidor terá invasões customizadas completamente funcionais com agendamento, notificações e drops específicos. A combinação de arquivos .ini para definição de comportamento e tabelas SQL para agendamento dinâmico oferece flexibilidade total para criar eventos únicos.
Teste sempre em horário de baixo movimento e monitore os logs nas primeiras ocorrências para garantir que tudo funciona conforme esperado antes de divulgar o evento para os jogadores.
Perguntas frequentes
Qual tabela do banco de dados controla os horários de invasão?
A tabela T_AttackEvent (ou BossInvasion dependendo da versão do MuServer) no banco MuOnline armazena os horários e mapas de invasão. Use SELECT * FROM T_AttackEvent para visualizar os registros atuais.
Como faço para o boss aparecer em múltiplos mapas ao mesmo tempo?
No arquivo BossInvasion.ini (GameServer/Data/BossInvasion.ini), defina múltiplas entradas com o mesmo BossType mas MapNumber diferentes. Cada linha representa uma instância independente do boss.
O boss aparece mas some imediatamente — qual é a causa?
Geralmente o campo RespawnTime está configurado como 0 ou o MonsterClass no arquivo Monster.txt não tem HP definido. Verifique também se o campo Enable na tabela T_AttackEvent está definido como 1.
Posso ter invasões exclusivas por horário de pico?
Sim. Configure os campos StartHour e EndHour na tabela T_AttackEvent ou nas entradas do BossInvasion.ini para restringir a invasão a janelas de horário específicas, como StartHour=20 e EndHour=23 para horário noturno.