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

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.

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

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
Nota: En versiones S9 y S10 personalizadas, algunos desarrolladores implementan sistemas de "Point Shop" propios con tablas diferentes. Verifica la documentación de tu archivo de servidor antes de continuar.

Paso 1: Entender la Estructura del Sistema Ruud

El sistema Ruud opera en tres capas:

  1. Ganancia de Ruud — configurado por evento (Arca de Ruud, mapas específicos, recompensas de quest)
  2. Almacenamiento — columna Ruud en la tabla Character de la base MuOnline
  3. Tienda de Ruud — la tabla T_MN_PointShopList define 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);
Dica: El campo 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
Atenção: Las coordenadas X e Y deben estar dentro de los límites del mapa. Para Lorencia (mapa 0), el centro de la ciudad está alrededor de X=136, Y=140. Usa el cliente con visualizador de coordenadas activado para confirmar la posición exacta.

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
Dica: Consulta el archivo 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.txt no 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_BuyPointShopItem exista en la base de datos
  • Confirma que la columna Ruud en la tabla Character sea de tipo INT (no BIGINT)
Atenção: Siempre realiza un backup completo de la base de datos (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).

EQ

Equipo ViciadosMU

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

Sigue leyendo

Artículos relacionados