O maior portal de MU Online do Brasil — desde 2003
Tutorial Avançado Tutoriais

Como Configurar o Castle Siege Detalhadamente no Servidor de MU

Guia completo para configurar o Castle Siege no seu servidor MU Online: SQL, arquivos .ini, horários, guilds e troubleshooting avançado.

EQ Equipe ViciadosMU · Atualizado em 3 jul 2026 · ⏱ 12 min de leitura

O Castle Siege é um dos eventos mais complexos e competitivos do MU Online. Configurá-lo corretamente exige atenção a múltiplas camadas: banco de dados SQL Server, arquivos de configuração do GameServer e sincronização de horários. Este guia cobre cada etapa com comandos e valores específicos para servidores Season 6.

Pré-requisitos

Antes de iniciar, confirme que seu ambiente possui:

  • SQL Server 2008 ou superior com banco MuOnline restaurado
  • GameServer Season 6 Episode 3 (ou compatível)
  • Acesso de administrador ao Windows Server
  • DataServer rodando e conectado ao SQL Server
Nota: Este guia usa Season 6 como referência. Servidores S9+ podem ter nomes de tabela e campos ligeiramente diferentes, mas a lógica permanece idêntica.

Passo 1 — Verificar e preparar as tabelas SQL

O Castle Siege depende de tabelas específicas no banco MuOnline. Execute as queries abaixo no SQL Server Management Studio para confirmar a existência delas:

USE MuOnline;
GO

-- Verificar tabelas essenciais do Castle Siege
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLES
WHERE TABLE_NAME IN (
    'CastleSiegeSync',
    'CastleSiegeNPC',
    'CastleSiegeTax',
    'CastleGuild',
    'CastleSiegeRegist'
);

Se alguma tabela estiver faltando, localize o script SQL de criação na pasta GameServer/SQL/ do seu pacote de instalação e execute-o.

Inicializar o estado base do Castle Siege

USE MuOnline;
GO

-- Definir estado inicial: 0 = Castle Siege inativo
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 execute este UPDATE durante uma batalha ativa. Isso corrompe o estado do evento e pode causar crashes no GameServer.

Passo 2 — Configurar o arquivo CastleSiege.ini

Navegue até GameServer/Data/CastleSiege/ e abra o arquivo CastleSiege.ini com um editor de texto (Notepad++ recomendado, encoding ANSI).

[CastleSiege]
CastleSiegeStart    = 1          ; 1 = habilitado, 0 = desabilitado
MaxGuildCount       = 8          ; máximo de guilds registradas
MinGuildMemberCount = 5          ; membros mínimos para registrar
MaxGuildMemberCount = 50         ; membros máximos participantes
RegPeriodDay        = 7          ; dias de período de registro
SiegeTime           = 60         ; duração da batalha em minutos
CastleSiegeWeekDay  = 6          ; dia da semana (0=Dom, 6=Sáb)
CastleSiegeHour     = 21         ; hora de início (formato 24h)
CastleSiegeMinute   = 0          ; minuto de início
TaxMoney            = 30         ; taxa de imposto em % (0-100)
TaxChaos            = 20         ; taxa no Chaos Goblin em %
TaxStore            = 10         ; taxa na loja pessoal em %
Dica: Para servidores com pouca população, reduza MinGuildMemberCount para 3 e MaxGuildCount para 4. Isso garante que o evento ocorra mesmo com menos guilds ativas.

Passo 3 — Configurar os NPCs do Castle Siege

Os NPCs do castelo (Guardas, Arqueiros, Portões) são definidos na tabela CastleSiegeNPC e também no arquivo CastleSiegeNPC.txt localizado em GameServer/Data/CastleSiege/.

Verificar NPCs via SQL

USE MuOnline;
GO

-- Listar todos os NPCs do Castle Siege e seus status
SELECT NpcIndex, NpcClass, NpcLevel, NpcHp, NpcMaxHp, Life
FROM CastleSiegeNPC
ORDER BY NpcIndex;

Restaurar NPCs para estado padrão (pós-evento)

USE MuOnline;
GO

-- Restaurar vida de todos os NPCs do castelo
UPDATE CastleSiegeNPC
SET NpcHp  = NpcMaxHp,
    Life   = 1
WHERE CastleIndex = 0;

Passo 4 — Configurar o sistema de impostos

O guild dona do castelo recebe impostos do Chaos Goblin e das lojas pessoais. Isso é controlado via SQL e pelo CastleSiege.ini.

USE MuOnline;
GO

-- Verificar configuração atual de impostos
SELECT CastleIndex, TaxChaos, TaxStore, TaxMoney, GuildName
FROM CastleSiegeTax
WHERE CastleIndex = 0;

-- Ajustar taxas manualmente (caso necessário)
UPDATE CastleSiegeTax
SET TaxChaos = 20,
    TaxStore  = 10,
    TaxMoney  = 30
