Eliminar logs mediante un .bat

Bienvenidos a un nuevo tutorial, hoy aprederemos a eliminar los logs o archivos creados por las aplicaciones de nuestro servidor Mu Online.
Para quien no lo sabe, los logs son "Registros" que crean nuestras aplicaciones (Siempre y cuando las tengamos habilitadas)
Generalmente estos registros se guardan en un archivo .txt y dentro se almacena información relevante en dos grandes aspectos:
a)Información que detalla lo sucedido dentro del juego, en relación a los personajes, como trades, posts, etc
b)Información que detalla lo sucedio con la aplicación, como errores, conexiones, etc.

Si estos archivos guardan información relevante o importante ¿Por que deberíamos eliminarlos?
El sentido de este tutorial no es eliminar la información, justamente, estamos haciendo mención a la importancia del contenido, pero como ya hemos dicho, estas informaciones se guarda en espacios físicos en donde se aloja el servidor y con el tiempo estos archivos comienzan a representar un grande porcentaje de nuestro espacio.



Esta inofensiva práctica (La de guardar y acumular logs o registros) puede convertirse en una verdadera pesadilla con varias consecuencias.
Veamos un ejemplo concreto de lo que puede llegar a suceder:
Supongamos que tenemos un servidor corriendo con aprox. 50 personajes online y por esas casualidades (O mejor dicho: un descuido en el área de mantenimiento del servidor) nos quedamos sin espacio en el disco

¿Qué creen que sería lo peor que puede suceder?
Han escuchado hablar alguna vez de la "Memoria virtual" o "Paginación"; sin entrar en detalles técnicos para no extendernos, cuando nuestro sistema no dispone de suficiente memoria ram, esta "ocupa" espacio físico de nuestro disco para "emularla", al no tener espacio suficiente ni memoria ram, el sistema queda totalmente incapacitado de procesar datos y aca entramos en primer grande problema, consecuencias: varias.

¿Y que sucede con el servidor MuOnline?
Si nos quedamos sin espacio en disco, los avances que realizen nuestros jugadores no serán almacenados, porque toda esa información que realiza cada personaje la graba nuestro servidor en la base de datos.
Esa información son datos físicos, los cuales no se destruyen cuando un personaje sale del juego, sino al contrario, se guardan en las diferentes tablas y columnas de nuestro SQL.
Al no tener espacio, estos datos se perderán y como consecuencia todos los personajes entrarán en un bucle infinito de rollback hasta que volvamos a disponer de espacio nuevamente. Consecuencias: varias.

Estos dos casos hipotéticos son algunos de los escenarios de todo lo que puede llegar a suceder, pero existen un sin fin más.

1)Para evitar esto, necesitamos ejecutar "tareas de mantenimiento" (Semanal, mensual, etc, el tiempo dependerá de nuestro servidor y de las limitaciones de nuestro sistema)
Una de estas tareas es la eliminación de Logs o registros (Nuevamente, como hemos dicho anteriormiente, esta es información importante por lo que antes de eliminar suban el contenido a la nube o pasen estos registros a un disco con mayor capacidad y solo eliminen esta información cuando esten seguros que ya no la necesitarán.)

Estos logs o registros se guardan generalmente en carpetas llamadas "Logs" las cuales podemos encontrar dentro de cada aplicación en la carpeta Muserver, como por ejemplo las siguientes:
Muserver\GameServer\LOG
Muserver\ConnectServer\LOG
Muserver\DataServer\LOG
Las rutas de estos archivos varian dependiendo los files que estemos usando, ya sean Titan Tech, MuEMU, IGCN, etc.

Visualizando logs en la carpeta Muserver logs

2)Eliminar esos archivos de forma manual, es una tarea sencilla ya que podemos usar la combinación de teclas "Control+E" => "Supr" => "Enter" (Atención, recuerden que esta forma de eliminación no libera espacio en disco, ya que al hacer esto, enviamos el contenido a la papelera de reciclaje)
Para eliminar un archivo sin pasar por la papelera de reciclaje, debemos precionar la tecla "Shift" antes de precionar la tecla "Supr"
Como ya lo hemos dicho, es una tarea muy sencilla pero, en algunos files nos encontramos con lo siguiente:

Visualizando las carpetas con logs

3)Como podemos observar son muchas carpetas, y por cada una de ellas deberemos ingresar y eliminar los registros, luego repertir este procedimiento en todas las carpetas del juego, entonces lo que parecia una tarea sencilla, se convierte en una gran demanda de tiempo.(Recuerden que los mantenimientos se deben realizan con el servidor OFFLINE)
Entonces lo podemos hacer para simplificar esta tarea, es por ejemplo crear un archivo .bat que realize esto de forma rápida y sencilla.

Para esto, creamos un Documento de texto (Puede ser con el "Bloc de notas") le ponen el nombre que desean y luego de creado lo abrimos.
Dentro de el pegaremos lo siguiente
del C:\Muserver\GameServer\LOG /q
Analicemos su contenido:
del: Comando que nos permitira borrar/suprimer los archivos de la carpeta Logs ejecutado en .bat
C:\Muserver\GameServer\LOG: Ruta del archivo en donde se encuentras los archivos .txt a eliminar
/q: Evitamos la confirmación de eliminación del archivo.
Luego de eso, guardamos lo cambios y modificamos la extensión del archivo original [nombre].txt por [nombre].bat
Para modificar la extensión borramos el .txt y escribimos .bat
Sino podemos cambiarle la extensión, debemos ingresar a "Panel de Control" => "Opciones de carpeta"
Luego, en nuestra nueva ventana, hacemos un clic en "Ver" y nos desplazamos hasta la opción que dice "Ocultar las extensiones de archivos para tipos de archivo conocidos"
y destildamos la opción
Luego hacemos un clic en "Aplicar" y luego en "Aceptar"

Destildando la opción para poder modificar las extensiones de archivos

4)Finalmente para poner en funcionamiento nuestro "eliminador de archivos", bastará con ejecutar el [nombre].bat

En el paso 3) solo hemos cargado una ruta de una carpeta con registros a eliminar, lógicamente la tarea de ustedes será cargar el resto de las carpetas en donde se encuentren los logs que deseamos borrar ya que como hemos dicho antes, las rutas dependen o varian de acuerdo a los files que usemos.
Supogamos que deseamos eliminar los logs de la carpeta "ConnectServer" y el server se encuentra en el disco C:\, la ruta seria la siguiente:
del C:\Muserver\GameServer\LOG /q
del C:\Muserver\ConnectServer\LOG /q
Es decir, los vamos agregando uno debajo del otro.

Tambien, si deseamos automatizar aun este proceso, podemos usar el "Programador de Tareas de Windows" el cual podemos usar para indicarle que ejecute este archivo .bat cuando nosotros deseemos sin necesidad de nuestra presencia.

Instalacion pendiente SQL 2000

Bienvenidos a un nuevo tutorial, hoy veremos un problema relacionado al proceso de instalación del SQL Server 2000
Muchas veces al intentar instalar el SQL nos encontramos con un error muy frecuente, el cual consiste en que a la hora de ejecutar el asistente nos aparece un mensaje con la siguiente leyenda:
Una instalación anterior del programa creó operaciones de archivos pendientes en el equipo de instalación. Debe reiniciar el equipo antes de ejecutar la instalación

Error de instalacion anterior pendiente en SQL 2000

Si bien, el error parece solucionarse con tan solo reiniciar el sistema, no siempre corremos con esa suerte ya que hemos comprobado que no es realmente una solución infalible y puedes estar un largo periodo intentándolo sin éxito.



Para solucionar este problema podemos seguir estos sencillos pasos:
1)Hacemos clic en el boton "Inicio" o apretamos la tecla "Windows", seguido escribimos en el cuadro de búsqueda "regedit" y le damos "Enter"
(Si nos aparecere la ventana preguntando si deseamos permitir que este programa realize cambios en nuestro sistema, simplemente hacemos un clic en SI)

Ingresando al regedit

2)Como lo que haremos será una modificación en los registros del sistema, antes de comenzar haremos un backup de los mismos, para tener una copia de seguridad en caso que cometamos algun error.
Para esto, hacemos un clic en donde dice "Archivo" y seleccionamos la opción "Exportar"
Luego seleccionamos una ruta, le damos un nombre y hacemos un clic en "Guardar"

Ingresando al regedit

3)Una vez que tenemos la copia de seguridad, volvemos a nuestra aplicación regedit y desplegaremos las opciones de la siguiente forma:
"HKEY_LOCAL_MACHINE" => "SYSTEM" => "CurrentControlSet" =>"Control"
Para desplegar las opciones, hacemos doble clic sobre el nombre de la carpeta o podemos hacer un clic sobre el triángulito que acompaña la entrada.

