Cómo Configurar la Ruud Shop y NPCs de Evento en tu Servidor MU
Aprende a configurar la Ruud Shop y los NPCs de Evento en tu servidor MU Online: definición de ítems, colocación de NPCs, precios y programación de eventos.
Entendiendo el Sistema Ruud Antes de Configurarlo
El Ruud es una moneda de progresión vinculada al personaje, introducida en MU Online Temporada 15 y expandida en temporadas posteriores. Antes de editar cualquier archivo de configuración, es fundamental comprender cómo fluye la economía Ruud en tu servidor:
- El Ruud se otorga por eventos de eliminación específicos (Kundun, Balgass, Selupan, etc.) y al completar instancias de juego.
- Cada personaje tiene un límite de Ruud definido en el servidor — los jugadores no pueden acumular más que ese valor.
- El NPC de la Ruud Shop es un vendedor que lee desde una tabla de ítems dedicada, separada de las tiendas normales de NPC.
- Los NPCs de Evento son una categoría más amplia: incluyen vendedores estacionales, NPCs de fabricación y dispensadores de buffs vinculados a programaciones automáticas de eventos.
Hacer que ambos sistemas funcionen correctamente requiere ediciones en al menos tres capas: las definiciones de ítems del DataServer, la configuración de aparición de NPCs y (para eventos automatizados) el calendario del EventManager. Esta guía cubre las tres capas en una secuencia práctica orientada a producción.
Paso 1 — Definición de Ítems para la Ruud Shop
El primer archivo a editar es el archivo de definición de ítems de la Ruud Shop. Según tu compilación de servidor, puede llamarse de una de las siguientes formas:
DataServer/RuudShop.txtDataServer/ItemRuudShop.txt- Tabla de base de datos
T_RuudShop(compilaciones gestionadas por SQL)
Para compilaciones con archivos planos, cada línea del archivo de definición sigue esta estructura:
// RuudShop.txt — Formato de entrada de ítem
// Indice → TipoItem → CodigoItem → Nivel → RuudRequerido → Stock → VentaActiva
0 → ItemType:13 → ItemCode:10 → Level:0 → RequiredRuud:2000 → Stock:-1 → SaleEnabled:1
1 → ItemType:13 → ItemCode:11 → Level:5 → RequiredRuud:5000 → Stock:-1 → SaleEnabled:1
2 → ItemType:7 → ItemCode:15 → Level:0 → RequiredRuud:1500 → Stock:100 → SaleEnabled:1
3 → ItemType:4 → ItemCode:29 → Level:10 → RequiredRuud:9000 → Stock:-1 → SaleEnabled:1
// Stock:-1 significa stock ilimitado
// SaleEnabled:0 deshabilita temporalmente la entrada sin eliminarla
Explicación de los campos clave:
- ItemType — corresponde al índice de categoría de ítem en tus tablas de definición (armas, armaduras, pociones, etc.)
- ItemCode — el ID específico del ítem dentro de esa categoría
- Level — el nivel del ítem con el que se vende (afecta las estadísticas al momento de entrega)
- RequiredRuud — costo en unidades de Ruud; balancea este valor con las tasas de obtención de Ruud en tu servidor
- Stock — establece
-1para stock ilimitado, o un entero positivo para stock limitado que se agota con cada compra
Después de editar, guarda el archivo. La mayoría de las compilaciones con archivos planos requieren un reinicio del DataServer o el comando de consola reloadshop para aplicar los cambios sin un reinicio completo.
> [!CONSEJO] > Comienza con un catálogo pequeño de 4 a 8 ítems y observa la acumulación de Ruud de los jugadores durante una semana antes de ampliar la tienda. Saturar la tienda desde el principio devalúa el Ruud rápidamente y elimina el incentivo de progresión a largo plazo.
Paso 2 — Registrando el NPC de la Ruud Shop en la Configuración de Aparición
El NPC de la Ruud Shop debe ser colocado en el mundo a través de tu configuración de aparición de NPCs. Esto se gestiona normalmente en una de estas ubicaciones:
DataServer/MonsterSpawn/— un archivo por mapaDataServer/NpcSpawn.txt— lista consolidada de apariciones- Tabla de base de datos
T_NpcSpawn— compilaciones gestionadas por SQL
Para una entrada de aparición en archivo plano, el formato es el siguiente:
// NpcSpawn.txt o archivo de aparición específico del mapa — formato de colocación de NPC
// CodigoNpc → NumeroMapa → CoordX → CoordY → Direccion → TiempoReaparicion → EsEvento
// Administrador de Ruud Shop (el código NPC varía por temporada; valores comunes: 568, 577, 603)
NpcCode:568 → MapNumber:0 → CoordX:125 → CoordY:135 → Direction:2 → RespawnTime:0 → IsEvent:0
// NPC de evento Blood Castle (ejemplo de NPC de evento)
NpcCode:131 → MapNumber:11 → CoordX:14 → CoordY:16 → Direction:2 → RespawnTime:0 → IsEvent:1
// NPC Puerta del Chaos Castle
NpcCode:232 → MapNumber:0 → CoordX:185 → CoordY:100 → Direction:4 → RespawnTime:0 → IsEvent:1
Referencia de campos:
- NpcCode — debe coincidir con la definición del NPC en los datos del cliente. Los códigos que no coinciden generan NPCs invisibles o causan cierres inesperados del servidor.
- MapNumber — 0 es Lorencia, 1 es Dungeon, 2 es Devias, etc. Consulta el índice de mapas de tu servidor.
- Direction — entero de 0 a 7 que representa incrementos de 45 grados desde el norte. La dirección 2 apunta al sur (hacia los jugadores que se acercan desde el punto de aparición).
- IsEvent — cuando se establece en 1, el NPC solo aparece durante un ciclo de evento activo gestionado por el EventManager.
> [!ATENCION] > Nunca coloques un NPC de Evento (IsEvent:1) en una ubicación que bloquee rutas de movimiento. A diferencia de los monstruos, los NPCs no se mueven, y un NPC mal colocado en un pasillo bloqueará permanentemente el movimiento de los jugadores en esa celda. Utiliza un editor de mapas o un visor de coordenadas para verificar la colocación antes de publicar en producción.
Paso 3 — Configurando los Horarios de los NPCs de Evento
Los NPCs de Evento vinculados a horarios automáticos (Blood Castle, Devil Square, Chaos Castle, Templo de la Ilusión y otros) son controlados por la configuración del EventManager. Este archivo suele encontrarse en:
GameServer/EventManager.txtGameServer/Config/EventSchedule.txt- Tabla de base de datos
T_EventSchedule
Un bloque de horario estándar tiene el siguiente aspecto:
// EventSchedule.txt — configuración de evento recurrente
// IDEvento → HoraInicio → MinutoInicio → DuracionMinutos → NumeroMapa → Activo
// Blood Castle — se ejecuta cada 2 horas empezando a las 00:00
EventID:1 → StartHour:0 → StartMinute:0 → Duration:20 → MapNumber:11 → Enabled:1
EventID:1 → StartHour:2 → StartMinute:0 → Duration:20 → MapNumber:11 → Enabled:1
EventID:1 → StartHour:4 → StartMinute:0 → Duration:20 → MapNumber:11 → Enabled:1
// Devil Square — desfasado 1 hora para evitar solapamiento
EventID:2 → StartHour:1 → StartMinute:0 → Duration:30 → MapNumber:9 → Enabled:1
EventID:2 → StartHour:3 → StartMinute:0 → Duration:30 → MapNumber:9 → Enabled:1
// Templo de la Ilusión — una vez al día en horario pico
EventID:10 → StartHour:20 → StartMinute:0 → Duration:25 → MapNumber:45 → Enabled:1
EventID:10 → StartHour:22 → StartMinute:0 → Duration:25 → MapNumber:45 → Enabled:1
El EventManager lee este horario y automáticamente activa y desactiva los NPCs con IsEvent:1 para cada evento, emite anuncios del sistema, bloquea los mapas de evento y abre las puertas de los eventos. Los cambios en este archivo suelen requerir un reinicio del GameServer o el comando de consola reloadevent.
Paso 4 — Validando y Probando tu Configuración
Tras completar todas las ediciones, sigue esta secuencia de validación antes de abrir el servidor a los jugadores:
- Reinicia primero el DataServer — debe cargar las definiciones actualizadas de tienda y NPCs antes de que el GameServer se conecte.
- Reinicia el GameServer — carga las tablas de aparición y los horarios de eventos al inicio.
- Inicia sesión con una cuenta GM y navega a cada coordenada de colocación de NPC para confirmar su visibilidad.
- Usa un comando GM (generalmente
/addruud [cantidad]o equivalente) para otorgarte Ruud de prueba e intenta comprar desde la Ruud Shop. - Monitorea la consola del GameServer para detectar mensajes de tipo
NPC not found,invalid item indexoshop load errordurante esta sesión de prueba. - Activa manualmente el inicio de un evento mediante un comando GM (generalmente
/startevent [IDEvento]) y confirma que el NPC de Evento aparece y desaparece correctamente al finalizar el ciclo.
> [!ATENCION] > Realiza siempre las pruebas en una copia local o de preproducción de tu servidor. Una entrada de NPC con código incorrecto o una definición de tienda mal formada puede provocar un cierre inesperado del GameServer al iniciarse, afectando a todos los jugadores conectados. Mantén una copia de seguridad de todos los archivos editados antes de aplicar cambios en producción.
Errores Comunes de Configuración y Cómo Resolverlos
El NPC es invisible en el juego pero está presente en la configuración de aparición: El NpcCode en tu archivo de aparición no coincide con ningún NPC registrado en la tabla de NPCs del cliente o del servidor. Compara con tu NpcInfo.txt o MonsterInfo.txt y corrige el código.
La Ruud Shop se abre pero todos los ítems aparecen en gris: El saldo de Ruud del personaje está por debajo del valor RequiredRuud, o el campo SaleEnabled está en 0. Verifica también que el tipo de vendedor del NPC esté configurado como tienda Ruud y no como tienda Zen: un tipo de vendedor incorrecto hace que la ventana de la tienda se abra con la columna de moneda equivocada.
El NPC de Evento aparece de forma permanente en lugar de según el horario: El indicador IsEvent está en 0 en la entrada de aparición. Establécelo en 1 y confirma que el EventID en tu horario coincide con lo que el servidor asigna a ese tipo de evento.
No se otorga Ruud al completar el evento: Esto está controlado por la tabla de recompensas del evento, no por la configuración de aparición de NPCs. Busca EventReward.txt o T_EventReward y confirma que existe una entrada de recompensa en Ruud para el EventID correspondiente.
Trabajando de forma sistemática a través de estas capas — definiciones de ítems, colocación de NPCs, programación de eventos y tablas de recompensas — dispondrás de un sistema de Ruud Shop y NPCs de Evento completamente operativo que enriquece el ciclo de progresión en el juego avanzado para tu comunidad de jugadores.
Perguntas frequentes
¿Qué es el Ruud y en qué se diferencia del Zen o las WCoins?
El Ruud es una moneda de progresión por personaje introducida en la Temporada 15 de MU Online. A diferencia del Zen (obtenido de monstruos) o las WCoins (moneda de pago), el Ruud se obtiene completando contenido específico como matar a Kundun, participar en el Templo de la Ilusión o finalizar eventos estacionales. Es intransferible entre cuentas, lo que lo convierte en una moneda vinculada exclusivamente al avance individual del personaje.
¿Dónde se almacenan las definiciones de ítems de la Ruud Shop?
Las definiciones de ítems se encuentran generalmente en el DataServer bajo archivos como RuudShop.txt o ItemRuudShop.txt. En compilaciones de Temporada 17 en adelante, es posible que se gestionen mediante la tabla de base de datos T_RuudShop o equivalente, en cuyo caso los cambios se aplican mediante scripts SQL en lugar de editar archivos planos.
¿Puedo colocar NPCs de Evento en cualquier mapa?
La mayoría de los NPCs se pueden colocar en cualquier mapa que admita aparición de NPCs, pero los NPCs de Evento como el Goblin del Caos, el NPC de Bolsa de Bendición o los vendedores estacionales suelen estar restringidos por defecto a Lorencia, Noria o Devias. Puedes anular esto editando la sección MonsterSpawn o NpcSpawn del archivo de configuración del mapa correspondiente, pero ten en cuenta que algunos NPCs tienen restricciones del lado del cliente que requieren parches de datos coincidentes.
¿Por qué mi Ruud Shop muestra ítems pero los jugadores no pueden comprarlos?
La causa más frecuente es un tipo de moneda incorrecto en la definición de la tienda: el campo CurrencyType debe coincidir con el índice de tipo Ruud correcto para tu temporada. Otro problema habitual es que el NPC no esté registrado en la lista de vendedores activos del servidor, o que el rango de interacción en NpcInfo sea insuficiente. Revisa los registros del servidor en busca de entradas como 'invalid shop' o 'item not available' después de un intento de compra.