Invasion Manager en MuEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a configurar e interpretar el archivo responsable por las invasiones en nuestro servidor MuEMU



El archivo encargado de esto lo encontramos en la siguiente ruta: 
Muserver/data/Event/InvasionManager.dat
1) Este archivo contiene 4 secciones, la 0-1-2-3 y analizaremos en detalles cada una de ellas.
Para este tutorial, utilizare un archivo vacio, de esa forma podremos visualizarlo de forma limpia y podremos configurarlo con nuestros parámetros.
La primera sección es la 0, en esta sección se define lo siguiente:
 
 Visualizando la interfaz de archivo invasion manager  

Index = Corresponde al ID de la invansión que deseamos configurar.(0=Skeleton King, 1=Red Dragon, 2=Dorados, 3=White Wizard, 4=Año Nuevo, 5=Conejos,6=Verano, 7=Navidad, 8=Medusa) 
Year = Corresponde al año en que ejecutará la invasión 
Month = Corresponde al mes en que ejecutará la invasión (Del 1 al 12) 
Day = Corresponde al día del mes en que ejecutará la invasión (Del 1 al 31) 
DoW= Son las siglas de Day Of Week, día de la semana en que se ejecutará el evento. (1=Domingo, 2=Lunes, 3=Martes, 4=Miercoles, 5=Jueves, 6=Viernes, 7=Sábado) 
Hour = Corresponde a la hora en que ejecutará la invasión (Formato 24 HS)
Minute = Corresponde a los minutos en que ejecutará la invasión (De 0 a 60)
Second = Corresponde a los segundos en que ejecutará la invasión (De 0 a 60)
Atención: el valor * significa "todos". 
Ejemplo: si en tenemos el campo Month=* , eso significa que el evento transcurrirá todos los meses, el * se usa caso no desees especificar algun valor. 
A modo de ejemplo, configure para que el evento White Wizard, transcurra todos los años, todos los dias, todos los meses, todos los dias de la semana, a las 16 hs , 15 minutos, todos los segundos.
El archivo configurado nos quedará asi: 
 
Visualizando la seccion 0 del invasion
  manager 
 
2) Ahora pasaremos a configurar la sección 1, en este apartado debemos configurar:
Index =  Corresponde al ID de la invasión.
RespawnMessage =  Nº de mensaje que saldrá cuando la invasión comienze. (Este número lo encontramos en el archivo Muserver/data/message.txt, generalmente ya viene definido para todas las invasiones originales de la versión, pero caso deseen, pueden crear un nº de mensaje personalizado)
DespawnMessage = Nº de mensaje que saldrá cuando la invasión termine. (Este número no viene definido en el message.txt ya que no es necesario anunciarlo, por eso basta con dejar un *)
BossIndex = Nº del Boss o monster que aparecerá en la invasión. Es valor lo pueden extraer del archivo Muserver/data/Monster/Monster.txt (Caso su invasión no tenga un boss o monster , dejamos un *, tambien pueden obtener el nº del monster haciendo un Clic Aqui)
BossMessage = Nº de mensaje que saldrá al matar el monster. (Este número lo encontramos en el archivo Muserver/data/message.txt, generalmente ya viene definido para todas las invasiones originales de la versión, pero caso deseen, pueden crear un nº de mensaje personalizado, y si la invasión no tiene ningun boss , dejamos un *)
InvasionTime = Duración de la invasión en segundos
Continuando con la ejemplificación, configuraré esta sección de la siguiente forma:
El index continuará siendo 3, el mensaje de aparición será el 195 (Recuerden, este mensaje lo encontrarán en el archivo message.txt), el mensaje de finalización será *
El BossIndex será el 135, es decir, el número que corresponde al boss White wizard. (Podrán encontrar el listado completo en el archivo Monster.txt). 
El mensaje que aparecerá al matar el Boss será el Nº 205 (Ya definido en el archivo message.txt) y finalmente, la duración del evento será de 600 segundos (10 minutos)
El archivo configurado nos quedará asi:
 
 Visualizando la seccion 1 del invasion
  manager 
 
3) La siguiente sección es la 2, en esta sección debemos configurar:
Index = Corresponde al ID de la invasión.
Group = Se utiliza en el caso de invasiones multiples, como por ejemplo en el caso de la invasión de los dorados, en donde varios monsters , invaden diferentes mapas de forma simultánea. (El valor va de 0 a X). 
Map =  Nº de mapa en donde se desarrollará la invasión. Si no recuerdas el número de cada mapa, puedes consultar haciendo un Clic Aqui
Value = Permite la creación de invasiones en donde los monster aparecen de forma randon en el mapa.
Continuando con la ejemplificación, configuraré esta sección de la siguiente forma:
El index continua siendo 3 . El grupo será 0 ya que no se trata de invasión de dorados. El mapa será lorencia y noria y el value será 0