Visualizando

4)Ahora, dentro la carpeta "Control" debemos buscar la sub-carpeta "Session Manager" (Las sub-carpetas se organizan por orden alfabético)
Una vez que la encontramos, hacemos un sólo clic en ella (No es necesario desplegar sus opciones) y nos posicionamos del lado derecho sobre la cadena llamada "PendingFileRenameOperations", la damos clic derecho y seleccionamos la opción "Eliminar"
Luego confirmamos el mensaje de eliminación.

Eliminando la cadena PendingFileRenameOperations del regedit

5)Finalmente, sin necesidad de reiniciar el sistema, volvemos a ejecutar el instalador de nuestro SQL Server 2000

Instalando el SQL sin el error de archivos pendientes

Recuerden siempre realizar un backup antes de modificar un archivo original.
Hacemos esta mención en la mayoría de los tutoriales no para ser reiterativos, sino, para que tomen conciencia de lo importante que es esta práctica a la hora de modificar cualquier archivo.

Agregar el main.exe al DEP de Windows

Bienvenidos a un nuevo tutorial, hoy aprenderemos a agregar una aplicación a nuestro DEP de Windows.
Para quienes no conocen, la Prevención de Ejecutación de Datos o más conocido con sus siglas como DEP es un sistema de seguridad incorporado a los sistemas bajo Windows que previene la ejecución de aplicaciónes como medida de seguridad.



¿De que forma afecta esto a los servidores Mu Online?
Lo que sucede es que aveces cuando deseamos ejecutar el cliente, específicamente la aplicación main.exe esta no se ejecuta y muchas veces es debido a este bloqueo que realiza nuestro sistema de forma automática.

Para solucionar esto, lo que debemos hacer es:
1)Ingresamos a "Equipo" => "Propiedades de Sistema" => "Configuración avanzada del sistema" o "Panel de control" => "Configuración avanzada del sistema"

Visualizando la opción Configuracion avanzada del sistema en Windows

2)En nuestra nueva ventana, lo que debemos hacer es un clic en "Configuración" en la opción correspondiente a "Rendimiento"

Visualizando la opción de rendimiento

3)En nuestra nueva ventana hacemos un clic en la opción "Prevención de ejecución de datos" y luego tildamos la opción con la leyenda: "Activar DEP para todos los programas y servicios excepto los que seleccione"

Visualizando la opción DEP

4)Al tildar la leyenda anterior, se activará la opción "Agregar..." la cual nos permitirá adicionar excepciones a nuestro control de seguridad de datos.
Entonces hacemos un clic en el boton "Agregar..." y lo que nos aparecerá será una nueva ventana para buscar nuestra aplicación, en este caso, el main.exe
Luego hacemos un clic en "Aplicar" y luego en "Aceptar"

Aplicación main.exe agregada al DEP y aceptando el cuadro de dialogo

Finalmente, para que los cambios tengan efecto debemos reiniciar nuestro sistema.
Si bien, estos pasos pueden llegar a resolver nuestro problema, es posible que existan otros factores que influyan a la hora de ejecutar una aplicación y esta iniciarse.
Cuando hablamos de aplicación, recuerden que siempre hacemos referencia al main.exe (Aunque tambien se puede aplicar a cualquier otra aplicación)
Estos factores pueden ser:
a)El antivirus
b)Una error en la propia aplicación
c)Una modificación la cual puede a ver dañado el ejecutable
d)Un virus
e)Otros
a)La mayoria de los antivirus detectan a las aplicaciones relacionadas al Mu Online como virus, ya sea porque fueron encriptadas, o hasta por su funcionamiento o comportamiento, entonces lo que podemos hacer en el caso del main.exe es agregarlo como excepción.
Como la cantidad de antivirus que existen son varios y variados, veremos como hacerlo con uno de los más usados, me refiero al AVAST
Para esto, abrimos la interfaz del AVAST, en la parte superior derecha, hacemos un clic en "Menu" => "Opciones"

Opción AVAST

a.1)Ahoras, nos deslizamos hasta la opción "Exclusiones" (En opciones "General") y hacemos un clic en el boton "Examinar"

Visualizando la opción excepciones

a.2)En nuestra nueva ventana buscamos la carpeta del cliente y la tildamos.
Seguido, hacemos un clic en el boton "Aceptar" y luego en "Añadir"
Para finalizamos hacemos un clic en aceptar.

Agregando a excepcion el cliente MuOnline

b)Un error en la aplicación puede deberser a varios motivos, a veces producido en el mismo procedimiento de descarga o por una incompatiblidad de nuestro sistema, en este caso para tener seguridad que no se trate de un error durante la descarga, intentamos repetirla y para tener seguridad que no se trata de ninguna incompatiblidad, prueben la misma aplicación en varios sistemas.

c)Muchas veces modificamos el main.exe, ya sea para editar la IP, el serial o la versión y cometemos un error y terminamos dañanado la aplicación. En este caso, la solución es sencilla, eliminamos el archivo editado y volvemos a comenzar. Para tener seguridad que el error fue nuestro, podemos probar ejecutando el main.exe antes de ser modificado, ya que si abre (aunque no conecte) sin lugar a duda el error lo estamos cometiendo en el proceso de edición.
Si la aplicación de forma original tampoco abre, entonces vuelve a leer el punto b)

d)Finalmente, un virus puede dañar nuestros .exe o modificarlos sin nuestro consentimiento. Si este es el caso, podemos verificar volviendo a reemplazarlo por su original.
Una forma simple de comprobar esto, es si al momento de reemplazarlo el peso del archivo es diferente, es probable que tengamos algun virus en nuestro sistema.
Realiza un backups geneneral y utiliza algun antivirus para realizar un scanner completo del sistema.

Arma de una o dos manos en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a modificar la cantidad de manos que usa el personaje para utilizar un arma (Swords, axes, etc) en los files MUEMU

Para universalizar el concepto, vamos a definir lo que es arma de una mano y arma de dos manos ya que no siempre todos entendemos de la misma forma.
Arma de una mano: es aquella arma que será ocupada tanto en el slot arma como en el slot shield de forma simultanea. Otra característica es que este tipo de arma ocupa siempre un espacio horizontal (X=1) en el inventario/baul
Son ejemplo de arma de una mano las siguientes: Kriss, Short Sword, Rapier, Small Axe, etc...

Arma de dos manos: es aquella arma que solo podrá ser ocupada en el slot correspondiente al arma. Otra característica es que este tipo de armas ocupan siempre dos espacios horizontales (X=2) en el inventario/baul.
Son ejemplo de armas de dos manos las siguientes: Daybreak, Legendary Sword, Dark Reign Blade, Sword Dancer, Explosive Blade, etc...
De todas forma, en la descripción del item podremos identificar si se trata de un arma de una o dos manos.



1)En este primer ejemplo lo que haremos será configurar un arma de dos manos, para poder usada como arma de una sola mano.
Usaremos la Explosion Blade, la cual de forma original es una arma de dos manos.
Primero trabajaremos del lado del servidor, para eso ingresamos a la siguiente ruta: Muserver\Data\Item y abrimos el archivo llamado item.txt
Luego, nos posicionamos sobre la linea del item, en este caso, sobre el index 23 y modificaremos la variable X, la cual posee un valor 2 por 1 (Recuerdes que X es el tamaño de forma horizontal que ocupa el item, si deseas saber mas acerca de esto puedes hacer Clic Aqui)
Luego guardamos los cambios y hacemos un reaload.

Editando la columna X del item.txt

2)Nuestros siguientes pasos, serán sobre el cliente.
Pero antes de continuar necesitamos de una herramienta que nos ayudará a editar los archivos del cliente, se trata del "BmdDec.exe" la cual ya se encuentra disponible para su descarga.
Con esta aplicación podremos convertir archivos .bmd en .txt, editarlos y luego volver a convertirlos en .bmd nuevamente
Entonces, ejecutamos el .exe y como se trata de una versión Season 8, hacemos un clic en donde dice "Ex803" => "Item.bmd -> Client"
(Si desean editar el item.bmd de un cliente Season 6 MUEMU, hacemos clic en Ex603 -> Item.bmd)

Visualizando la aplicación BmdDec

