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.
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.