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.

Cambiar puntos por level en MUEMU

Bienvenidos a un nuevo tutorial, hoy veremos algo rápido, sencillo pero práctico.
Se trata de como configurar los puntos que recibe cada raza por nivel realizado.

El archivo encargado de esta configuración es el GameServerInfo - Common.dat el cual se encuentra en la siguiente ruta: Muserver\GameServer\DATA

1)Una vez abierto nos posicionamos sobre la linea: Level Up Settings

Visualizando las lineas Level Up Point

2)Y ahora analizemos que significa cada linea:
MaxLevelUp = 1 //Número máximo de niveles que se pueden realizar de forma simultanea.
MaxLevelUpEvent = 1 // Número máximo de niveles que se pueden realizar en eventos
MaxLevelUpQuest = 1 //Número máximo de niveles que se pueden realizar luego de la Quest
MaxStatPoint_AL0 = 65000 //Valor maximo de stats en usuarios FREE
MaxStatPoint_AL1 = 65000 //Valor maximo de stats en usuarios VIP 1
MaxStatPoint_AL2 = 65000 //Valor maximo de stats en usuarios VIP 2
MaxStatPoint_AL3 = 65000 //Valor maximo de stats en usuarios VIP 3
DWLevelUpPoint = 5 //Puntos por nivel alcanzado en el personaje Dark Wizard
DKLevelUpPoint = 5 //Puntos por nivel alcanzado en el personaje Dark Knight
FELevelUpPoint = 5 //Puntos por nivel alcanzado en el personaje Fairy Elf
MGLevelUpPoint = 7 //Puntos por nivel alcanzado en el personaje Magic Gladiator
DLLevelUpPoint = 7 //Puntos por nivel alcanzado en el personaje Dar kLord
SULevelUpPoint = 5 //Puntos por nivel alcanzado en el personaje Summoner
RFLevelUpPoint = 7 //Puntos por nivel alcanzado en el personaje Rage Fighter
PlusStatPoint = 1 // Puntos de bonificación luego de la quest de Marlon
Recuerden que los cambios tambien deberán ser efectuados en el mismo archivo pero en la siguiente ruta: Muserver\GameServerCS\DATA

Tambien no olviden hacer un reload para que los cambios tengan efecto.

Modificar los textos del cliente en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a modificar varios textos que se encuentran del lado del cliente en MUEMU

1)El primero será el ya conocido "ServerList", pero para saber de que se trata veamos la siguiente imagen:

Interfaz del cliente Season 8 ep3 MuEMU

Por incompatibilidad no podemos usar el Magic Hand ya que al intentar abrir el archivo este no cargará los textos, por eso debemos de usar una nueva aplicación, es decir, usaremos el ZfileManager el cual ya estará disponible para su descarga.
Una vez descargado, lo ejecutamos.

Interfaz de la aplicacion Zteam

2)Ahora hacemos un clic en "Client" => "Configuration" => "ServeList.bmd"

Seleccionando el serverlist para editar

3)En nuestra nueva ventana, debemos buscar el archivo ServerList.bmd el cual se encuentra en la siguiente ruta: Cliente MUEMU\Data\Local
Luego hacemos un clic en "Abrir"

Seleccionando el serverlist para editar

4)En el campo "Name" podremos editar el nombre por el de nuestro servidor.
No esta demás aclarar que cada cada ID hace referencia a un server diferente, el ID=0 sería nuesto server principal.

Cambiando el nombre

5)Adicionalmente, podemos modificar la posición en donde aparece el selector del servidor, para eso debemos modificar el valor 0 en la columna ServerPos y dependiendo en donde deseamos visualizarlo dependerá el valor que debemos ingresar:
ServerPos=0 //Posición actual, es decir, del lado izquierdo de la intefaz
ServerPos=1 //Aparecerá del lado derecho de la interfaz
ServerPos=2 //parecerá del lado de abajo de la interfaz
Para entenderlo mejor, veamos la siguiente imagen:

