Cómo Configurar la Tienda de Ruud y NPCs de Evento en el Servidor MU
Aprende a configurar la tienda de Ruud, definir precios de ítems, posicionar NPCs de evento y ajustar recompensas via SQL y archivos .ini en MuServer.
La moneda Ruud fue introducida a partir de la Season 12 de MU Online y representa una de las principales formas de progresión de personajes en servidores modernos. Configurar correctamente la tienda de Ruud y posicionar los NPCs de evento garantiza una economía saludable y jugadores comprometidos en tu servidor.
Esta guía cubre la configuración completa: desde la tabla SQL de ítems hasta el posicionamiento físico de los NPCs en el mapa.
Requisitos Previos
- MuServer Season 12 o superior (la tienda de Ruud no existe en S6 vanilla)
- Acceso a SQL Server Management Studio con permisos de escritura en la base
MuOnline - Acceso a la carpeta
GameServer/Data/en el servidor - Servidor detenido (GameServer.exe cerrado) para editar archivos .txt de monstruos
Paso 1: Entender la Estructura del Sistema Ruud
El sistema Ruud opera en tres capas:
- Ganancia de Ruud — configurado por evento (Arca de Ruud, mapas específicos, recompensas de quest)
- Almacenamiento — columna
Ruuden la tablaCharacterde la baseMuOnline - Tienda de Ruud — la tabla
T_MN_PointShopListdefine los ítems disponibles y sus precios
Verifica que la columna Ruud exista en tu base de datos:
-- Verificar si la columna Ruud existe en la tabla Character
SELECT COLUMN_NAME, DATA_TYPE, COLUMN_DEFAULT
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Character'
AND COLUMN_NAME = 'Ruud';
Si la columna no existe, agrégala:
ALTER TABLE MuOnline..Character
ADD Ruud INT NOT NULL DEFAULT 0;
Paso 2: Configurar la Tabla de Ítems de la Tienda
La tabla T_MN_PointShopList define cada ítem disponible en la tienda. Abre el SSMS y ejecuta:
-- Ver el contenido actual de la tienda de Ruud
SELECT TOP 20
ShopCode,
ItemCode,
ItemIndex,
ItemLevel,
ItemOpt,
Price,
ClassFlag,
LimitBuy,
SaleFlag
FROM MuOnline..T_MN_PointShopList
ORDER BY ShopCode;
Para agregar un nuevo ítem (ejemplo: Wings of Ruin nivel 3 por 15.000 Ruud):
-- Insertar ítem en la tienda de Ruud
-- ItemCode 12 = Wings, ItemIndex 36 = Wings of Ruin, ItemLevel 3
INSERT INTO MuOnline..T_MN_PointShopList
(ShopCode, ItemCode, ItemIndex, ItemLevel, ItemOpt, Price, ClassFlag, LimitBuy, SaleFlag)
VALUES
(1, 12, 36, 3, 0, 15000, 255, 0, 1);
ClassFlag usa bitmask: 1=DW, 2=DK, 4=Elf, 8=MG, 16=DL, 32=Summoner, 64=RF, 128=GL. Suma los valores para habilitar múltiples clases. El valor 255 habilita todas las clases.Para actualizar el precio de un ítem existente:
-- Cambiar el precio de un ítem específico en la tienda
UPDATE MuOnline..T_MN_PointShopList
SET Price = 8000
WHERE ItemCode = 13 AND ItemIndex = 0 AND ShopCode = 1;
-- ItemCode 13 = set Archangel (ejemplo)
Para eliminar un ítem de la tienda:
-- Eliminar un ítem de la tienda de Ruud
DELETE FROM MuOnline..T_MN_PointShopList
WHERE ShopCode = 1 AND ItemCode = 12 AND ItemIndex = 36;
Paso 3: Configurar Límites de Compra y Restricciones
El campo LimitBuy define cuántas veces por cuenta/personaje se puede comprar el ítem:
-- Definir límite de 1 compra por personaje para ítem especial
UPDATE MuOnline..T_MN_PointShopList
SET LimitBuy = 1
WHERE ShopCode = 1 AND ItemCode = 12 AND ItemIndex = 36;
-- Eliminar límite (0 = ilimitado)
UPDATE MuOnline..T_MN_PointShopList
SET LimitBuy = 0
WHERE ShopCode = 1;
Para rastrear compras con límite, consulta la tabla de historial:
-- Ver historial de compras en la tienda de Ruud
SELECT TOP 50
AccountID,
CharName,
ItemCode,
ItemIndex,
Price,
BuyDate
FROM MuOnline..T_MN_PointShopBuyList
ORDER BY BuyDate DESC;
Paso 4: Posicionar el NPC de Tienda en el Mapa
El NPC que abre la tienda de Ruud (generalmente llamado Lugard en S12+, MonsterIndex 658) necesita ser posicionado mediante un archivo de texto.
Abre el archivo GameServer/Data/Monster/MonsterSetBase.txt y agrega la línea:
// Ruud Shop NPC - Lorencia
658 0 136 140 0 0 50
// Formato: MonsterIndex NúmeroMapa X Y Dir Action ViewRange
Para múltiples NPCs de tienda en diferentes mapas:
// Ruud Shop NPC - Noria (mapa 3)
658 3 170 100 0 0 50
// Ruud Shop NPC - Elbeland (mapa 51)
658 51 215 045 0 0 50
Paso 5: Configurar Recompensas de Ruud por Evento
Las recompensas de Ruud otorgadas al completar eventos se configuran en archivos .ini o directamente via SQL, dependiendo de la versión del servidor.
Via archivo .ini (GameServer/Config/):
; Archivo: GameServer/Config/EventRuudReward.ini
[BloodCastle]
BC1_Ruud=200
BC2_Ruud=300
BC3_Ruud=400
BC4_Ruud=500
BC5_Ruud=600
BC6_Ruud=700
BC7_Ruud=1000
[DevilSquare]
DS1_Ruud=150
DS2_Ruud=250
DS3_Ruud=350
DS4_Ruud=500
DS5_Ruud=700
[ChaosCastle]
CC1_Ruud=100
CC7_Ruud=500
Via SQL (si el servidor usa tabla de configuración):
-- Ver configuración de Ruud por evento
SELECT EventType, EventLevel, RuudReward
FROM MuOnline..T_MN_EventRuudConfig
ORDER BY EventType, EventLevel;
-- Actualizar recompensa de Blood Castle nivel 7
UPDATE MuOnline..T_MN_EventRuudConfig
SET RuudReward = 1500
WHERE EventType = 1 AND EventLevel = 7;
-- EventType: 1=BloodCastle, 2=DevilSquare, 3=ChaosCastle
Paso 6: Configurar NPCs de Evento Adicionales
Además de la tienda de Ruud, los NPCs de evento (porteros de Blood Castle, Devil Square, etc.) se configuran en el mismo archivo MonsterSetBase.txt:
// Archangel Michael - Blood Castle NPC (mapa 9 = entrada BC)
131 9 014 025 0 0 1
// Charon - Portal de entrada Blood Castle
132 0 016 014 0 0 1
// Wizard - NPC de Devil Square
120 34 210 070 0 0 1
GameServer/Data/Monster/Monster.txt para encontrar el MonsterIndex correcto de cada NPC. Busca nombres como "Lugard", "Charon", "Michael" o "Gatekeeper" para identificar los índices correctos.Paso 7: Verificar y Probar las Configuraciones
Después de todos los cambios, sigue esta secuencia de verificación:
Verificación SQL → Confirma que los ítems aparecen en la tabla
-- Confirmar ítems registrados en la tienda
SELECT COUNT(*) AS TotalItems,
SUM(CASE WHEN SaleFlag = 1 THEN 1 ELSE 0 END) AS ItemsActivos
FROM MuOnline..T_MN_PointShopList
WHERE ShopCode = 1;
Verificación de Ruud del personaje → Confirma saldo de prueba
-- Agregar Ruud de prueba a un personaje
UPDATE MuOnline..Character
SET Ruud = Ruud + 50000
WHERE Name = 'TuCharGM';
-- Verificar saldo
SELECT Name, Ruud FROM MuOnline..Character WHERE Name = 'TuCharGM';
Reiniciar el GameServer → Los cambios en archivos .txt y .ini solo tienen efecto tras el reinicio
Inicia el servidor e inicia sesión con el personaje de prueba → camina hasta el NPC posicionado → abre la tienda → confirma que los ítems aparecen con los precios configurados → intenta una compra → verifica en la base de datos que el Ruud fue correctamente descontado.
Solución de Problemas Comunes
El NPC no aparece en el mapa:
- Confirma que el MonsterIndex existe en
Monster.txt - Verifica que las coordenadas estén dentro de los límites del mapa
- Asegúrate de que
MonsterSetBase.txtno tenga errores de formato (usa tabulaciones, no espacios)
La tienda abre pero muestra ítems incorrectos:
-- Verificar si el ShopCode del NPC coincide con la tabla
SELECT NpcIndex, ShopCode FROM MuOnline..T_MN_NpcShopInfo WHERE NpcIndex = 658;
El Ruud no se descuenta después de la compra:
- Verifica que el stored procedure
WZ_BuyPointShopItemexista en la base de datos - Confirma que la columna
Ruuden la tablaCharactersea de tipo INT (no BIGINT)
MuOnline y MuOnline_Account) antes de ejecutar cualquier UPDATE o DELETE en la tabla de la tienda. Un error en el WHERE puede borrar todos los precios configurados.Perguntas frequentes
¿Dónde está el archivo de configuración de los NPCs de evento en MuServer S6?
Los NPCs de evento se definen en GameServer/Data/Monster/Monster.txt (posicionamiento en el mundo) y en la tabla T_MN_PointShopList de la base de datos MuOnline, que almacena los ítems disponibles en la tienda de Ruud.
¿Cómo cambio el precio de un ítem en la tienda de Ruud via SQL?
Ejecuta UPDATE MuOnline..T_MN_PointShopList SET Price = 5000 WHERE ItemCode = 13 AND ItemIndex = 0; reemplazando ItemCode e ItemIndex con los códigos del ítem deseado y Price con el nuevo valor en Ruud.
El NPC de Ruud no aparece en el mapa — ¿qué debo verificar?
Confirma que el NPC está listado en GameServer/Data/Monster/MonsterSetBase.txt con las coordenadas correctas del mapa, que el MonsterIndex corresponde al NPC de tienda (generalmente 658 para Lugard en S12+), y que el servidor fue reiniciado después del cambio.
¿Puedo limitar qué clases pueden comprar en la tienda de Ruud?
Sí, en la tabla T_MN_PointShopList existe la columna ClassFlag donde defines un bitmask de clases permitidas. El valor 255 permite todas las clases; el valor 1 restringe solo a Dark Wizards (clase 0).