3)Ahora, debemos seleccionar el archivo item_/lang/.bmd a convertir en item_/lang/.txt
En este ejemplo, lo haremos con el item_eng.bmd el cual se aloja en la siguiente ruta: Cliente MuOnline\Data\Local\Eng (Si ustedes usan otro lenguaje como el Spn o Por, deberán seleccionar el item correspondiente a la carpeta de su lenguaje)

Visualizando el item_eng.bmd

4)Si todo esta correcto, el programa cargará la ruta del archivo item_eng.bmd.
Simplemente hacemos un clic en el boton ENCRYPT/DECRYPT

Desencriptando el archivo item_eng.bmd

5)En nuestra nueva ventana, debemos seleccionar la ruta en donde deseamos guardar el archivo ya "desencriptado", es decir, en formato .txt para su edición.
Le damos un nombre y hacemos clic en donde dice "Guardar", en este ejemplo al archivo lo hemos llamado "ItemDec" y lo hemos guardado en la misma ruta que se encuentra en item_eng.bmd

Desencriptando el archivo item_eng.bmd

6)Ahora localizamos el archivo, lo abrimos y nos posicionamos sobre la linea correspondiente al item "Explosion Blade".
Ahora nos posicionamos sobre la columna TwoHand y cambiamos el valor 1 por 0 (Con este cambio le indicamos al cliente que se trata de un arma de una mano) y el otro cambio es sobre la columna X, modificando el valor 2 por 1 (De la misma forma que lo hicimos sobre el item.txt del server)
Luego de eso guardamos los cambios en el archivo.

Modificando el archivo item.txt

7)Nuestro siguiente y último paso será, encriptar nuevamente el archivo para transformalo en .bmd
Para eso volveremos a usar la misma aplicación, pero esta vez hacemos un clic en "Ex803" => "Encrypt" => item.txt(Client)

Encriptando el archivo item.txt

8)Ahora buscamos el archivo .txt que hemos editado. En nuestro caso sería el ItemDec.txt

Encriptando el archivo item.txt

9)El programa volverá a cargar nuestra ruta. Luego hacemos un clic en el boton ENCRYPT/DECRYPT

Desencriptando el archivo item_eng.bmd

10)Finalmente, el programa nos pedirá la ruta y nombre para guardar el archivo ya editado y convertido a .bmd, en este caso nosotros reemplazaremos el mismo item_eng.bmd
(Recuerden siempre realizar un backups antes de modificar un archivo, sino desean reemplazar el original le pueden poner otro nombre, hacer un copia del original y renombrar el archivo para reemplazarlo posteriormente)

Visualizando el item_eng.bmd

11)Para verificar que todo este correcto, ingresamos a juego al comprobarlo.

Visualizando los cambios dentro del juego

12)Si lo que deseamos hacer, es justamente lo contrario, es decir, que un arma de una mano sea usada por dos manos, debemos invertir los pasos.
Tomemos como ejemplo la "Sword Flameberge", ya que originalmente es un arma de una mano, lo que haremos será convertirla en arma de dos manos.
Entonces como lo hicimos anteriormente, comenzemos por el lado del server, abrimos el archivo item.txt el cual se encuentra en la siguiente ruta: Muserver\Data\Item, nos posicionamos sobre la linea del item y modificando el valor 1 de la columna X por 2.
Luego guardamos los cambios y hacemos un reaload.

Modificando la columna X del archivo item.txt

13)Al igual que en los pasos anteriores, abrimos el item_/lang/.bmd y lo convertimos en .txt
Una vez localizado nuestro archivo, lo abrimos y nos posicionamos sobre la linea correspondiente al item "Sword Flameberge".
Ahora nos posicionamos sobre la columna TwoHand y cambiamos el valor 0 por 1 (Con este cambio le indicamos al cliente que se trata de un arma de dos manos) y el otro cambio es sobre la columna X, modificando el valor 1 por 2 (De la misma forma que lo hicimos sobre el item.txt del server)
Luego de eso guardamos los cambios en el archivo.

Modificando la columna X del archivo item.bmd

14)Ahora convertimos el archivo al formato .bmd y verificamos los cambios dentro del juego
Un detalle final muy importante, si bien el tutorial finalizo, no podemos olvidarnos del editor, es decir, sino aplicamos los cambios en el editor esto ocasionará un bug del inventario/baul dado a que los espacios de los items no condicen entre Server-Cliente-Editor

Para solucionar esto de forma rápida y sencilla lo que haremos será copiar el archivo item_/lang/.bmd ya editado , y lo pegamos en nuestro escritorio. Ahora lo renombramos a simplemente item.bmd, lo volvemos a copiar y lo pegamos en la ruta del editor, la que por defecto sería: Muserver\MuEditor\Data y reemplazamos (Si no desean reemplazar el original podemos hacer una copia previa)

Visualizando los item modificando dentro del MuEditor

En tutoriales siguientes veremos que otros archivos podemos desencriptar y encriptar con esta fabulosa herramienta.

Reload desde el GameServer en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a cargar los cambios efectuados en el servidor sin necesidad de reiniciarlo.

En la mayoría de los servidores Mu Online, en la aplicación GameServer.exe existe una opción llamada RELOAD, esta opción despliega un conjunto de opciones que dependiendo de cual seleccionemos cargará los cambios sin necesidad de apagar y prender el servidor.

Veamos una imagen para saber de que se trata:

Visualizando el gameserver de los files MUEMU

Veamos para que sirve cada opción
1)Reload CashShop: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\CashShop\CashShopPackage.txt
Muserver\Data\CashShop\CashShopProduct.txt
Muserver\GameServer\DATA\GameServerInfo - Common.dat
2)Reload ChaosMix: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - ChaosMix.dat
3)Reload Character: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Character.dat
Muserver\Data\Character\DefaultClassInfo.txt
4)Reload Command: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Command.dat
5)Reload Common: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Common.dat
Muserver\Data\Effect.txt
Muserver\Data\Util\ExperienceTable.txt
Muserver\Data\Util\Filter.txt
Muserver\Data\Util\GameMaster.txt
Muserver\Data\Move\Gate.txt
Muserver\Data\MapManager.txt
Muserver\Data\MapServerInfo.txt
Muserver\Data\Message.txt
Muserver\Data\Move\Move.txt
Muserver\Data\Move\Movesummon.txt
Muserver\Data\Util\Notice.txt
Muserver\Data\Util\ResetTable.txt
6)Reload Custom: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Custom.dat
Muserver\Data\Custom [Todos los archivos contenidos en esta carpeta]
7)Reload Event: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Event.dat
Muserver\Data\Event [Todos los archivos contenidos en esta carpeta]
8)Reload EventItemBag: esta opción recarga lo modificado en los siguientes archivos:
Muserver\DATA\EventItemBagManager.txt
Muserver\Data\EventItemBag [Todos los archivos contenidos en esta carpeta]



9)Reload Hack: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Common.dat
Muserver\Data\Hack\HackPacketCheck.txt
10)Reload Item: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\Item [Todos los archivos contenidos en esta carpeta]
11)Reload Monster: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\Monster [Todos los archivos contenidos en esta carpeta]
12)Reload Move: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\Move [Todos los archivos contenidos en esta carpeta]
13)Reload Quest: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\Quest [Todos los archivos contenidos en esta carpeta]
Muserver\Data\QuestWorld [Todos los archivos contenidos en esta carpeta]
14)Reload Shop: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\shop [Todos los archivos contenidos en esta carpeta]
Muserver\Data\ShopManager.txt
15)Reload Skill: esta opción recarga lo modificado en los siguientes archivos:
Muserver\GameServer\DATA\GameServerInfo - Skill.dat
Muserver\GameServer\DATA\Skill\MasterSkillTree.txt
Muserver\GameServer\DATA\Skill\Skill.txt
16)Reload Util: esta opción recarga lo modificado en los siguientes archivos:
Muserver\Data\Util [Todos los archivos contenidos en esta carpeta]
No olviden lo siguiente, cuando hacemos un reload sobre las opciones de la aplicación del GameServer.exe solo afecta a las carpetas/archivos de esa misma aplicación, si modificamos un archivo contenido en la siguiente ruta: Muserver\GameServerCS\DATA es necesario que el reload sea realizado sobre el GameServer.exe pero de la carpeta GameServerCS

Editar shops en MUEMU

Bienvenidos a un nuevo tutorial, en este oportunidad veremos como editar los shops en los files MUEMU.
Si bien la edición de shops en estos files es similar a la de cualquier otro tipo de archivos hoy vamos a ver algunos aspectos adicionales.

Los shops se encuentran en la siguiente ruta Muserver\Data\Shop y cada .txt corresponde a un NPC el cual se identifica con el nombre del mismo.

