Como Adicionar e Editar Itens no Servidor de MU Online
Aprenda a adicionar, editar e configurar itens customizados no seu servidor de MU Online com SQL Server e arquivos de configuração.
Como Adicionar e Editar Itens no Servidor de MU Online
Adicionar itens customizados é uma das personalizações mais poderosas que você pode fazer no seu servidor de MU Online. Este guia cobre o processo completo: desde a identificação de IDs disponíveis no banco de dados, edição dos arquivos de configuração do GameServer, até a sincronização com o cliente.
GameServer/Data/ antes de qualquer alteração. Um ID de item incorreto pode corromper drops e NPCs de loja em todo o servidor.Conceitos Fundamentais de Itens no MU Online
Cada item no MU Online é identificado por dois valores:
- Categoria (ItemSection): valor de 0 a 15 que define o tipo (armas, armaduras, joias, etc.)
- Índice (ItemIndex): valor de 0 a 511 dentro da categoria
A combinação Categoria + Índice é única e deve ser consistente entre o servidor e o cliente.
| Categoria | Tipo |
|---|---|
| 0 | Espadas (Blade) |
| 2 | Arcos e Bastões (Bows/Staves) |
| 4 | Armaduras (Armor) |
| 5 | Calças (Pants) |
| 6 | Luvas (Gloves) |
| 7 | Botas (Boots) |
| 12 | Joias (Jewels) |
| 13 | Itens de Evento |
| 14 | Pets e Wings |
Parte 1 — Identificar IDs Disponíveis no Banco de Dados
Antes de criar um item, identifique quais IDs estão livres.
Passo 1: Conecte-se ao SQL Server Management Studio e acesse o banco MuOnline.
Passo 2: Execute a consulta para listar itens existentes em uma categoria:
-- Listar todos os itens da categoria 0 (espadas)
SELECT
ItemSection,
ItemIndex,
ItemName,
ItemWidth,
ItemHeight,
ItemDurability
FROM MuOnline..Item
WHERE ItemSection = 0
ORDER BY ItemIndex ASC;
Passo 3: Identifique índices ausentes na sequência — esses estão disponíveis para uso.
-- Verificar se um slot específico está livre (ex: categoria 0, índice 45)
SELECT COUNT(*) AS Ocupado
FROM MuOnline..Item
WHERE ItemSection = 0 AND ItemIndex = 45;
-- Resultado 0 = slot livre
Item fica no banco MuOnline. Em versões mais antigas (S2/S3), pode estar em Game ou GameDB.Parte 2 — Adicionar o Item no Banco de Dados
Passo 4: Insira o novo item na tabela Item:
INSERT INTO MuOnline..Item (
ItemSection,
ItemIndex,
ItemName,
ItemWidth,
ItemHeight,
ItemDurability,
ItemBaseDmgMin,
ItemBaseDmgMax,
ItemDefense,
ItemSpeedAttack,
ItemMagicPower,
ItemMoney,
ClassReq,
LevelReq,
StrReq,
AgiReq,
VitReq,
EneReq,
CmdReq,
ItemDropLevel,
ItemSellPrice,
ItemBuyPrice,
ItemTwoHand
) VALUES (
0, -- Categoria: espadas
45, -- Índice livre identificado
'Lâmina do Caos',
2, -- Largura em slots (inventário)
4, -- Altura em slots (inventário)
100, -- Durabilidade base
120, -- Dano mínimo
180, -- Dano máximo
0, -- Defesa (0 para armas)
20, -- Velocidade de ataque
0, -- Poder mágico
500000, -- Preço base em gold
2, -- ClassReq = DK apenas (bitmask)
300, -- Level mínimo
250, -- Força mínima
0, -- Agilidade mínima
0, -- Vitalidade mínima
0, -- Energia mínima
0, -- Command mínimo
80, -- Nível mínimo de drop do monstro
250000, -- Preço de venda ao NPC
1000000, -- Preço de compra no NPC
0 -- 0=uma mão, 1=duas mãos
);
Passo 5: Configure as opções adicionais (excellent, luck, skill) na tabela de opções:
INSERT INTO MuOnline..ItemAddOption (
ItemSection,
ItemIndex,
OptionType,
OptionValue
) VALUES
(0, 45, 1, 5), -- Tipo 1 = Luck habilitado
(0, 45, 2, 1); -- Tipo 2 = Skill habilitado
Parte 3 — Configurar o Drop do Item
Passo 6: Adicione o item na tabela de drops de monstros:
-- Adicionar drop no Kundun (monstro ID 277)
INSERT INTO MuOnline..MonsterItemDrop (
MonsterID,
ItemSection,
ItemIndex,
MinLevel,
MaxLevel,
DropRate
) VALUES (
277, -- ID do Kundun
0, -- Categoria do item
45, -- Índice do item
0, -- Level mínimo do item dropado
15, -- Level máximo do item dropado
100 -- Taxa de drop (escala depende da versão; verifique MonDropRate)
);
Passo 7: Se o seu servidor usa arquivos .bmd para drops em vez de banco de dados, edite GameServer/Data/MonsterItemDrop.bmd usando o editor oficial do MuServer ou ferramentas como o BMD Editor.
DropRate / 10000. Um valor de 100 equivale a 1% de chance. Ajuste conforme a raridade desejada.Parte 4 — Configurar o Item nos Arquivos do GameServer
Passo 8: Localize o arquivo ItemList.bmd em:
GameServer/Data/Item/ItemList.bmd
Este arquivo binário controla os atributos base exibidos e validados pelo GameServer. Em algumas versões do MuServer, ele é editado via ferramenta própria; em outras, as definições vêm exclusivamente do banco de dados.
Passo 9: Se o servidor usa arquivo .txt ou .ini auxiliar (comum em versões Season 2-4), edite GameServer/Data/ItemList.txt:
// Formato: Seção Índice Nome DanoMin DanoMax Defesa Dur Largura Altura LvlReq StrReq AgiReq EneReq CmdReq ClassReq Preco TwoHand MagicPow AtkSpd DropLvl
0 45 "Lâmina do Caos" 120 180 0 100 2 4 300 250 0 0 0 2 500000 0 0 20 80
Passo 10: Reinicie o GameServer para carregar as novas definições:
:: No diretório raiz do servidor
cd C:\MuServer
taskkill /F /IM GameServer.exe
timeout /T 3
start GameServer\GameServer.exe
Parte 5 — Sincronizar com o Cliente
Item\ItemList.bmd do cliente não tiver o item, ele aparecerá como item desconhecido (?) ou causará desconexão.Passo 11: Atualize o arquivo ItemList.bmd no cliente (pasta Data/Item/ da instalação do cliente).
Passo 12: Se o item tem textura/modelo próprios, adicione os arquivos:
Client/Data/Item/Item0045.ozj -- Textura (imagem do inventário)
Client/Data/3DEffect/Item0045.ozt -- Modelo 3D (opcional para novos meshes)
Passo 13: Distribua o patch do cliente para os jogadores via sistema de atualização do servidor (Main.exe patcher ou launcher próprio).
Parte 6 — Adicionar o Item em NPCs de Loja
Passo 14: Para disponibilizar o item em uma loja NPC, edite a tabela de inventário de NPC:
-- Adicionar item na loja do Chaos Goblin (NPC tipo 8)
INSERT INTO MuOnline..NPCInventory (
NPCType,
ItemSection,
ItemIndex,
ItemLevel,
SlotIndex
) VALUES (
8, -- Tipo do NPC
0, -- Categoria do item
45, -- Índice do item
0, -- Level do item na loja
15 -- Posição na grade da loja (0-indexed)
);
SlotIndex determina a posição visual na janela de loja. Slots de 0 a 35 cobrem a primeira página da loja. Valores acima de 35 abrem páginas adicionais (nem todos os clientes suportam múltiplas páginas).Verificação e Solução de Problemas
Após reiniciar o servidor, verifique:
1. Item aparece no banco de dados:
SELECT * FROM MuOnline..Item
WHERE ItemSection = 0 AND ItemIndex = 45;
2. Testar drop manualmente via GM command (se o servidor suportar):
/item 0 45 15 28 28
-- Formato: /item Categoria Índice Level Opção1 Opção2
3. Verificar log do GameServer em GameServer/Log/GameServer.log para erros de carregamento de itens — linhas contendo [Item Error] ou Item load failed.
Resumo do Fluxo Completo
- Identificar ID disponível → consulta SQL na tabela
Item - Inserir item →
INSERT INTO MuOnline..Item - Configurar opções →
INSERT INTO MuOnline..ItemAddOption - Configurar drops →
INSERT INTO MuOnline..MonsterItemDrop - Atualizar
ItemList.bmdno GameServer e no cliente - Reiniciar GameServer
- Distribuir patch do cliente
- Testar com comando GM ou drop in-game
Perguntas frequentes
Onde ficam os arquivos de definição de itens no servidor?
Os arquivos principais estão em GameServer/Data/Item/ (ex: ItemList.bmd, ItemAddOption.bmd). Em servidores Season 6, o ItemList.bmd controla atributos base e o arquivo de banco de dados MuOnline..Item gerencia drops e lojas.
Posso adicionar um item com ID já existente sem conflito?
Não. Cada item tem um índice único composto por Categoria (0-15) e Índice (0-511). Reutilizar um ID sobrescreve o item original. Sempre use IDs vazios — consulte SELECT * FROM Item WHERE ItemCategory = X AND ItemIndex = Y para verificar disponibilidade.
Por que o item aparece como '?' no cliente após adicionar no servidor?
O cliente também precisa dos arquivos BMD/OZT atualizados (pasta /Data/Item/ do cliente). O servidor e o cliente precisam ter definições sincronizadas. Distribua o patch de cliente junto com a atualização do servidor.
Como definir um item que só pode ser usado por uma classe específica?
No ItemList.bmd (ou tabela Item do banco), o campo ClassReq usa bitmask: DW=1, DK=2, Elf=4, MG=8, DL=16, Sum=32, RF=64. Para restringir apenas ao Dark Knight, defina ClassReq=2. Para DK e Elf, use ClassReq=6.