El mayor portal de MU Online de Brasil — desde 2003
Tutorial Avanzado Tutoriais

Cómo Configurar el Castle Siege Detalladamente en el Servidor de MU

Guía completa para configurar el Castle Siege en tu servidor MU Online: SQL, archivos .ini, horarios, guilds y solución de problemas avanzada.

EQ Equipo ViciadosMU · Actualizado el 3 jul 2026 · ⏱ 12 min de lectura

El Castle Siege es uno de los eventos más complejos y competitivos de MU Online. Configurarlo correctamente requiere atención a múltiples capas: base de datos SQL Server, archivos de configuración del GameServer y sincronización de horarios. Esta guía cubre cada paso con comandos y valores específicos para servidores Season 6.

Requisitos previos

Antes de comenzar, confirma que tu entorno cuenta con:

  • SQL Server 2008 o superior con la base de datos MuOnline restaurada
  • GameServer Season 6 Episode 3 (o compilación compatible)
  • Acceso de administrador en Windows Server
  • DataServer en ejecución y conectado a SQL Server
Nota: Esta guía usa Season 6 como referencia. Los servidores S9+ pueden tener nombres de tabla y campos ligeramente distintos, pero la lógica subyacente es idéntica.

Paso 1 — Verificar y preparar las tablas SQL

El Castle Siege depende de tablas específicas en la base de datos MuOnline. Ejecuta las siguientes consultas en SQL Server Management Studio para confirmar su existencia:

USE MuOnline;
GO

-- Verificar tablas esenciales del Castle Siege
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN (
    'CastleSiegeSync',
    'CastleSiegeNPC',
    'CastleSiegeTax',
    'CastleGuild',
    'CastleSiegeRegist'
);

Si falta alguna tabla, localiza el script SQL de creación en la carpeta GameServer/SQL/ de tu paquete de instalación y ejecútalo.

Inicializar el estado base del Castle Siege

USE MuOnline;
GO

-- Definir estado inicial: 0 = Castle Siege inactivo
UPDATE CastleSiegeSync
SET CS_State        = 0,
    GuildMark       = 0,
    GuildName       = '',
    OwnerGuild      = '',
    CS_RegStartDate = GETDATE(),
    CS_RegEndDate   = DATEADD(DAY, 7, GETDATE())
WHERE CastleIndex   = 0;
Atenção: Nunca ejecutes este UPDATE mientras una batalla esté activa. Hacerlo corrompe el estado del evento y puede provocar crashes en el GameServer.

Paso 2 — Configurar el archivo CastleSiege.ini

Navega a GameServer/Data/CastleSiege/ y abre CastleSiege.ini con un editor de texto (Notepad++ recomendado, codificación ANSI).

[CastleSiege]
CastleSiegeStart    = 1          ; 1 = habilitado, 0 = deshabilitado
MaxGuildCount       = 8          ; máximo de guilds registradas
MinGuildMemberCount = 5          ; miembros mínimos para registrar
MaxGuildMemberCount = 50         ; miembros máximos participantes
RegPeriodDay        = 7          ; días del período de registro
SiegeTime           = 60         ; duración de la batalla en minutos
CastleSiegeWeekDay  = 6          ; día de la semana (0=Dom, 6=Sáb)
CastleSiegeHour     = 21         ; hora de inicio (formato 24h)
CastleSiegeMinute   = 0          ; minuto de inicio
TaxMoney            = 30         ; tasa de impuesto de dinero en % (0-100)
TaxChaos            = 20         ; tasa en el Chaos Goblin en %
TaxStore            = 10         ; tasa en la tienda personal en %
Dica: Para servidores con poca población, reduce MinGuildMemberCount a 3 y MaxGuildCount a 4. Esto garantiza que el evento se realice incluso con menos guilds activas.

Paso 3 — Configurar los NPCs del Castle Siege

Los NPCs del castillo (Guardias, Arqueros, Puertas) están definidos en la tabla CastleSiegeNPC y en el archivo CastleSiegeNPC.txt ubicado en GameServer/Data/CastleSiege/.

Verificar NPCs por SQL

USE MuOnline;
GO

-- Listar todos los NPCs del Castle Siege y su estado actual
SELECT NpcIndex, NpcClass, NpcLevel, NpcHp, NpcMaxHp, Life
FROM CastleSiegeNPC
ORDER BY NpcIndex;

Restaurar los NPCs al estado predeterminado (post-evento)

USE MuOnline;
GO

-- Restaurar HP completo a todos los NPCs del castillo
UPDATE CastleSiegeNPC
SET NpcHp  = NpcMaxHp,
    Life   = 1
WHERE CastleIndex = 0;

Paso 4 — Configurar el sistema de impuestos

La guild dueña del castillo recauda impuestos del Chaos Goblin y de las tiendas personales. Esto se controla mediante SQL y CastleSiege.ini.

USE MuOnline;
GO

-- Verificar la configuración actual de impuestos
SELECT CastleIndex, TaxChaos, TaxStore, TaxMoney, GuildName
FROM CastleSiegeTax
WHERE CastleIndex = 0;

-- Ajustar tasas manualmente (si es necesario)
UPDATE CastleSiegeTax
SET TaxChaos = 20,
    TaxStore  = 10,
    TaxMoney  = 30
WHERE CastleIndex = 0;
Nota: Los impuestos son descontados automáticamente por el GameServer en cada transacción. El monto acumulado se almacena en la columna MoneyAmount de CastleSiegeSync y puede ser retirado por el Guild Master propietario a través del NPC Elf Soldier.