Visualizando la carpeta shop en los files MUEMU

1)Abriremos uno al azar y analizaremos su contenido (Columnas)
Section= Grupo al que pertecene el item (Para entenderlo mejor puedes hacer Clic Aqui)
Type= Posición en la que se encuentra el item dentro de ese grupo (Para entenderlo mejor puedes hacer Clic Aqui)
Level= Nivel que tendrá el item (0-15)
Dur= Durabilidad del item (0-255)
Skill= Skil del item (1=Activado, 0=Desactivado)
Luck= Suerte del item (1=Activado, 0=Desactivado)
Option= Defensa adicional (0-7)
Excellent= Tipo de opción excellent que tendrá el item. (0-63)
En lo que respecta al grupo, type, level, durabilidad, skill y luck no hay mucho más que explicar ya que eso se encuentra todo detallado en los tutoriales publicados, pero en lo que respecta a option y excellent nos encontramos con valores 0-7 y 0-63 respectivamente ¿Pero que identifica cada valor?



Comenzemos con la variable option, como ya hemos lo explicitado, esta columna hace referencia al adicional de defensa que tendrá el item y los valores configurables son de 0-7
Veamos a que hace referencia cada valor:
0=+0 adicional de defensa
1=+4 adicional de defensa
2=+8 adicional de defensa
3=+12 adicional de defensa
4=+16 adicional de defensa
5=+20 adicional de defensa
6=+24 adicional de defensa
7=+28 adicional de defensa
Por otro lado la variable Excellent permite configurar las opciones excelents que tendrá nuestro item, ¿Pero qué significa de 0-63? Veasmolo
Opciones excelent en armas:
1=Increases the amount of Mana received for hunting monsters + Mana/8
2=Increases the amount of Life received for hunting monsters + Life/8
4=Increase Attack (Wizardry) speed +7
8=Increase Attack +2%
16=Increase Attack +Level/20
32=Exellent damage +10%

Opciones excelent en sets:
1=Increases the amount of Zen received for hunting monsters + 30%
2=Defense success Rate +10%
4=Reflect Damage +5%
8=Decreases Damage +4%
16=Increase Maximum Mana +4%
32=Increase Maximum Life +4%

Opciones en wings:
1=Increases Life
2=Increases Mana
4=Damage from Breaking Enemy Defense +3%
8=Increase Maximum AG
16=Increase Attack (Wizardry) Speed +5
32= No usado
Entonces, como podrán observar cada opción excellent es representanda por un valor númerico, pero aun no respondemos ¿Por qué la configuración admite valores de 0-63 si el valor máximo disponible es 32 (Salvo en la wings, ya que el valor 32 en este tipo de items no tiene uso)?

La respuesta está en que cada valor idenfica una opción por separado, pero si queremos un item que tenga todas las opciones (Full opc.) debemos sumar todos los valores: 1+2+4+8+16=63 de ahi que al colocar el valor 63 el item adquiere todas las opciones excellents.
Pero si sólo queremos que nuestro item tenga sólo tres opciones, pero tres opciones específicas ¿Cómo deberiamos configurarlo ?
La respuesta es nuevamente sumando los valores de las opciones excellents deseadas.

2)Veasmolo en un ejemplo práctico, supongamos que queremos que en el NPC se venda la "Legenday Sword" pero con las siguientes características:
Item a vender: Legendary Sword
Level: +8
Durabilidad: 80
Skill: Activado
Luck: Desactivado
Option: +16
Excellent: Tres opciones exc. que serán las siguientes:
- Increases the amount of Mana received for hunting monsters + Mana/8 +
- Increase Attack +2%
- Exellent damage +10%
Nuestro archivo configurado quedará editado la siguiente forma:

Visualizando la configuracion del shop con el items configurado

3)Y ahora verificamos los cambios dentro del juego

Visualizando las caracteristicas del items editado en el juego

Y efectivamente nuestro item aparece con las caracterísitcas configuradas, por si quedo alguna duda, en el campo Excellent se coloco el valor 41, ya que como hemos dicho, debemos sumar los valores de las opciones excellents que queremos que tenga nuestro item:
Si retomamos al ejemplo, las opciones excelents fueron las siguientes:
1 - Increases the amount of Mana received for hunting monsters + Mana/8 +
8 - Increase Attack +2%
32 - Exellent damage +10%
Las cuales sumadas dan el siguiente resultado: (1 + 8 + 32)= 41

Para finalizar, si bien existen programas que realizen este procedimiento de forma más rápida, siempre insistimos que la idea en aprender el origen de las cosas.

Personalizar el drop de los items en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a personalizar el drop en los files MUEMU.
El drop personalizado nos permite configurar con que regularidad los items pueden llegar a caer dentro del juego.

Esta configuración no es obligatoria ya que el servidor trae por default los drop establecidos, pero por medio de este complemento podemos personalizar el drop de un item específico.

Tambien podemos usar este tipo de configuración para realizar algun evento ya que podremos hacer caer un item con características especificas que los usuarios deberán buscar.



El archivo responsable de esta personalización es el: ItemDrop.txt el cual se encuentra en la siguiente ruta: Muserver\Data\Item

1)Entonces, para comenzar abrimos el archivo, y analizemos su contenido:
Index= Identificador del item (Para conocer este valor pueden hacer Clic Aqui)
Level= Nivel con el que caerá el item (De 0 a 15)
Grade= Opción excelente fija que tendrá el item (De 1 a 63)
Option0= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option1= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option2= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option3= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option4= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option5= Index de la opción del item (Relacionado al ItemDropRate.txt)
Option6= Index de la opción del item (Relacionado al ItemDropRate.txt)
Duration= Duración del item en el servidor. (0=Item permanente)
*Presten atención a esto, ya que muchos confunden esta variable con la duración del item en el suelo y no se trata de eso, sino, de la duración del item en el servidor, es decir, pasado el tiempo de duración el item desaparecerá permanentemente del juego.
MapNumber= Número del mapa en donde caerá el item (-1= Cualquier mapa) (Para conocer el número de los mapas pueden hacer Clic Aqui)
MonsterClass= Número del monster que al matarlo podrá dropear el item (-1= Cualquier monster) (Para conocer el número de los monsters Clic Aqui)
MonsterLevelMin= Nivel mínimo que debe tener el monster para dropear el item (-1= Cualquier nivel)
MonsterLevelMax= Nivel máximo que debe tener el monster para dropear el item (-1= Cualquier nivel)
DropRate= Probabilidade de dropear el item al matar un monster (x/1000000)(-1= Drop máximo)
Comment= Esta columna es opcional y no modificará en nada la configuración, simplemente nos sirve para anotar el nombre del item para recordarlo
2)Comenzemos con algo sencillo, supongamos que deseamos personalizar el drop de la "Jewells of soul", y queremos que este item caiga en Aida, pero especificamente de los monsters "Forest ORC"
Nuestra configuración será la siguiente:
Index= 7182 //Es el index del item Jewell Of Soul
Level= 0 //No es necesario, ya que se trata de una jewell
Grade= 0 //No es necesario, ya que se trata de una jewell
Option0= * //No es necesario, ya que se trata de una jewell
Option1= * //No es necesario, ya que se trata de una jewell
Option2= * //No es necesario, ya que se trata de una jewell
Option3= * //No es necesario, ya que se trata de una jewell
Option4= * //No es necesario, ya que se trata de una jewell
Option5= * //No es necesario, ya que se trata de una jewell
Option6= * //No es necesario, ya que se trata de una jewell
Duration= 30 //Duración del items en segundos
MapNumber= 33 //Número correspondiente al mapa Aida
MonsterClass= 307 //Número correspondiente al monster Forest ORC
MonsterLevelMin= * //Nivel mínimo del monster, no es necesario porque lo hemos especificado
MonsterLevelMax= * //Nivel mínimo del monster, no es necesario porque lo hemos especificado
DropRate= -1 // Al ingresar el -1 colocamos el máximo % de dropeo.
Visualizando archivo itemdrop en MUEMU

3)Guardamos los cambios, hacemos un reload y verificamos.

Visualizando el drop de la jewells of soul dentro del juego