Visualizando la interfaz de archivo invasion manager seccion 2 
 
*Atención: Como la invasión será en donde mapas, debemos agregar dos lineas, es decir, si deseamos que una misma invasión transcurra en diferentes mapas, debemos agregar tantas lineas como mapas deseamos.
 
4) Y finalmente llegamos a la última sección, la 3.
En este apartado debemos configurar:
Index=  Corresponde al ID de la invasión.
Group=  Caso tengas definidos grupos en la sección 2, deberás agregarlos en este apartado seguiendo la misma secuencia.
MonsterClass = Nº de monster que aparecerá en la invasión. Sino recuerdas los números de los monsters, puedes consultar haciendo un Clic Aqui. Tambien es importante saber que podemos tener varios monsters en un a misma invasión (Por ejemplo: boss+tropas) agregando más de una línea con el mismo index
RegenType = Aqui definimos el tipo de regeneración, si colocamos 0, al matar el boss o el monster , la invansión finaliza, pero si en cambio colocamos un 1, el boss/monster se regenera nuevamente y continurá regenerandose por un tiempo que nosotros podremos definir a continuación.  
RegenTime = Aqui podremos definir el tiempo de regeneración, este valor se calcula en segundos.
Y para completar nuestra ejemplificación, completaremos el archivo de la siguiente forma:
El index continua siendo 3, el group será 0, en MonsterClass agregaremos al Boss nº 135 (White Wizard) en una primera linea, y dos lineas más para los monsters ID 136 (Destructive ogre soldier) y 137 (Destructive ogre archer)
En RegenType colocaré 0 (Es decir, no se regenerará al matarlo) y en RegenTime, tambien colocaré 0 (Ya que el RegenType fue definido en 0, no hay necesidad de definir el tiempo)
 
Visualizando la interfaz de archivo invasion manager seccion 3

5) Para finalizar de configurar la invasión, debemos agregar los monsters al archivo 
Muserver/data/Monster/MonsterSetBase.txt

Lo que debemos hacer en ese archivo es crear una nueva sección con ID 3 (Recuerden que el ID 3 es para eventos) y agregamos los monsters de la siguiente manera:  

Monster= Debemos agregar el número de cada monsters que participara en la invasión,
MapNumber =  Aqui debemos agregar el número de mapa en donde se origina la invansión
Range =  Rango máximo de movimiento del monster
BeginPosX = Posición incial X en donde podrá aparecer el monster    
BeginPosY= Posición incial Y en donde podrá aparecer el monster         
EndPosX =  Posición final X en donde podrá aparecer el monster       
EndPosY =   Posición final Y en donde podrá aparecer el monster   
Direction =  Dirección de movimiento. (-1 para ir a en cualquier dirección)      
Quantity =  Cantidad de monsters que saldrán de forma simultánea. 
Value =  0
Comment = De forma opcional podremos comentar el nombre del monsters para ubicarlos facilmente dentro del archivo para futuras modificaciones. Para eso , agregamos dos // luego de la último valor y seguido el nombre de referencia.
Finalizando con nuestra ejemplificacion, nos quedaría asi:
En la columna Monster como serán 3 monsters los que participan en la invasión debemos crear 3 lineas, en cada línea agregaremos el id de cada monster de la siguiente forma: ID:135 (White Wizard), ID 136 (Destructive ogre soldier) e ID 137(Destructive ogre archer)
  
Range: En este caso le daremos un rango máximo de 30
 
En la columna MapNumber, debemos agregar los mapas en donde deseamos que se origine la invasión, ¿Pero podemos agregar cualquier mapa?, la respuesta es no, debemos mantener la coherencia con la que tenemos configurado en nuestra invasión. Si recuerdan en la sección 2, hemos definido los mapas y en mi caso era lorencia (0) y el mapa noria (3). Como no podemos agregar mas de un mapa en una misma linea, debemos agregar dos lineas una por cada mapa. (Y no olvidemos que por cada mapa, debemos agregar las 3 lineas por cada monster)
 
BeginPosX, BeginPosY, EndPosX y EndPosY: son las coordenadas de aparición. Estas coordenadas deben existir en el mapa y ser accesibles por los jugadores. 
Para calcular estas coordenadas debemos ingresar al juego para verificar su existencia. (En un próximo tutorial veremos este tema con mayor profundidad.)
Nuestros valores seran: 148-047-164-065 para el mapa lorencia.
                                        194-070-204-086 para el mapa noria.
Colocamos las mismas coordenada tanto para el boss como para sus tropas, de esa forma apareceran juntos.

