Bienvenidos a un nuevo tutorial, muchos mails nos consultan sobre parches para el cliente, ¿Qué es? ¿Cómo se hacen? ¿Para qué sirven?
Los parches para clientes de mu, eran apreciados en épocas un poco antiguas, donde no habÃa tanta diversidad de versiones de mu, sino que los pocos servidores que existÃan eran, 0.74, 0.97, 0.97+0.99 o 0.99b, creo que fue la etapa en que las versiones duraban sin que fuesen sustituidas rápidamente.
Pero en fin, ¿Qué hace diferente el cliente de un server de otro?.
Básicamente el main y/o launcher (Ya que en ellos están contenidos datos como la ip, la versión y el serial de nuestro servidor MuOnline), pero tambien existen otros archivos y carpetas que personalizan a nuestro juego haciendolo único, como por ejemplo el logo de carga, los textos, etc.
La función fundamental del parche es por ejemplo, si un usuario juega a un servidor 0.99B y quiere entrar a jugar a nuestro servidor (Que es de la misma versión) no será necesario que se baje el cliente completo sino que puede bajarse el parche de nuestro juego y adicionarselo al cliente ya descargado del otro servidor.
1)Entonces para comenzar el armado de nuestro parche, crearemos una carpeta llamada "Parche o Patch" (Pueden colocarle el nombre que desean) e incluir en la raiz de esa carpeta el main.exe y/o launcher.exe (En el caso que usemos launcher)
En este paso tengan cuidado, puede que nuestro main tenga hookeada alguna/s .dll/s especiales que no estan presentes en otros clientes, en ese caso debemos adjuntar la/s .dll/s junto al main para evitar un error de "archivo no encontrado".
2)El segundo paso será incluir la carpeta llamada "Local" que se encuentra en la ruta MiCliente/data/
Entonces sobre la carpeta "Parche" o "Patch" creamos una carpeta llamada "Data" y luego pegamos la carpeta "Local" dentro. (Esto evita que los usuarios tengan que estar pegando carpeta por carpeta en cada ruta del cliente, de esta forma el usuario solo deberá pegar el contenido de la carpeta "Parche" o "Patch" sobre el cliente)
La carpeta "Local" contiene diversos archivos, como por ejemplo el item.bmd, el text.bmd, move.bmd, etc (El contenido exacto de esta carpeta esta dado por la versión de nuestro cliente),
Estos archivos son fundamentales para evitar bugs de todo tipo, ya que, por ejemplo, si usamos un item.bmd que no es el de nuestro servidor, es probable que los jugadores tengan bugs en referencia al espacio que ocupan los items, nombre de los items, propiedades etc.
3)Y finalmente, deberemos incluir la carpeta llamada "Interface" ubicada en MiCliente/data/
Al igual que como hicimos en el paso número 2 ,es decir, copiamos la carpeta "Interface" y la pegamos en la carpeta "Data" de nuestro parche.
(Esta carpeta contiene logos e imágenes de carga del cliente, aca tambien dependerá de la versión de nuestro juego, ya que por ejemplo el logo de carga en un cliente 0.97D no se encuentra en esta carpeta pero si en la carpeta "Local")
Si hemos realizado correctamente los pasos anteriores, al finalizar nuestra carpeta "Parche" o "Patch" tendrá en su contenido las siguientes carpetas/archivos.
Adicional:Main y/o Luncher (Junto a sus dependencias .DLL, .ini, etc)
Carpeta data/local [Completa]
Carpeta data/interface [Logos de carga, interfaces del juego, etc.]
Para las versiones viejas brindar parches no es un problema mayor si seguimos los pasos de este tutorial, pero para las versiones a partir de Season 3 hasta Season 6 es un poco más complicado porque si bien un usuario puede tener un cliente de nuestra misma versión, nada indica que tambien sean compatibles.
Ya en versiones Season 8, Season 9, Season 10, Season 11 , Season 12 y siguientes no recomedaria utilizar parches y si deciden hacerlo tenga en cuenta que ademas de las carpetas básicas, tendrán que agregar otras como por ejemplo la del CashShop sino, es probable que nos les funcione dentro del juego.
No hace falta aclarar que si tenemos un cliente con items agregados, skins,mapas o lo que fuera y estamos haciendo un parche, deberán agregar los archivos y texturas en las carpetas correspondientes (Player, Item, etc...)