4)Efectivamente, el drop de la jewells of soul respondio a la configuración correctamente.
Ahora veamos un segundo ejemplo, pero esta vez con un item que tenga opción, por ejemplo la "Iris Armor", full opciones, que caiga en lorencia en rango de monster mínimo 0 a rango máximo 9
Index= 4132 //Es el index del item "Armor Dragon"
Level= 0 // Será el nivel de nuestro item, en este caso +0
Grade= 63 // Serán las opciones excelent que tendrá el item, en este caso lo haremos full opc.-
Option0= * //
Option1= * //
Option2= * //
Option3= * //
Option4= * //
Option5= * //
Option6= * //
Duration= 6000 //Duración del items, en este caso 10 minutos
MapNumber= 0 //Número correspondiente al mapa Lorencia
MonsterClass= * //Cualquier monsters
MonsterLevelMin= 0 //Nivel mínimo del monster
MonsterLevelMax= 9 //Nivel máximo del monster
DropRate= -1 // Al ingresar el -1 colocamos el máximo % de dropeo.
Guardamos los cambios, hacemos un reload y verificamos:

Visualizando el drop de la Armor iris dentro del juego

Y efectivamente, al matar un monster en lorencia que se encuentre en el rango este dropea nuestro item.
Recuerden, por cada drop de item que deseamos configurar, debemos agregar una nueva linea.
Tambien, si en MonsterClass colocamos *, estamos indicando que cualquier monster del juego dropeará ese item, en ese caso es recomendable establecer rangos con las variables MonsterLevelMin y MonsterLevelMax (Ya que si no lo hacemos, todos los monsters de todo el juego dropeará el item configurado), si el caso es al revés, es decir, especificamos el nº de monster en el campo MonsterClass no es necesario establecer el rango ya que los números de los monsters no se repiten, sino que cada uno tiene un valor único.

Para finalizar, la variable Duration se mide en segundos, y no esta de más recordales que 60 segundos equivale a 1 minuto y que 3600 segundos equivalen a 1 hora.

Verificar archivos mediante CRC32 en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a proteger nuestro cliente mediante la verificación CRC32 de los archivos del cliente en MUEMU.

Para entender mejor de que se trata, intentaremos explicarlo con palabras más sencillas.
Cuando ingresamos al cliente y si este usa el MHP-antihack, se ejecuta una comprobación (Mediante CRC32) de los archivos del juego tomando como contraste una lista (Checksum.List.db) alojada en nuestro MHPServer.
Si esa comprobación está correcta, el cliente iniciará, pero si en esta comprobación aparece algun problema (Dada por la modificación de algun archivo que este en lista de verificación por parte del cliente) el antihack bloqueará nuestro ingreso.

Este tipo de verificación se utiliza para evitar que archivos del cliente sean reemplazados/modificados/altereados con el simple fin de obtener alguna ventanja en el juego.

Para evitar eso, veamos el siguiente tutorial.

1)Lo primero que haremos, será crear una carpeta llamada "CRC32" en donde alojaremos todos los archivos que deseamos proteger, para quienes no tiene mucho conocimiento en este ámbito de seguridad, los archivos que recomendamos a proteger son: ah.emu, main.emu, main.exe, player.bmd entre otros, entonces copiamos esos archivos y los pegamos dentro de nuestra carpeta creada.

Visualizando los archivos agregados a la carpeta crc32

2)Nuestro siguiente paso será generar los códigos CRC32. Para esto podemos hacerlo de muchas formas, existen programas, generadores online, etc... En este ejemplo lo haremos con el propio WinRAR (Un software encargado de comprimir/descomprimir archivos) el cual la mayoria de los equipos ya lo tienen instalado.
Sino lo tienen instalado pueden descargarlo desde su sitio oficial haciendo Clic Aqui
Entonces, lo que haremos, será simplemente seleccionar todos los archivos, hacemos un clic derecho y seleccionamos la opción "Añadir a CRC32.rar"

Comprimiendo los archivos de la carpeta CRC32

3)Luego de generar nuestro archivo CRC32.rar lo abrimos y nos posicionamos sobre la última columna, la llamada CRC32 y copiamos el nombre del archivo seguido de su codigo alfanumérico (CRC32)
main.exe ---------- 514EEF6B
player.bmd -------- D25E0173
main.emu --------- 57A6C262
ah.emu ------------ 1AACD140
Comprimiendo los archivos de la carpeta CRC32

4)Nuestro siguiente paso será ingresar a la siguiente ruta: Muserver\MHPServer\Data y abrimos el archivo llamado: Checksum.List.db (Este tipo de archivos podemos abrirlo con cualquier procesador de textos, como por ejempo: notepad.exe)
Este archivo lo configuraremos de la siguiente forma:
La primera columna contendrá la ruta en donde se encuentra cada archivo y en la segunda columna debemos agregar 0x seguido del código CRC32
Recuerden que tanto la ruta como el código deben ir entre comillas.



Para completar la primera columna, no debemos tener en cuenta el nombre del cliente, sino debemos colocar nuestra ruta como si estuviesemos directamente sobre el.
Comenzemos con el primero archivo: el main.exe, entonces nuestra primera linea nos quedará asi:
"main.exe" "0x514EEF6B"
Nuestra segunda linea quedará asi:
"data/player/player.bmd" "0xD25E0173"
*Presten atención a la ruta, el archivo player.bmd no se encuentra en la raiz como el main.exe, sino que el mismo se encuentra dentro de la carpeta player contenida en la carpeta data
Nuestra tercera linea, quedará asi:
"main.emu" "0x57A6C262"
Y finalmente nuestra cuarta linea, quedará asi
"ah.emu" "0x1AACD140"
y la última linea corresponde al End que hará el cierre del código.

Visualizando el archivo Checksum.List.db ya editado

5)Finalmente ya podemos iniciar el servidor y verificar que todo funcione correctamente.
Lo que debería suceder es lo siguiente, si ingresamos con los archivos con los cuales hemos generado los CRC32, el juego debería funcionar sin problemas, pero si intentamos modificar un archivo e intentamos ingresar, el MHPServer.exe detectará el cambio de CRC32 (Ya que, cada vez que modificamos un archivo el CRC32 tambien se modifica.) y nos bloqueará el ingreso.
Veamoslo: modificaremos a modo de ejemplo el archivo player.bmd (El cual se encuentra en lista de verificación) y probaremos ingresar para ver que sucede:

Visualizando el bloqueo del antihack al ingresar al juego

Adicionalmente, si revisamos el log del antihack podemos finalmente constatar que el bloqueo del ingreso se debe a una modificación del archivo player.bmd (Recuerden que esa modificación la hemos realizado nosotros con el fin de verificar el funcionamiento del antihack.)
16:02:54 [HackDetected][][] IpAddress: ***********, HardwareId: 2CD2****-9H2D****-A46C****-D410****, DetectionType: FILE_DETECTION, CaptionName: data/player/player.bmd, ProcessName:
Recuerden que ustedes pueden colocar cualquier archivo para ser verificado.
Finalmente si agregamos el archivo item_eng.bmd al listado de verificación no quiere decir que tambien estemos protegiendo el item_spn.bmd ya que son dos archivos difentes con CRC32 diferentes en rutas diferentes.

Comandos para administradores en MUEMU

Bienvenidos a un nuevo tutorial, en esta aportunidad haremos un complemento a la guia publicada anteriormente la cual pueden revisar haciendo Clic aqui

Lo que haremos será explicar el funcionamiento, personalización y configuración de cada comando disponible para los administradores en los files MUEMU

1)El primer comando que veremos será el Gmmove
Sintaxis del comando: /gmmove [Nombre del personaje] [Nº de Mapa] [Coordenada X] [Coordenada Y]
Función: Mueve un personaje conectado en el juego a un mapa y coordenada definadas.
Ejemplo: /gmmove MuTutorial 0 125 125
*Envia un personaje llamado Mututorial al mapa lorencia, en las coordenadas 125 125, si quieren saber los numeros de todos los mapas, pueden verlos haciendo Clic Aqui
Veamos ahora como configurar este comando
;==================================================
; GM Move Command Settings
;==================================================
CommandGMMoveSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandGMMoveGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

2)El siguiente comando será el Gmpost
Sintaxis del comando: /gmpost [Texto]
Función: Envia un mensaje global al servidor.
Ejemplo: /gmpost Hola mundo!
Veamos ahora como configurar este comando
;==================================================
; GM Post Command Settings
;==================================================
CommandGMPostSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandGMPostGameMasterLevel = 32 //Nivel o rango que podrá usar este comando



3)El siguiente comando será el Track
Sintaxis del comando: /track [Nombre de personaje]
Función: Transporta tu personaje hacia el personaje ingresado en el comando
Ejemplo: /track MuTutorial
Veamos ahora como configurar este comando
;==================================================
; Track Command Settings
;==================================================
CommandTrackSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandTrackGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