Posicion del serverlist en la intefaz del cliente

6)Luego de efectuar los cambios, hacemos un clic en "File" => "Save" y seleccionamos la ruta en donde deseamos guardarlo.

Salvando los cambios del archivo serverlist

7)Otro texto que veremos hoy para modificar es el que aparece en la parte inferior de la interfaz inicial. Veamos una imagen para entender mejor.

Texto a modificar en la interfaz del cliente Season 8 Ep 3

8)Para editar esa linea, aprovecharemos el mismo editor que usamos recientemente, la diferencia es que ahora en lugar de seleccionar el ServerList.bmd debemos seleccionar el "Text.bmd"
Antes de editar el archivo debemos saber que existen tres text.bmd dentro del cliente, cada uno se aloja en una carpeta diferente y corresponde a un idioma o lenguaje de nuestro juego.
Los tres lenguajes disponibles con su respectiva carpeta son los siguientes:
Eng=Ingles
Spn=Español
Por=Portugues
Este idioma lo podemos modificar en la entrada de nuestro registro "LangSelection" de forma manual o pueden hacerlo de forma sencilla ingresando a la siguiente ruta "Cliente MUEMU\Lenguaje Cliente", alli nos encontraremos tres archivos.reg y para modificar el idioma bastará con ejecutar el .reg que deseamos.



Tengan en cuenta que si modificamos los archivos .bmd por ejemplo de la carpeta ENG, no se reflejarán los cambios si ingresamos al juego con el lenguaje activo SPN por eso recomendamos editar los tres archivos de cada lenguaje o si solo quieren trabajar con un solo idioma debemos indicarle a nuestros jugadores que ejecuten el archivo .reg correspondiente antes de ingresar al juego.

Entonces, de la misma forma que lo hicimos anteriormente, abrimos la aplicación ZfileManager hacemos un clic en "Client" => "Configuration" => "Text.bmd"

Abriendo el text.bmd con la aplicación ZFileManager

9)En nuestra nueva ventana, debemos buscar el archivo text_.bmd, entonces si lo que desean es editar el text_eng.bmd su ruta es: Cliente MUEMU\Data\Local\Eng ,
si lo que desean es editar el text_spn.bmd su ruta es : Cliente MUEMU\Data\Local\Spn
y si deseamos editar el text_por.bmd su ruta es: Cliente MUEMU\Data\Local\Por
A modo de ejemplo, editaremos en text_eng.bmd, entonces lo seleccionamos y hacemos un clic en "Abrir"

Seleccionando el archivo text_eng.bmd para su edición

10)El programa cargará nuestro archivo text_eng.bmd y de esta forma podremos editarlo.
La linea a editar se encuentra en la posición [454] y [455].

Editando el text_eng.bmd

11)Luego de editar nuestro archivo salvamos los cambios haciendo un Clic en "File" => Save y reemplazamos el text de nuestro cliente por el modificado.

Otras de las modificaciones que veremos relacionada a los textos del cliente, es la encargada de los mensajes en forma de marquesina que aparecen en la parte superior de cliente.
Veamos la siguiente imagen para enteder de que se trata:

Editando el text_eng.bmd

12)Para poder editar esos textos utilizaremos una vez el ZfileManager.
Al igual que con el archivo anterior, este tambien se repite tres veces , es decir, uno por cada idioma de nuestro cliente.
Entonces para poder editar el archivo hacemos un clic en "Client" => "Configuration" => "Slide_.bmd"

Abriendo el archivo slide_eng.bmd para su edicion

13)En nuestra nueva ventana, debemos buscar el archivo slide_.bmd el cual se encuentra en la siguiente ruta: Cliente MUEMU\Data\Local\
A modo de ejemplo, editaremos en slide_eng.bmd, entonces lo seleccionamos y hacemos un clic en "Abrir"

Editando el archivo slide_eng del cliente

