Cómo Configurar Invasiones Personalizadas en el Servidor de MU Online
Aprende a configurar invasiones personalizadas de bosses en tu servidor MU Online con comandos SQL, archivos .ini y programación de horarios.
Introducción
Las invasiones personalizadas son uno de los recursos más efectivos para mantener a los jugadores activos en servidores privados de MU Online. Configurar correctamente la programación, los mapas de spawn y los atributos de los bosses requiere editar tanto archivos de configuración del GameServer como tablas de la base de datos SQL Server.
Esta guía cubre la configuración completa para servidores Season 6 Episode 3 (el más común en la escena privada), con notas para otras seasons donde el comportamiento es diferente.
Paso 1: Entender la Estructura de Invasiones en MuServer
El sistema de invasiones de MuServer opera en dos capas:
- Archivos de configuración — definen qué monstruos existen, sus atributos y posiciones base de spawn
- Base de datos — controla los horarios, habilitación y parámetros dinámicos de la invasión
Los archivos relevantes se encuentran en:
GameServer/
└── Data/
├── Monster.txt ← atributos de monstruos (HP, daño, nivel)
├── MonsterSpawn.txt ← posiciones de spawn fijas
└── BossInvasion.ini ← configuración de invasiones por evento (Season 6+)
Las tablas principales en la base de datos MuOnline son:
T_AttackEvent -- horarios y configuración de invasiones
T_MonsterAI -- comportamiento de monstruos durante invasiones
EventSchedule -- (algunas versiones) programación global de eventos
Paso 2: Definir el Monstruo de Invasión en Monster.txt
Abre GameServer/Data/Monster.txt y localiza o crea una entrada para el boss personalizado. El formato de cada línea es:
// Index / Name / Level / HP / MP / Atk / Def / MoveSpeed / AtkSpeed / AtkRange / ViewRange / MoveRange / Regen / MaxItemDrop / Money / AI / Element
Monster 400 BossPersonalizado 120 5000000 0 8500 1200 35 700 4 8 5 3 90000 100 0
- Index 400 — usa un índice libre (verifica que ningún otro monstruo use el mismo número)
- HP 5000000 — ajusta según la progresión de tu servidor
- AI 100 — modo agresivo con persecución activa
Paso 3: Configurar el Spawn en BossInvasion.ini
Abre GameServer/Data/BossInvasion.ini. Cada bloque de invasión usa este formato:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 0
PosX = 130
PosY = 125
Count = 5
RespawnTime = 180
InvasionTime = 60
NotifyMessage = El Boss Personalizado esta invadiendo Lorencia!
KillMessage = El Boss Personalizado ha sido derrotado!
Campos obligatorios explicados:
| Campo | Descripción | Valor ejemplo |
|---|---|---|
BossType | Índice del Monster.txt | 400 |
MapNumber | Número de mapa (0=Lorencia, 2=Noria, 3=Devias) | 0 |
PosX / PosY | Coordenadas de spawn en el mapa | 130 / 125 |
Count | Cuántos bosses aparecen simultáneamente | 5 |
RespawnTime | Segundos para respawn tras la muerte | 180 |
InvasionTime | Duración total de la invasión en minutos | 60 |
Para invasiones en múltiples mapas, agrega bloques separados:
[BossInvasion]
Enable = 1
BossType = 400
MapNumber = 2
PosX = 180
PosY = 110
Count = 3
RespawnTime = 180
InvasionTime = 60
NotifyMessage = El Boss Personalizado esta invadiendo Noria!
KillMessage = El Boss Personalizado fue derrotado en Noria!
/pos en el juego para verificar coordenadas válidas antes de configurar.Paso 4: Programar la Invasión en la Base de Datos
Conéctate a la base MuOnline en SQL Server Management Studio y ejecuta:
-- Ver registros existentes
SELECT * FROM T_AttackEvent;
-- Insertar una nueva invasión personalizada
INSERT INTO T_AttackEvent (
AttackEventIndex,
Enable,
MapNumber,
StartHour,
StartMinute,
EndHour,
EndMinute,
NotifyTime
)
VALUES (
10, -- índice único, verifica que no exista
1, -- 1 = habilitado, 0 = deshabilitado
0, -- mapa (0 = Lorencia)
20, -- hora de inicio (20h)
0, -- minuto de inicio
21, -- hora de fin (21h)
0, -- minuto de fin
10 -- minutos de aviso anticipado
);
Para programar múltiples horarios en el mismo día:
-- Invasión de 14h a 15h
INSERT INTO T_AttackEvent VALUES (11, 1, 0, 14, 0, 15, 0, 10);
-- Invasión de 20h a 21h
INSERT INTO T_AttackEvent VALUES (12, 1, 0, 20, 0, 21, 0, 10);
-- Invasión de 22h a 23h en Devias (MapNumber = 3)
INSERT INTO T_AttackEvent VALUES (13, 1, 3, 22, 0, 23, 0, 10);
EventSchedule o T_EventInfo. Ejecuta SELECT TABLE_NAME FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_NAME LIKE '%Event%' para identificar la tabla correcta en tu instalación.Paso 5: Configurar los Drops del Boss
Para configurar drops desde la base de datos, localiza la tabla de drops de monstruos e inserta los registros para tu boss personalizado:
-- Ver drops actuales del boss
SELECT * FROM T_MonsterItemDrop WHERE MonsterIndex = 400;
-- Insertar drops personalizados para el boss
INSERT INTO T_MonsterItemDrop (
MonsterIndex,
ItemType,
ItemIndex,
ItemLevel,
DropRate,
MinDrop,
MaxDrop
)
VALUES
(400, 13, 19, 13, 15, 1, 1), -- Jewel of Bless (15% de probabilidad)
(400, 13, 30, 13, 10, 1, 1), -- Jewel of Soul (10% de probabilidad)
(400, 14, 22, 13, 5, 1, 1); -- Jewel of Chaos (5% de probabilidad)
DropRate para un mismo MonsterIndex no debe superar 100. Valores por encima de 100 generan comportamiento indefinido y el boss puede dropar ítems incorrectos o ninguno.Paso 6: Configurar Notificaciones del Sistema
En el archivo GameServer/Data/Notice.txt, agrega los mensajes de notificación de la invasión:
[InvasionStart]
MapNumber = 0
Message = [INVASION] El Boss Personalizado ha invadido Lorencia! Preparate!
[InvasionEnd]
MapNumber = 0
Message = [INVASION] La invasion de Lorencia ha terminado. Gracias por participar!
Para insertar notices vía SQL en sistemas que admiten broadcast por base de datos:
-- Insertar notice temporal (aparece en el siguiente ciclo del GameServer)
INSERT INTO T_Notice (NoticeIndex, Message, MapNumber, StartTime, Duration)
VALUES (100, '[INVASION] Boss Personalizado en Lorencia! Dirijete al mapa ahora!', 0, GETDATE(), 60);
Paso 7: Reiniciar y Verificar
Tras completar todos los cambios:
- Guarda todos los archivos
.iniy.txtmodificados - En el panel del GameServer, haz clic en Reload Data si está disponible, o reinicia el proceso
- Espera la ventana horaria configurada y revisa el log en
GameServer/Log/GameServer_YYYYMMDD.log
Busca entradas como:
[AttackEvent] BossType=400 spawned at Map=0 Pos=(130,125) Count=5
[AttackEvent] Invasion started - Duration=60min
Solución de Problemas
El boss no aparece en el horario configurado:
- Verifica que el campo
Enable = 1esté correcto enBossInvasion.ini - Confirma que el
AttackEventIndexen la base de datos no esté duplicado con otro registro - Revisa el log del GameServer en busca de errores de parseo del archivo
.ini
El boss aparece pero no se mueve:
- El valor de
AIenMonster.txtpuede estar como0(estático). Cámbialo a100o110 - Verifica si el mapa tiene las flags de movimiento activadas en su archivo de configuración
Los mensajes de invasión no aparecen para los jugadores:
- Confirma que
NotifyTimeen la base de datos es mayor que0 - Verifica que el campo
NotifyMessageen el.inino contenga caracteres especiales sin escapar
No aparecen drops al matar el boss:
- Confirma que el
MonsterIndexen la tabla de drops corresponde exactamente al índice definido enMonster.txt - Verifica que la suma de
DropRateno supere 100 para el mismoMonsterIndex
El boss reaparece inmediatamente tras morir:
- El campo
RespawnTimeestá configurado como0. Define un valor en segundos, como180para 3 minutos de espera
Conclusión
Con estos pasos, tu servidor tendrá invasiones personalizadas completamente funcionales con programación, notificaciones y drops específicos. La combinación de archivos .ini para la definición del comportamiento y tablas SQL para la programación dinámica te da flexibilidad total para crear eventos únicos que diferencien tu servidor.
Prueba siempre en horas de bajo tráfico y monitorea los logs durante las primeras ocurrencias para confirmar que todo funciona según lo esperado antes de anunciar el evento a los jugadores.
Perguntas frequentes
¿Qué tabla de la base de datos controla los horarios de invasión?
La tabla T_AttackEvent (o BossInvasion dependiendo de la versión de MuServer) en la base MuOnline almacena los horarios y mapas de invasión. Ejecuta SELECT * FROM T_AttackEvent para ver los registros actuales.
¿Cómo hago que el boss aparezca en múltiples mapas al mismo tiempo?
En el archivo BossInvasion.ini (GameServer/Data/BossInvasion.ini), define múltiples bloques con el mismo BossType pero diferentes valores de MapNumber. Cada bloque es una instancia independiente del boss.
El boss aparece pero desaparece inmediatamente — ¿cuál es la causa?
Generalmente el campo RespawnTime está configurado como 0 o el monstruo en Monster.txt no tiene HP definido. Verifica también que el campo Enable en la tabla T_AttackEvent esté en 1.
¿Puedo restringir las invasiones a las horas pico únicamente?
Sí. Configura los campos StartHour y EndHour en T_AttackEvent o en las entradas del BossInvasion.ini para limitar la invasión a ventanas horarias específicas, como StartHour=20 y EndHour=23 para el horario nocturno.