4)El siguiente comando será el Trace
Sintaxis del comando: /trace [Nombre de personaje]
Función: Transporta el personaje ingresado en el comando hacia tu personaje
Ejemplo: /trace MuTutorial
Veamos ahora como configurar este comando
;==================================================
; Trace Command Settings
;==================================================
CommandTraceSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandTraceGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

5)El siguiente comando será el Disconnect
Sintaxis del comando: /disconnect [Nombre de personaje]
Función: Desconecta del juego al personaje ingresado en el comando
Ejemplo: /disconnect MuTutorial
Veamos ahora como configurar este comando
;==================================================
; Disconnect Command Settings
;==================================================
CommandDisconnectSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandDisconnectGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

6)El siguiente comando será el Fireworks
Sintaxis del comando: /fireworks
Función: Lanza en un radio cercano al personaje fuegos artificiales
Ejemplo: /fireworks
Veamos ahora como configurar este comando
;==================================================
; Fireworks Command Settings
;==================================================
CommandFireworksSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandFireworksGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

7)El siguiente comando será el Make
Sintaxis del comando: /Make [Grupo] [Index] [Nivel] [Durabilidad] [Addicional] [Opciones]
Función: Crea un items a partir de los parámetros indicados
Ejemplo: /make 8 1 15 255 4 4
Veamos ahora como configurar este comando
;==================================================
; Make Command Settings
;==================================================
CommandMakeSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandMakeGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

8)El siguiente comando será el Skin
Sintaxis del comando: /Skin [Nº del monster]
Función: Transforma el personaje en el nº del monster ingresado
Ejemplo: /skin 8
*Si desean saber el número que corresponde cada monster pueden hacer clic aqui
Veamos ahora como configurar este comando
;==================================================
; Skin Command Settings
;==================================================
CommandSkinSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandSkinGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

9)El siguiente comando será el SetMoney
Sintaxis del comando: /setmoney [Valor]
Función: Agrega al inventario la cantidad de zen indicada en el comando
Ejemplo: /setmoney 1000000
Veamos ahora como configurar este comando
;==================================================
; Set Money Command Settings
;==================================================
CommandSetMoneySwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandSetMoneyGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

10)El siguiente comando será el Notice
Sintaxis del comando: /notice [Valor]
Función: Publica una noticia de forma global sin mostrar el nombre del ADM/GM
Ejemplo: /notice Hola mundo!
Veamos ahora como configurar este comando
;==================================================
; Notice Command Settings
;==================================================
CommandNoticeSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandNoticeGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

11)El siguiente comando será el Hide
Sintaxis del comando: /hide [Valor]
Función: Esconde al personaje ADM/GM haciendolo invisible frente a los demas jugadores.
Ejemplo: /hide
Veamos ahora como configurar este comando
;==================================================
; Hide Command Settings
;==================================================
CommandHideSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandHideGameMasterLevel = 32 //Nivel o rango que podrá usar este comando

12)Adicionalmente si deseamos modificar la sintaxis del comando, debemos abrir el siguiente archivo Message.txt el cual se encuentra en la siguiente ruta: Muserver\Data

Visualizando el archivo message

Entonces para modificar la sintaxis de un comando, basta con modificar lo que este despues del /, recordando que no debes eliminar las "" ni el /
Luego de efectuar los cambios, debemos hacer un reload para que tomen efecto.

Comandos para jugadores en MUEMU

Bienvenidos a un nuevo tutorial, hoy veremos como configurar y para que sirven algunos de los comandos disponibles en MUEMU

Estos comandos estan contenidos en el archivo llamado GameServerInfo - Command.dat el cual se encuentra en la siguiente ruta: Muserver\GameServer\DATA

1)El primer comando que veremos será el post
Sintaxis del comando: /post
Función: Envia un mensaje global visible por todos los jugadores online
Ejemplo: /post Hola mundo!
Veamos ahora como configurar este comando
;==================================================
; Post Command Settings
;==================================================
CommandPostSwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandPostType = 0 // 0= dorado , 1= azul, 2=verde, 3=verde, 4=blanco / 5=Azul (GLOBAL) ,6=Verde (GLOBAL), 7=Blanco (GLOBAL)
CommandPostEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios FREE
CommandPostEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios VIP 1
CommandPostEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios VIP 2
CommandPostEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios VIP 3
CommandPostLevel_AL0 = 6 // Nivel mínimo requerido para uso del comando en usuarios FREE
CommandPostLevel_AL1 = 6 // Nivel mínimo requerido para uso del comando en usuarios VIP 1
CommandPostLevel_AL2 = 6 // Nivel mínimo requerido para uso del comando en usuarios VIP 2
CommandPostLevel_AL3 = 6 // Nivel mínimo requerido para uso del comando en usuarios VIP 3
CommandPostReset_AL0 = 0 // Resets requerido para uso del comando en usuarios FREE
CommandPostReset_AL1 = 0 // Resets requerido para uso del comando en usuarios VIP 1
CommandPostReset_AL2 = 0 // Resets requerido para uso del comando en usuarios VIP 2
CommandPostReset_AL3 = 0 // Resets requerido para uso del comando en usuarios VIP 3
CommandPostMoney_AL0 = 0 // Zen requerido para uso del comando en usuarios FREE
CommandPostMoney_AL1 = 0 // Zen requerido para uso del comando en usuarios VIP 1
CommandPostMoney_AL2 = 0 // Zen requerido para uso del comando en usuarios VIP 2
CommandPostMoney_AL3 = 0 // Zen requerido para uso del comando en usuarios VIP 3
CommandPostDelay_AL0 = 30 // Tiempo de espera entre mensajes en usuarios FREE
CommandPostDelay_AL1 = 30 // Tiempo de espera entre mensajes en usuarios VIP 1
CommandPostDelay_AL2 = 30 // Tiempo de espera entre mensajes en usuarios VIP 2
CommandPostDelay_AL3 = 30 // Tiempo de espera entre mensajes en usuarios VIP 3

2)El siguiente será el comando add points
Sintaxis del comando: /add[Stat] [Valor numérico]
Función: Permite distribuir internamente los puntos acumulados
Ejemplo: /addstr 100 //Agrega 100 puntos disponibles al stat fuerza
Ejemplo: /addagi 100 //Agrega 100 puntos disponiles al stat agilidad
Ejemplo: /addvit 100 //Agrega 100 puntos disponibles al stat vitalidad
Ejemplo: /addene 100 //Agrega 100 puntos disponibles al stat energia
Ejemplo: /addcmd 100 //Agregar 100 puntos disponibles al stat comando
Veamos ahora como configurar este comando
;==================================================
; Add Point Command Settings
;==================================================
CommandAddPointSwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandAddPointEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandAddPointEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandAddPointEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandAddPointEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandAddPointAutoEnable_AL0 = 1 // 1=Activa el comando Auto-Add, 0=Desactiva el comando Auto-Add en usuarios FREE
CommandAddPointAutoEnable_AL1 = 1 // 1=Activa el comando Auto-Add, 0=Desactiva el comando Auto-Add en usuarios VIP 1
CommandAddPointAutoEnable_AL2 = 1 // 1=Activa el comando Auto-Add, 0=Desactiva el comando Auto-Add en usuarios VIP 2
CommandAddPointAutoEnable_AL3 = 1 // 1=Activa el comando Auto-Add, 0=Desactiva el comando Auto-Add en usuarios VIP 3
CommandAddPointMoney_AL0 = 0 //Zen requerido para uso del comando en usuarios FREE
CommandAddPointMoney_AL1 = 0 //Zen requerido para uso del comando en usuarios VIP 1
CommandAddPointMoney_AL2 = 0 //Zen requerido para uso del comando en usuarios VIP 2
CommandAddPointMoney_AL3 = 0 //Zen requerido para uso del comando en usuarios VIP 3



3)El siguiente comando es el pkclear
Sintaxis del comando: /pkclear
Función: Borra el pk del personaje
Ejemplo: /pkclear
Veamos ahora como configurar este comando
;==================================================
; PK Clear Command Settings
;==================================================
CommandPKClearSwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandPKClearEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandPKClearEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandPKClearEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandPKClearEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandPKClearMoney_AL0 = 0 //Zen requerido para uso del comando en usuarios FREE
CommandPKClearMoney_AL1 = 0 //Zen requerido para uso del comando en usuarios VIP 1
CommandPKClearMoney_AL2 = 0 //Zen requerido para uso del comando en usuarios VIP 2
CommandPKClearMoney_AL3 = 0 //Zen requerido para uso del comando en usuarios VIP 3