14)Luego de efectuar los cambios guardamos y reemplazamos
Y finalmente veremos como editar el nombre de la ventana del juego, para entender de que se trata veamos la siguiente imagen:

Modificando el nombre de la ventana en el archivo MainInfo.ini

15)Para editar el nombre de la ventana, debemos volver a generar el patch "main.emu" ya que ese texto está contenido en el archivo MainInfo.ini
Entonces, abrimos el archivo y nos posicionamos sobre la linea: WindowName y modificamos lo que esta despues del = por el nombre que deseamos. (No olviden configurar la IP en el caso de trabajar con el Patch original)
Luego de eso, volvemos a generar el archivo main.emu haciendo clic en la aplicación GetMainInfo.exe y lo pegamos en el cliente reemplazando el anterior.
Para verificar que todo este correcto, ingresamos al juego a verificar los cambios.

Verificando los cambios dentro del cliente

*Recueden, antes de modificar un archivo siempre realizen un backup del original ya que cometemos algun error tendremos un respaldo

Hacer una cuenta VIP en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a convertir o hacer una cuenta vip en los files MUEMU.
Recuerden que cuando trabajamos con el sistema vip en estos files, siempre hacemos referencia a la cuenta y no al personaje, ya que existen files en donde permite hacer VIP a un personaje en lugar de hacer vip a una cuenta.

Tambien es importante saber que los usuarios con cuentas vip podrán ingresar a los servidores FREE y tendrán privilegio diferencial de acuerdo a nuestras configuraciones dentro del juego.



1)Lo primero que veremos será como hacer una cuenta vip. Para esto usaremos la siguiente query o consulta SQL
USE MUONLINE
UPDATE MEMB_INFO SET AccountLevel = 1, AccountExpireDate = GETDATE() + 30 WHERE memb___id = 'LOGIN'
Veamos como configurar la consulta:
AccountLevel = hace referencia al nivel vip que deseamos darle a esa cuenta, entonces
0=Account FREE
1=Account Vip nivel 1
2=Account Vip nivel 2
3=Account Vip nivel 3

AccountExpireDate= Hace referencia al tiempo, solo que debemos prestar atención, no podemos borrar de la sentencia el "GETDATE() +" porque ese parámetro se encarga de imprimir la fecha actual y sumarle una variable, en este caso 30, esto quiere decir que la cuenta tendrá 30 días de membresia vip, si desean modificar la cantidad de días, sólo deben modificar la variable independiente, es decir, el valor 30

memb___id=Hace referencia al ID o login de la cuenta a convertir en VIP

2)Una vez que tenemos configurada nuestra query, ingresamos al Microsoft SQL Server Management Studio, hacemos un clic en "Connect" y luego un clic en donde dice "New Query"

Nueva query en SQL 2008

3)Lo que haremos ahora será copiar y pegar la sentencia ya modificada con nuestros parámetros en el campo que aparece a la derecha y apretamos la tecla "F5" o hacemos un clic en "Execute"
Si todo está correcto, en el campo "Messages" les debe aparecer el mensaje que indica que 1 Row(s) o fila fue afectada, si en lugar de eso aparece 0 Row(s) posiblemente se deba a que colocaron un Id o login de cuenta inexistente.

Query vip para files MUEMU

4)Para ver que todo esta correcto ingresamos al juego a verificarlo:

Ingresando al cliente a verificar el estado vip de la cuenta

5)Como podemos observar en la imagen anterior, la cuenta ahora es Vip 1 y con vencimiento en 30 dias.
Pero supongamos que deseamos modificar el nivel Vip, es decir, de nivel Vip 1 a nivel Vip 3 pero sin alterar la fecha de vencimiento, en ese caso podemos usar la siguiente consulta:
USE MUONLINE
UPDATE MEMB_INFO SET AccountLevel = 3 WHERE memb___id = 'LOGIN'
El procedimiento es el mismo que realizamos en los pasos anteriores, es decir, seleccionamos el "AccountLevel" al que deseamos actualizar, ingresamos el "Login" de la cuenta y copiamos la consulta como una nueva query en nuestro SQL Server Management
Para actualizar los datos apretamos "F5" o hacemos clic en "Execute"