Paso 5 — Configurar la programación automática

El Castle Siege debe ejecutarse semanalmente. Usa SQL Server Agent o un stored procedure programado para actualizar los períodos del evento de forma automática.

Stored procedure de programación

USE MuOnline;
GO

CREATE PROCEDURE dbo.sp_ProgramarCastleSiege
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @ProxSiege   DATETIME;
    DECLARE @InicioReg   DATETIME;
    DECLARE @FinReg      DATETIME;

    -- Calcular el próximo sábado a las 21:00
    SET @ProxSiege = DATEADD(
        HOUR, 21,
        DATEADD(
            DAY,
            (7 - DATEPART(WEEKDAY, GETDATE()) + 7) % 7,
            CAST(CAST(GETDATE() AS DATE) AS DATETIME)
        )
    );

    SET @InicioReg = DATEADD(DAY, -7, @ProxSiege);
    SET @FinReg    = DATEADD(HOUR, -1, @ProxSiege);

    UPDATE CastleSiegeSync
    SET CS_State        = 1,
        CS_RegStartDate = @InicioReg,
        CS_RegEndDate   = @FinReg
    WHERE CastleIndex   = 0;

    PRINT 'Castle Siege programado para: ' + CAST(@ProxSiege AS VARCHAR);
END;
GO

-- Ejecutar el procedimiento de programación
EXEC dbo.sp_ProgramarCastleSiege;

Paso 6 — Configurar ConnectServer y DataServer

El Castle Siege requiere que el DataServer sincronice correctamente con el GameServer. Revisa DataServer/DataServer.ini:

[DataServer]
ServerCode    = 0
ConnectIP     = 127.0.0.1
ConnectPort   = 55557
DBServerIP    = 127.0.0.1
DBName        = MuOnline
DBUser        = sa
DBPassword    = tu_contrasena_aqui

En GameServer/GameServer.ini, confirma la sección de eventos:

[EventServer]
CastleSiege       = 1
CastleSiegeServer = 0      ; código del servidor (debe coincidir con DataServer.ini)

Paso 7 — Probar el Castle Siege

Para probar sin esperar el horario programado, fuerza el inicio del período de registro de inmediato via SQL:

USE MuOnline;
GO

-- Forzar inicio del período de registro de inmediato
UPDATE CastleSiegeSync
SET CS_State        = 1,
    CS_RegStartDate = DATEADD(MINUTE, -1, GETDATE()),
    CS_RegEndDate   = DATEADD(HOUR, 1, GETDATE())
WHERE CastleIndex   = 0;

Después de aplicar, reinicia el GameServer y verifica en GameServer/Log/GameServer_YYYYMMDD.log líneas como:

[Castle Siege] State changed to: REGISTRATION
[Castle Siege] Registration period: START
Dica: Usa un personaje GM (Account Level 3) y el comando en juego /castlestate para verificar el estado actual del evento sin necesidad de consultar la base de datos.

Solución de problemas

El evento no inicia en el horario

  1. Verifica que Windows Server tenga la zona horaria correcta: Panel de Control → Fecha y Hora
  2. Confirma que SQL Server Agent está en ejecución: Services.msc → SQL Server Agent
  3. Ejecuta SELECT GETDATE() en SSMS y compara con el reloj del servidor

Las guilds no pueden registrarse

-- Verificar si el período de registro está activo en este momento
SELECT CS_State, CS_RegStartDate, CS_RegEndDate, GETDATE() AS Ahora
FROM CastleSiegeSync
WHERE CastleIndex = 0;
-- CS_State debe ser 1 y GETDATE() debe estar entre RegStartDate y RegEndDate

El GameServer se cae durante el Castle Siege

Revisa GameServer/Log/Error_YYYYMMDD.log. Errores comunes:

  • NPC not found → Ejecuta el UPDATE de restauración de NPCs del Paso 3
  • Guild data corrupted → Ejecuta DBCC CHECKDB('MuOnline') para verificar la integridad de la base de datos
Atenção: Realiza siempre una copia de seguridad de la base de datos MuOnline antes de modificar cualquier tabla del Castle Siege. Usa: BACKUP DATABASE MuOnline TO DISK = 'C:\Backup\MuOnline_pre_cs.bak'

Perguntas frequentes

¿Qué tabla SQL controla el estado del Castle Siege?

La tabla principal es CastleSiegeSync en la base de datos MuOnline. Las columnas CS_State (0=inactivo, 1=registro, 2=batalla), CS_RegStartDate y CS_RegEndDate controlan los períodos del evento.

El Castle Siege no inicia automáticamente, ¿qué debo verificar?

Verifica que GameServer.exe se ejecute con privilegios de administrador, que CastleSiege.ini tenga CastleSiegeStart=1 y que la fecha/hora del servidor coincida con la programación almacenada en la tabla CastleSiegeSync.

¿Cómo reinicio el dueño del castillo por SQL?

Ejecuta UPDATE MuOnline..CastleSiegeSync SET GuildMark=0, GuildName='', OwnerGuild='' WHERE CastleIndex=0; para limpiar el propietario actual sin afectar el historial.

¿Cuántas guilds pueden registrarse para el Castle Siege?

El límite predeterminado es 8 guilds por servidor Season 6. Ajusta el campo MaxGuildCount en GameServer/Data/CastleSiege/CastleSiege.ini para cambiar este límite.

EQ

Equipo ViciadosMU

Equipe editorial do ViciadosMU — portal de MU Online no ar desde 2003.

Sigue leyendo

Artículos relacionados