4)El siguiente comando es el money
Sintaxis del comando: /money [Valor numérico]
Función: Permite recibir zen a partir del valor ingresado
Ejemplo: /money 1000000
Veamos ahora como configurar este comando
;==================================================
; Money Command Settings
;==================================================
CommandMoneySwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandMoneyEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandMoneyEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandMoneyEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandMoneyEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3

5)El siguiente comando es el change
Sintaxis del comando: /change
Función: Permite evolucionar el personaje a la siguiente quest.
Ejemplo: /change
*(Si repetimos el comando el personaje volverá a evolucionar a la siguiente quest)
Veamos ahora como configurar este comando
;==================================================
; Change Command Settings
;==================================================
CommandChangeSwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandChangeEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandChangeEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandChangeEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandChangeEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandChangeMoney_AL0 = 0 //Zen requerido para uso del comando en usuarios FREE
CommandChangeMoney_AL1 = 0 //Zen requerido para uso del comando en usuarios VIP 1
CommandChangeMoney_AL2 = 0 //Zen requerido para uso del comando en usuarios VIP 2
CommandChangeMoney_AL3 = 0 //Zen requerido para uso del comando en usuarios VIP 3
CommandChangeLimit_AL0 = 2 //Limite de evolución 0=Primera Quest, 1=Segunda Quest, 2=Tercera quest para usuarios FREE
CommandChangeLimit_AL1 = 2 //Limite de evolución 0=Primera Quest, 1=Segunda Quest , 2=Tercera quest para usuarios VIP 1
CommandChangeLimit_AL2 = 2 //Limite de evolución 0=Primera Quest, 1=Segunda Quest , 2=Tercera quest para usuarios VIP 2
CommandChangeLimit_AL3 = 2 //Limite de evolución 0=Primera Quest, 1=Segunda Quest , 2=Tercera quest para usuarios VIP 3

6)El siguiente comando es el ware
Sintaxis del comando: /ware [nº de baul]
Función: Permite cambiar de baul.
Ejemplo: /ware 1
;==================================================
; Ware Command Settings
;==================================================
CommandWareSwitch = 1 // 1=Activa el comando 0=Desactiva el comando
CommandWareEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandWareEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandWareEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandWareEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandWareNumber_AL0 = 1 //Cantidad de baules que tendrá disponibles los usuarios FREE
CommandWareNumber_AL1 = 1 //Cantidad de baules que tendrá disponibles los usuarios VIP 1
CommandWareNumber_AL2 = 1 //Cantidad de baules que tendrá disponibles los usuarios VIP 2
CommandWareNumber_AL3 = 1 //Cantidad de baules que tendrá disponibles los usuarios VIP 3

7)El siguiente comando es el resets
Sintaxis del comando: /reset
Función: Permite realizar un reset previo alcanze de los requisitos establecidos.
Ejemplo: /reset
;==================================================
; Reset Command Settings
;==================================================
CommandResetSwitch = 1 //1=Activa el comando 0=Desactiva el comando
CommandResetType = 0 // 0=Mantiene los stats, 1=Borra los stats
CommandResetEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandResetEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandResetEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandResetEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandResetAutoEnable_AL0 = 1 // 1=Activa el auto resets, 0=Desactiva el auto reset para usuarios FREE
CommandResetAutoEnable_AL1 = 1 //1=Activa el auto resets, 0=Desactiva el auto reset para usuarios VIP 1
CommandResetAutoEnable_AL2 = 1 //1=Activa el auto resets, 0=Desactiva el auto reset para usuarios VIP 2
CommandResetAutoEnable_AL3 = 1 //1=Activa el auto resets, 0=Desactiva el auto reset para usuarios VIP 3
CommandResetCheckItem_AL0 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios FREE
CommandResetCheckItem_AL1 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 1
CommandResetCheckItem_AL2 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 2
CommandResetCheckItem_AL3 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 3
CommandResetMove_AL0 = 1 // 1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el resets en usuarios FREE
CommandResetMove_AL1 = 1 //1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el resets en usuarios VIP 1
CommandResetMove_AL2 = 1 //1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el resets en usuarios VIP 2
CommandResetMove_AL3 = 1 //1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el resets en usuarios VIP 3
CommandResetQuest_AL0 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios FREE
CommandResetQuest_AL1 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 1
CommandResetQuest_AL2 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 2
CommandResetQuest_AL3 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 3
CommandResetSkill_AL0 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios FREE
CommandResetSkill_AL1 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 1
CommandResetSkill_AL2 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 2
CommandResetSkill_AL3 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 3
CommandResetLevel_AL0 = 400 //Nivel requerido para realizar el resets en personajes FREE
CommandResetLevel_AL1 = 400 //Nivel requerido para realizar el resets en personajes VIP 1
CommandResetLevel_AL2 = 400 //Nivel requerido para realizar el resets en personajes VIP 2
CommandResetLevel_AL3 = 400 //Nivel requerido para realizar el resets en personajes VIP 3
CommandResetMoney_AL0 = 0 //Zen requerido para realizar el reset en usuarios FREE
CommandResetMoney_AL1 = 0 //Zen requerido para realizar el reset en usuarios VIP 1
CommandResetMoney_AL2 = 0 //Zen requerido para realizar el reset en usuarios VIP 2
CommandResetMoney_AL3 = 0 //Zen requerido para realizar el reset en usuarios VIP 3
CommandResetCount_AL0 = 1 //Cantidad de resets que recibe por cada resets realizado en usuarios FREE
CommandResetCount_AL1 = 1 //Cantidad de resets que recibe por cada resets realizado en usuarios VIP 1
CommandResetCount_AL2 = 1 //Cantidad de resets que recibe por cada resets realizado en usuarios VIP 2
CommandResetCount_AL3 = 1 //Cantidad de resets que recibe por cada resets realizado en usuarios VIP 3
CommandResetLimit_AL0 = 10000 //Limite de resets que podrá realizar usuarios FREE
CommandResetLimit_AL1 = 10000 //Limite de resets que podrá realizar usuarios VIP 1
CommandResetLimit_AL2 = 10000 //Limite de resets que podrá realizar usuarios VIP 2
CommandResetLimit_AL3 = 10000 //Limite de resets que podrá realizar usuarios VIP 3
CommandResetLimitDay_AL0 = 10000 //Limite de resets diarios en usuarios FREE
CommandResetLimitDay_AL1 = 10000 //Limite de resets diarios en usuarios VIP 1
CommandResetLimitDay_AL2 = 10000 //Limite de resets diarios en usuarios VIP 2
CommandResetLimitDay_AL3 = 10000 //Limite de resets diarios en usuarios VIP 3
CommandResetLimitWek_AL0 = 10000 //Limite de resets semanales en usuarios FREE
CommandResetLimitWek_AL1 = 10000 //Limite de resets semanales en usuarios VIP 1
CommandResetLimitWek_AL2 = 10000 //Limite de resets semanales en usuarios VIP 2
CommandResetLimitWek_AL3 = 10000 //Limite de resets semanales en usuarios VIP 3
CommandResetLimitMon_AL0 = 10000 //Limite de resets mensuales en usuarios FREE
CommandResetLimitMon_AL1 = 10000 //Limite de resets mensuales en usuarios VIP 1
CommandResetLimitMon_AL2 = 10000 //Limite de resets mensuales en usuarios VIP 2
CommandResetLimitMon_AL3 = 10000 //Limite de resets mensuales en usuarios VIP 3
CommandResetStartLevel_AL0 = 1 //Nivel con el que inician los usuarios FREE
CommandResetStartLevel_AL1 = 1 //Nivel con el que inician los usuarios VIP 1
CommandResetStartLevel_AL2 = 1 //Nivel con el que inician los usuarios VIP 2
CommandResetStartLevel_AL3 = 1 //Nivel con el que inician los usuarios VIP 3
CommandResetPoint_AL0 = 0 // Puntos por resets que recibe los usuarios FREE
CommandResetPoint_AL1 = 0 // Puntos por resets que recibe los usuarios VIP 1
CommandResetPoint_AL2 = 0 // Puntos por resets que recibe los usuarios VIP 2
CommandResetPoint_AL3 = 0 // Puntos por resets que recibe los usuarios VIP 3
CommandResetPointRateDW = 100 //Porcentaje de puntos que recibe los Dark Wizard
CommandResetPointRateDK = 100 //Porcentaje de puntos que recibe los DArk Knight
CommandResetPointRateFE = 100 //Porcentaje de puntos que recibe las Fairy Elf
CommandResetPointRateMG = 100 //Porcentaje de puntos que recibe los Magic Gladiator
CommandResetPointRateDL = 100 //Porcentaje de puntos que recibe los Dark Lord
CommandResetPointRateSU = 100 //Porcentaje de puntos que recibe las Summoner
CommandResetPointRateRF = 100 //Porcentaje de puntos que recibe los Rage Fighter