Ingresando al cliente a verificar la actualizacion del estado vip

6)Como podemos ver en la imagen anterior, el estado Vip paso de 1 a 3
Ahora supongamos que lo que deseamos modificar no es el nivel vip , sino el tiempo, lo haremos con la siguiente consulta:
USE MUONLINE
UPDATE MEMB_INFO SET AccountExpireDate = AccountExpireDate + 30 WHERE memb___id = 'LOGIN'
En este caso, modificamos el 30 por la cantidad de dias que deseamos adicionar y el login de la cuenta a la cual deseamos alterarle el tiempo de vencimiento.
Luego apretamos "F5" o hacemos un clic en el boton "Execute"

Ingresando al cliente a verificar el tiempo de vencimiento

7)Como podemos observar, el tiempo de vencimiento vip paso de 30 días a 60 días. Es decir, del 17/11 al 17/12.
Finalmente, para realizar los cortes de usuarios vip podemos hacerlo de la siguiente forma:
USE MUONLINE
UPDATE MEMB_INFO SET AccountLevel = 0 WHERE memb___id = 'LOGIN'
El valor 0 hará que la cuenta se convierte en FREE nuevamente
Al igual que los ejemplos anteriores, reemplazamos la palabra
"Login" por el Id de la cuenta y luego apretamos "F5" o hacemos un clic en el boton "Execute".

Pero hacer este corte manual puede volverse tedioso cuando se trata de varias cuentas, es decir, controlar cuenta por cuenta verificando su vencimiento es un procedimiento que demanda mucho tiempo por eso podemos automatizar esta tarea con el siguiente procedimiento almacenado:
USE MuOnline
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO

ALTER Procedure [dbo].[WZ_GetAccountLevel]
@Account varchar(10)
AS
BEGIN

SET NOCOUNT ON
SET XACT_ABORT ON

DECLARE @CurrentAccountLevel int
DECLARE @CurrentAccountExpireDate smalldatetime

SELECT @CurrentAccountLevel=AccountLevel,@CurrentAccountExpireDate=AccountExpireDate FROM MEMB_INFO WHERE memb___id=@Account

IF(@CurrentAccountLevel <> 0 AND getdate() > @CurrentAccountExpireDate)
BEGIN
SET @CurrentAccountLevel = 0

UPDATE MEMB_INFO SET AccountLevel=@CurrentAccountLevel,AccountExpireDate=@CurrentAccountExpireDate WHERE memb___id=@Account
END

SELECT @CurrentAccountLevel As AccountLevel,@CurrentAccountExpireDate As AccountExpireDate

SET NOCOUNT OFF
SET XACT_ABORT OFF

END
GO

SET ANSI_NULLS OFF
GO
SET QUOTED_IDENTIFIER OFF
GO
Al igual que con las otras querys, para su "instalación" debemos copiar el contenido, pegarlo y apretar el boton "F5" o hacemos un clic en el boton "Execute", este procedimiento sólo debemos ejecutarlos realizarlo una sola vez.

Si desean verificar que todo funcione correctamente, pueden alterar la fecha de vencimiento de forma manual desde la base de datos y ver si hace el corte vip automático ingresando al juego. En el caso que no les funcione no duden en escribirnos.

Calcular el index de los items en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a calcular el index de los items en los files MUEMU.
Es importante saber que este index no lo usaremos siempre, ya que para configurar shops, boxs, etc usaremos el index de los items que ya conocemos, es decir, el que extraemos del archivo item.txt.

Pero para configurar algunos archivos del cliente, items customs, etc si vamos a necesitar conocer este nuevo "index".