WHERE CastleIndex = 0;
Nota: Os impostos são descontados automaticamente pelo GameServer a cada transação. O valor acumulado fica na coluna MoneyAmount da tabela CastleSiegeSync e pode ser retirado pelo Guild Master dona do castelo via NPC Elf Soldier.

Passo 5 — Configurar agendamento automático

O Castle Siege deve ocorrer semanalmente. Use o SQL Server Agent ou uma stored procedure agendada para atualizar os períodos automaticamente.

Stored Procedure de agendamento

USE MuOnline;
GO

CREATE PROCEDURE dbo.sp_AgendarCastleSiege
AS
BEGIN
    SET NOCOUNT ON;

    DECLARE @ProxSiege   DATETIME;
    DECLARE @InicioReg   DATETIME;
    DECLARE @FimReg      DATETIME;

    -- Calcular próximo sábado às 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 @FimReg    = DATEADD(HOUR, -1, @ProxSiege);

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

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

-- Executar o agendamento
EXEC dbo.sp_AgendarCastleSiege;

Passo 6 — Configurar o ConnectServer e DataServer

O Castle Siege requer que o DataServer esteja sincronizando corretamente com o GameServer. Verifique o arquivo DataServer/DataServer.ini:

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

E no GameServer/GameServer.ini, confirme a seção de eventos:

[EventServer]
CastleSiege       = 1
CastleSiegeServer = 0      ; código do servidor (deve bater com DataServer.ini)

Passo 7 — Testar o Castle Siege

Para testar sem esperar o horário programado, force o início via SQL:

USE MuOnline;
GO

-- Forçar início do período de registro imediatamente
UPDATE CastleSiegeSync
SET CS_State        = 1,
    CS_RegStartDate = DATEADD(MINUTE, -1, GETDATE()),
    CS_RegEndDate   = DATEADD(HOUR, 1, GETDATE())
WHERE CastleIndex   = 0;

Após aplicar, reinicie o GameServer e verifique no log GameServer/Log/GameServer_YYYYMMDD.log por linhas como:

[Castle Siege] State changed to: REGISTRATION
[Castle Siege] Registration period: START
Dica: Use um personagem GM (Account Level 3) e o comando /castlestate para verificar o estado atual do evento in-game sem precisar consultar o banco de dados.

Troubleshooting

O evento não inicia no horário

  1. Verifique se o Windows Server está com o fuso horário correto: Painel de Controle → Data e Hora
  2. Confirme que o SQL Server Agent está rodando: Services.msc → SQL Server Agent
  3. Execute: SELECT GETDATE() no SSMS e compare com o horário do servidor

Guilds não conseguem se registrar

-- Verificar se o período de registro está ativo
SELECT CS_State, CS_RegStartDate, CS_RegEndDate, GETDATE() AS Agora
FROM CastleSiegeSync
WHERE CastleIndex = 0;
-- CS_State deve ser 1 e GETDATE() deve estar entre RegStartDate e RegEndDate

Crash do GameServer durante o Castle Siege

Verifique o arquivo GameServer/Log/Error_YYYYMMDD.log. Erros comuns:

  • NPC not found → Execute o UPDATE de restauração de NPCs do Passo 3
  • Guild data corrupted → Execute DBCC CHECKDB('MuOnline') para verificar integridade
Atenção: Sempre faça backup do banco MuOnline antes de qualquer modificação nas tabelas do Castle Siege. Use: BACKUP DATABASE MuOnline TO DISK = 'C:\Backup\MuOnline_pre_cs.bak'

Perguntas frequentes

Qual tabela SQL controla o estado do Castle Siege?

A tabela principal é a CastleSiegeSync no banco MuOnline. As colunas CS_State (0=inativo, 1=registro, 2=batalha), CS_RegStartDate e CS_RegEndDate controlam os períodos.

O Castle Siege não inicia automaticamente, o que verificar?

Verifique se o GameServer.exe está rodando com permissões de administrador, se o arquivo CastleSiege.ini tem o campo CastleSiegeStart=1 e se a data/hora do servidor bate com o agendamento na tabela CastleSiegeSync.

Como resetar o dono do castelo via SQL?

Execute UPDATE MuOnline..CastleSiegeSync SET GuildMark=0, GuildName='', OwnerGuild='' WHERE CastleIndex=0; para limpar o dono atual sem afetar o histórico.

Quantas guilds podem se registrar para o Castle Siege?

Por padrão o limite é 8 guilds por servidor Season 6. Esse valor pode ser ajustado no campo MaxGuildCount dentro do arquivo GameServer/Data/CastleSiege/CastleSiege.ini.

EQ

Equipe ViciadosMU

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

Continue lendo

Artigos relacionados