9)7)El siguiente comando es el Master resets
Sintaxis del comando: /mreset
Función: Permite realizar un master reset previo alcanze de los requisitos establecidos.
Ejemplo: /mreset
;==================================================
; Master Reset Command Settings
;==================================================
CommandMasterResetSwitch = 0 //1=Activa el comando 0=Desactiva el comando
CommandMasterResetType = 0 //0=Mantiene los stats, 1=Borra los stats
CommandMasterResetEnable_AL0 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a FREE
CommandMasterResetEnable_AL1 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 1
CommandMasterResetEnable_AL2 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 2
CommandMasterResetEnable_AL3 = 1 //1=Activa el comando, 0=Desactiva el comando a usuarios a VIP 3
CommandMasterResetCheckItem_AL0 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios FREE
CommandMasterResetCheckItem_AL1 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 1
CommandMasterResetCheckItem_AL2 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 2
CommandMasterResetCheckItem_AL3 = 0 //1=Activa el chequeo de items equipados, 0=Desactivada el chequeo de items equipados en usuarios VIP 3
CommandMasterResetMove_AL0 = 0 // 1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el master resets en usuarios FREE
CommandMasterResetMove_AL1 = 0 // 1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el master resets en usuarios VIP 1
CommandMasterResetMove_AL2 = 0 // 1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el master resets en usuarios VIP 2
CommandMasterResetMove_AL3 = 0 // 1=Activa el envio del personaje a una zafe zone luego de realizar el resets, 0=Desactiva el envio del personaje a una zafe zone luego de realizar el master resets en usuarios VIP 3
CommandMasterResetQuest_AL0 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios FREE
CommandMasterResetQuest_AL1 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 1
CommandMasterResetQuest_AL2 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 2
CommandMasterResetQuest_AL3 = 0 //1=Activa el borrado de la quest 0=Desactiva el borrado de quest en usuarios VIP 3
CommandMasterResetSkill_AL0 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios FREE
CommandMasterResetSkill_AL1 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 1
CommandMasterResetSkill_AL2 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 2
CommandMasterResetSkill_AL3 = 0 //1=Activa el borrado de skills 0=Desactiva el borrado de skills en usuarios VIP 3
CommandMasterResetLevel_AL0 = 400 //Nivel requerido para realizar el master resets en personajes FREE
CommandMasterResetLevel_AL1 = 400 //Nivel requerido para realizar el masterresets en personajes VIP 1
CommandMasterResetLevel_AL2 = 400 //Nivel requerido para realizar el masterresets en personajes VIP 2
CommandMasterResetLevel_AL3 = 400 //Nivel requerido para realizar el masterresets en personajes VIP 3
CommandMasterResetReset_AL0 = 1000 //Resets requerido para realizar el master resets en personajes FREE
CommandMasterResetReset_AL1 = 1000 //Resets requerido para realizar el master resets en personajes VIP 1
CommandMasterResetReset_AL2 = 1000 //Resets requerido para realizar el master resets en personajes VIP 2
CommandMasterResetReset_AL3 = 1000 //Resets requerido para realizar el master resets en personajes VIP 3
CommandMasterResetMoney_AL0 = 0 //Zen requerido para realizar el master reset en usuarios FREE
CommandMasterResetMoney_AL1 = 0 //Zen requerido para realizar el master reset en usuarios VIP 1
CommandMasterResetMoney_AL2 = 0 //Zen requerido para realizar el master reset en usuarios VIP 2
CommandMasterResetMoney_AL3 = 0 //Zen requerido para realizar el master reset en usuarios VIP 3
CommandMasterResetCount_AL0 = 1 //Cantidad de master resets que recibe por cada master resets realizado en usuarios FREE
CommandMasterResetCount_AL1 = 1 //Cantidad de master resets que recibe por cada master resets realizado en usuarios VIP 1
CommandMasterResetCount_AL2 = 1 //Cantidad de master resets que recibe por cada master resets realizado en usuarios VIP 2
CommandMasterResetCount_AL3 = 1 //Cantidad de master resets que recibe por cada master resets realizado en usuarios VIP 3
CommandMasterResetLimit_AL0 = 10000 //Limite de master resets que podrá realizar usuarios FREE
CommandMasterResetLimit_AL1 = 10000 //Limite de master resets que podrá realizar usuarios VIP 1
CommandMasterResetLimit_AL2 = 10000 //Limite de master resets que podrá realizar usuarios VIP 2
CommandMasterResetLimit_AL3 = 10000 //Limite de master resets que podrá realizar usuarios VIP 3
CommandMasterResetLimitDay_AL0 = 10000 //Limite de master resets diarios en usuarios FREE
CommandMasterResetLimitDay_AL1 = 10000 //Limite de master resets diarios en usuarios VIP 1
CommandMasterResetLimitDay_AL2 = 10000 //Limite de master resets diarios en usuarios VIP 2
CommandMasterResetLimitDay_AL3 = 10000 //Limite de master resets diarios en usuarios VIP 3
CommandMasterResetLimitWek_AL0 = 10000 //Limite de master resets semanales en usuarios FREE
CommandMasterResetLimitWek_AL1 = 10000 //Limite de master resets semanales en usuarios VIP 1
CommandMasterResetLimitWek_AL2 = 10000 //Limite de master resets semanales en usuarios VIP 2
CommandMasterResetLimitWek_AL3 = 10000 //Limite de master resets semanales en usuarios VIP 3
CommandMasterResetLimitMon_AL0 = 10000 //Limite de master resets mensuales en usuarios FREE
CommandMasterResetLimitMon_AL1 = 10000 //Limite de master resets mensuales en usuarios VIP 1
CommandMasterResetLimitMon_AL2 = 10000 //Limite de master resets mensuales en usuarios VIP 2
CommandMasterResetLimitMon_AL3 = 10000 //Limite de master resets mensuales en usuarios VIP 3
CommandMasterResetStartLevel_AL0 = 400 //Nivel al que volverá los personajes FREE
CommandMasterResetStartLevel_AL1 = 400 //Nivel al que volverá los personajes VIP 1
CommandMasterResetStartLevel_AL2 = 400 //Nivel al que volverá los personajes VIP 2
CommandMasterResetStartLevel_AL3 = 400 //Nivel al que volverá los personajes VIP 3
CommandMasterResetStartReset_AL0 = 0 //Resets a los que volverá los personajes FREE
CommandMasterResetStartReset_AL1 = 0 //Resets a los que volverá los personajes VIP 1
CommandMasterResetStartReset_AL2 = 0 //Resets al que volverá los personajes VIP 2
CommandMasterResetStartReset_AL3 = 0 //Resets al que volverá los personajes VIP 3
CommandMasterResetPoint_AL0 = 0 // Puntos por master resets que recibe los usuarios FREE
CommandMasterResetPoint_AL1 = 0 // Puntos por master resets que recibe los usuarios VIP 1
CommandMasterResetPoint_AL2 = 0 // Puntos por master resets que recibe los usuarios VIP 2
CommandMasterResetPoint_AL3 = 0 // Puntos por master resets que recibe los usuarios VIP 3
CommandMasterResetPointRateDW = 100 //Porcentaje de puntos que recibe los Dark Wizard
CommandMasterResetPointRateDK = 100 //Porcentaje de puntos que recibe los DArk Knight
CommandMasterResetPointRateFE = 100 //Porcentaje de puntos que recibe las Fairy Elf
CommandMasterResetPointRateMG = 100 //Porcentaje de puntos que recibe los Magic Gladiator
CommandMasterResetPointRateDL = 100 //Porcentaje de puntos que recibe los Dark Lord
CommandMasterResetPointRateSU = 100 //Porcentaje de puntos que recibe las Summoner
CommandMasterResetPointRateRF = 100 //Porcentaje de puntos que recibe los Rage Fighter

10)Para finalizar, veremos como modificar la sintaxis de cada comando, es decir, en lugar de escribir /post, podemos modificarlo para simplificarlo a /p, extenderlo o cambiar completamente la sintaxis.
Para eso debemos ingresar a la siguiente ruta: Muserver\Data y abrimos el archivo llamado Message.txt

Visualizando el archivo message

Entonces para modificar la sintaxis de un comando, basta con modificar lo que este despues del /, recordando que no debes eliminar las "" ni el /
Luego de efectuar los cambios, debemos hacer un reload para que tomen efecto.