1)La fórmula es muy sencilla, se basa en un simple cálculo matemático que es el siguiente:
Nuevo Index = (Grupo*512)+Index
Para entender mejor esta formula, analizemosla:
  • Nuevo Index: Es lo que buscamos encontrar, es decir, será nuestro resultado
  • Grupo: Es el número global de una categoria de items, por ejempo el número que representa al grupo de las armors es el: 8
  • 512: Variable fija.
  • Index: La posición actual que ocupa un item dentro de un grupo


  • Si tienen duda sobre estos términos, pueden volver a leer nuestro tutorial en donde ya hemos explicado en detalle estos conceptos. Para ver el tutorial deben hacer Clic Aqui

    2)Entonces, supongamos que deseamos calcular el "Nuevo index" del item: "Plate Shield", primero debemos extraer los datos del item.txt para hacer los cálculos.
    Nuevo Index= Plate Shield
    Grupo: 6
    512: 512
    Index: 9
    Visualizando los valores del item plate shield

    3)Luego aplicamos la formula: Plate Shield=(6*512)+9 y realizando los cálculos obtenemos Plate Shield= 3081

    Pero para quien no desea realizar cálculos, hemos creado una sencilla aplicacion que permite obtener estos nuevos index de forma más rápida y sencilla. Para ingresar a la aplicación deben hacer un Clic aqui

    Visualizando el generador de index para files MUEMU

    El funcionamiento es muy simple, primero debemos seleccionar el grupo, es decir, la categoria a la que pertecene nuestro item, escribimos su posición y luego hacemos clic en "Calcular" para obtener el resultado.

    Modificar las noticias automaticas en MUEMU

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a modificar las noticias automáticas que aparecen en nuestro servidor en determinado tiempo.
    Para entender mejor, veamos un ejemplo para saber de que se trata:

    Visualizando la noticia dentro del juego

    1)Para modificar, personalizar o editar el sistema de noticias automáticas debemos ingresar a
    Muserver\Data\Util y abrimos el archivo llamado: Notice.txt

    Archivo notice

    2)Analizemos su contenido:
    Message: Hace referencia al texto que se visualizará dentro del juego y soporta un máximo de 127 caracteres (No olviden que los "." las "," y otros símbolos tambien son caracteres y cuentan como tal)
    Por otra parte, la noticia debe ir entre comillas.

    Type: Si colocamos 0, la noticia aparecerá en global.
    Si colocamos 1, la noticia aparecerá en donde sale la experiencia ganada.
    Si colocamos 2, la noticia aparecerá como anuncio de guild .

    Count: función desactivada, dejar el valor default.

    Opacity: función desactivada, dejar el valor default.

    Delay: función desactivada, dejar el valor default.

    Red: función desactivada, dejar el valor default.

    Green: función desactivada, dejar el valor default.

    Blue: función desactivada, dejar el valor default.

    Speed: función desactivada, dejar el valor default.

    RepeatTime: Es el tiempo con el que la noticia se repetirá, este valor está calculado en segundos.
    Recuerden, si quieren agregar más de una noticia, bastará con copiar la linea completa de nuestra noticia actual y pegarla debajo, de esa forma podremos modificar los parámetros de forma independiente, es decir, una noticia podrá ser Type:0 y la otra Type:1

    Crear un personaje GM/ADM en MUEMU

    Bienvenidos a un nuevo tutorial, hoy aprenderemos a crear un personaje GameMaster/Administrador (GM/ADM) en los files MUEMU.

    Es necesario que antes de comenzar tengamos una cuenta con al menos un personaje.
    1) Luego de eso nos dirigimos a la carpeta Muserver\Data\Util y abrimos el archivo llamado GameMaster.txt

    Visualizando el archivo GameMaster

    2)El contenido del archivo es muy sencillo, se basa en 3 columnas las cuales deberán ser completadas de la siguiente forma:
    Account: ID o login de nuestra cuenta a convertir en GM/ADM
    Name: nombre de nuestro personaje a convertir en GM/ADM
    Level: 8 para GM / 32 para ADM
    Para ver ambas funciones de la columna Level, editaremos a modo de ejemplo dos personajes, uno llamado "GmTEST" level 8 y el otro "AdmTest" level 32 (Ambos personajes pertenecen al ID: asdasd)

    Visualizando el archivo GameMaster

    4)¿Pero cuál es la diferencia entre Level 8 y Level 32?
    No hay diferencia, o mejor dicho, nosotros podemos hacer la diferencia configurando a que level se podrá usar los diferentes comandos.
    Estos comandos estan disponibles en el archivo GameServerInfo - Command.dat en la siguiente ruta: Muserver\GameServer\DATA
    ;==================================================
    ; GM Move Command Settings
    ;==================================================
    CommandGMMoveSwitch = 1 // 1=Activado - 0=Desactivado
    CommandGMMoveGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; GM Post Command Settings
    ;==================================================
    CommandGMPostSwitch = 1 // 1=Activado - 0=Desactivado
    CommandGMPostGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Track Command Settings
    ;==================================================
    CommandTrackSwitch = 1 // 1=Activado - 0=Desactivado
    CommandTrackGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Trace Command Settings
    ;==================================================
    CommandTraceSwitch = 1 // 1=Activado - 0=Desactivado
    CommandTraceGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Disconnect Command Settings
    ;==================================================
    CommandDisconnectSwitch = 1 // 1=Activado - 0=Desactivado
    CommandDisconnectGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Fireworks Command Settings
    ;==================================================
    CommandFireworksSwitch = 1 // 1=Activado - 0=Desactivado
    CommandFireworksGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Make Command Settings
    ;==================================================
    CommandMakeSwitch = 1 // 1=Activado - 0=Desactivado
    CommandMakeGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Skin Command Settings
    ;==================================================
    CommandSkinSwitch = 1 // 1=Activado - 0=Desactivado
    CommandSkinGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Set Money Command Settings
    ;==================================================
    CommandSetMoneySwitch = 1 // 1=Activado - 0=Desactivado
    CommandSetMoneyGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Notice Command Settings
    ;==================================================
    CommandNoticeSwitch = 1 // 1=Activado - 0=Desactivado
    CommandNoticeGameMasterLevel = 32 // 32=ADM - 8=GM

    ;==================================================
    ; Hide Command Settings
    ;==================================================
    CommandHideSwitch = 1 // 1=Activado - 0=Desactivado
    CommandHideGameMasterLevel = 32 // 32=ADM - 8=GM
    Como podrán observar, a cada comando podremos activarlo (Colocando un 1) o Desactivarlo (Colocando un 0) y además podremos configurarlo para ser usado por personajes level 32 (ADM) o level 8 (GM)

    Un detalle importante: si configuramos un comando para ser usado por level 8 tambien lo podrá usar los personajes cuyo rango sea level 32, pero no funcionará al revés, es decir, que si configuramos un comando para level 32 (ADM) no podrá ser usado por los personajes cuyo rango sea level 8 (GM).

    Cuidado, cuando hablamos de level 32 o level 8 no estamos haciendo referencia a el level del personaje dentro del juego, sino al level del rango del personaje en el archivo GameMaster.txt

    Luego de efectuar nuestra configuración debemos guardar los cambios y hacer un reload.

    5)Finalmente para que nos aparezca el logo del GM/ADM en la cabeza del personaje, debemos ingresar al MuEditor, seleccionar nuestra cuenta y personaje, luego hacemos un clic en "Character info", en la opción "Type" desplegamos el menu y seleccionamos donde dice GM.
    Luego hacemos un clic en Update para salvar los cambios.

    Visualizando el archivo GameMaster

    Recuerden que los cambios efectuados en el archivo GameServerInfo - Command.dat ubicado en Muserver\GameServer\DATA, tambien debe server efectuado en el mismo archivo pero de la ruta Muserver\GameServerCS\DATA