Direction: en este caso colocaremos -1 para que el monster se mueva en todas las direcciones.
 
Quantity: En el caso del Boss, colocare 1 y en el caso de las tropas colocaré 10.
 
Value= Será 0 
 
Comment = Colocaremos el nombre de cada monster.(Esto es opcional)
El archivo editado nos quedará asi:  

Visualizando el monstersetbase  
 
6) Y finalmente realizamos el test en nuestro servidor.
 
Visualizando la invasion
 
Como podemos ver, encontramos al boss y sus tropas en el rango de coordenadas configurado.
En esta ejemplificaciones se utilizo una invasión ya existente, la idea es conocer el uso de las funciones de cada sección para poder realizar nuestras propias invasiones personalizadas o modificar las ya existentes.

Editar el CashShop en MuEMU [PARTE I]

 

Bienvenidos a un nuevo tutorial, hoy aprenderemos a editar la tienda CashShop en los files MuEMU. Como este es un tema sumamente amplio, lo haremos por partes, en esta primera parte, aprenderemos a editar nuestra tienda CashShop de forma básica, es decir, a conocer la interfaz, a agregar algunos items, etc.

Para los que no conocen, la tienda/mercado Cashshop , es aquel mercado que, cuando ingresamos al juego y estando en una zona segura aparece al apretar la tecla X.



Este tipo de mercado, tiene la particularidad de que trabaja con los siguientes tipos de monedas:
a)WcoinC
b)WcoinP 
c)GoblinPoint
Si no sabes como editar este tipo de monedas a una cuenta, revisa el siguiente tutorial haciendo Clic Aqui 
Para los que aun no saben a cúal mercado estamos haciendo referencia, observen la siguiente imagen:
 
Visualizando la interfaz del cashshop 7 
 
1) Lo primero que debemos saber, es que, este tipo de shops requiere ediciones server/cliente. 
Pero ¿Qué significa una edición server/cliente? Cuando decimos que una edición es server/cliente, es porque, por cada modificación que realizemos del lado del servidor, debemos hacerlo del lado del juego, es decir, del lado del cliente. Si efectuamos una modificación de forma unilateral (O del lado server o del lado cliente) ocasionaremos un error, que; traerá como consecuencia que el CashShop deje de funcionar en su totalidad. 
 
2) Para comenzar, debemos descargar el archivo llamado Editor CashShop MuEMU.rar el cual podran encontrar en nuestra página de Facebook. Una vez descargado, descomprimimos la carpeta en nuestro escritorio y ejecutamos el archivo Editor CashShop MuEMU.exe 
 
 Abiendo el ejecutable
 
3) Una vez ejecutado el programa, veremos la interfaz inicial, la cual contiene varias secciones , la primera sección es la llamada: "Item Table", en esta primera parte lo que debemos hacer es seleccionar el item que deseamos poner a la venta, en mi caso será una Sword Flameberge
 
 
4) Nuestro siguiente paso, sera configurar la sección "Main Info", aqui le podremos dar un nombre al item diferente al original y una descripción, en mi caso dejare el nombre real y en descripción colocaré "CashShop MuOnline Tutoriales" 
En la misma sección, tenemos cuatro variables a definir, a las cuales debemos prestar atención para evitar errores. 
A) PackType: Define el tipo de pack que usaremos, tenemos variantes, como Normal (Cantidad), Expire (El item desaparece vencido el tiempo dado) y Rate (%) 
Como este es el primer tutorial, trabajemos los aspectos básicos, entonces seleccionaremos la opción Normal(Qty)
B) En Currency debemos seleccionar el tipo de coin por la cual se venderá nuestro item, en mi caso seleccionaré WcoinC
C) Y finalmente en Count , definimos la cantidad de items que estamos ofreciendo a venta, en mi caso será 1 (unidad) (Atención: este valor es la cantidad de item que ofertamos en el CashShop, es decir, si en lugar de 1 ponemos por ejemplo 5, se venderan 5 Swords Flameberge juntas. Este valor no es el precio por el cual queremos vender el item, eso lo veremos a continuación)
Nuestra sección Main Info editada nos quedará asi:
 
Visualizando la main info cashshop
 
5) Y finalmente pasemos a la última sección, la llamada "Products", aca podremos definir si se trata de un Package (Varios items a elección) o Bundle (Varios items juntos). Como dijimos anteriormente, en este primer tutorial, veremos lo básico, entonces dejaremos la opción Package, MultiPackage y Bundle para un próximo tutorial.
En cuanto a las demas opciones, completaremos el cuadro de la siguiente manera:
A)En el campo donde va el nombre, podremos modificarlo si desean, en mi caso dejaré el original, y como era una sola unidad la que venderé, dejaré (1 UN)
B)El campo de abajo, el que dice "1" , es el mismo campo de unidad que modificamos arriba, eso indica que si lo modificamos abajo, automáticamente se modificara arriba (En el campo nombre). (Recuerden, este valor hace referencia a cantidad de un mismo items que pondremos a venta)
C)En el campo "Price", debemos colocar el costo en la coin seleccionada anteriormente, en mi caso serán WcoinC. Colocaré un valor simbólico de 100 WcoinC
D) Y finalmente los demás campos hacen referencia a las características de ese item como nivel, duración, sockets, opc. exc, etc. esto lo configuran a gusto de acuerdo al item seleccionado.
Una vez terminado de configurar el item, hacemos un clic en boton  >Add
 ( Los nombres de las columnas horizontales [W coin (C), W coin (P) y Goblin Point] y verticales [Special, Accessory, Buff, Pet, Ticket], se pueden editar, mover, agregar nuevas, etc. Para eso, basta con hacer un clic derecho sobre el campo y seleccionar la opción deseada. 
Nuevamente, como se trata de un primer ejemplo en mi caso conservaré la originalidad de la interfaz.)
 
Visualizando la interfaz de la opcion products
 
6)Y listo, con eso ya tenemos editado nuestro primer item en nuestra CashShop. Pero claro, sino exportamos los cambios al server/cliente, nada de esto se reflejará al ingresar al juego, por eso debemos prestar atención a esta parte ya que muestro se confunden y esta es una de las razones por las cuales nos escriben a diario.
El programa nos permite salvar el proyecto, de esta forma podremos continuarlo, modificarlo, quitar o agregar item en modificaciones futuras. Para salvar el proyecto hacemos un clic en File => Save As y seleccionamos la ruta en donde se guardará nuestro archivo CashShopData.dat (En los próximos tutoriales veremos como retomar un proyecto guardado)
 
Visualizando save as
 
7) Y si deseamos aplicar los cambios a nuestro servidor/cliente, debemos exportar el proyecto, para eso hacemos un clic en File => Export
 
Exportar proyecto cashshop
 
8) Luego nos aparecerá el siguiente mensaje: 
 
Mensaje de exito
 
9) Ese mensaje nos indica que los archivos del server/cliente fueron exportados a la carpeta Output , la cual se abrirá al aceptar el mensaje anterior. Caso no se abra automáticamente o la cierren, la podrán encontrar en la ruta original en donde hemos descargado los archivos de editor (Escritorio > Editor CashShop MuEMU > Output ).
 
Visualizando la carpeta output
 
10) Dentro de la carpeta OutPut, encontraremos dos carpetas, una llamada Server y la otra llamada Client
El contenido de la carpeta Client contiene 3 archivos: IBScategory, IBSPackage, IBSProduct, los copiamos y los pegamos en la siguiente ruta de su cliente:
MiClienteMuOnline/Data/InGameShopScript/512.2011.006
(Caso tu cliente tenga la carpeta 512.2011.047 tambien hacemos el mismo procedimiento), entonces pegamos los archivos y reemplazamos.

Copiando los archivos del cashshop al cliente
 
11) Por otra parte, el contenido de la carpeta Server contiene 4 archivos, pero atención, de esos 4 archivos sólo usaremos dos y debemos renombrarlos antes de pegarlos en el servidor. 
Esos dos archivos que debemos copiar y pegarlos en el escritorio para renombrarlos son: CashShopPackageMuEmu y CashShopProductMuEmu y los renombraremos de la siguiente forma:
CashShopPackageMuEmu => CashShopPackage
CashShopProductMuEmu => CashShopProduct
Es decir, le quitamos el MuEmu al nombre

Visualizando los archivos del servidor del cashshop
 
12) Ahora copiamos los archivos ya renombrados y los pegamos en la siguiente ruta: 
MuServer/Data/CashShop 
y reemplazamos.

Visualizando la interfaz del firewall en Windows 7
 
13) Ahora reiniciamos el servidor y verificamos los cambios en el juego.

Visualizando la sword en el cashshop
 
Como podemos observar, aparece correctamente el item en nuestro cashshop, junto a su valor en coins y la descripción dada.
Tengan en cuenta que el test real no es ver el item publicado en el cashshop, sino que el test real es cuando podemos efectuar la compra del mismo, entonces siempre que editen el cashshop o lo modifiquen, hagan el test completo e intentanlo comprar para ver si aparece en el inventario.

Observaciones: 
- Este tutorial solo funciona en files base MuEMU, si utilizas otro tipo de archivos no te funcionará.
- Toda la intefaz del cashshop es modificable, desde los nombres, columnas, hasta el skin o diseño.
- En próximos tutoriales, veremos todos los temas pendientes que fuimos comentando.