Configurar el BonusManager.dat en MUEMU

Bienvenidos a un nuevo tutorial, hoy aprenderemos a configurar el archivo BonusManager.dat
En este archivo es el responsable por el evento conocido como: "HappyHour" el cual consiste en que determinado momento, se incrementa la experiencia y el drop del juego de forma automática.
El BonusManager además de aumentar la exp y drop, nos permite incrementar otros aspectos que veremos a continuación.



1)El archivo BonusManager se encuentra en la siguiente ruta: Muserver\Data\Event
El contenido del archivo, es similar al siguiente:

Visualizando la interfaz del archivo BonusManager.dat

2)Lo primero que deben identificar, siempre que se encuentran con archivos de este tipo, es la cantidad de secciones que tiene. En este caso las secciones o bloques las podemos percibir de manera muy simple, son los números que se encuentran aislados en la parte superior izquierda.
Veamos cuantas secciones tiene nuestro archivo BonusManager

Visualizando las secciones del archivo BonusManager

3)Como podemos observar, tenemos 3 secciones.
La sección 0, la sección 1 y la sección 2
¿Pero, qué significa eso?
Eso significa que al asignarle un "Nº" a una sección, debemos repetir ese mismo valor en las siguientes, de esa forma, podemos identificar una misma configuración en las demás secciones.

Comenzemos con la primera sección, la "0", esta sección es la responsable por dar inicio al evento. Analicémoslo.
Index: Nº que identificará el evento a lo largo de las siguiente secciones.
Year: Año en que iniciará el evento. *=Todos los años
Month: Mes en que iniciará el evento. *=Todos los meses
Day: Día que iniciará el evento. *=Todos los dias
DoW: Día que finaliza el evento. *=Nunca
Hour: Hora en que iniciará el evento. (Formato en 24hs)
Minute: Minuto en que iniciará el evento.
Second: Segundo en que iniciará el evento.
4)Continuemos con la siguiente sección, la "1"
En este apartado definiremos el mensaje de inicio, mensaje de finalización y la duración del evento.
Index: Como lo habiamos explicado anteriormente, aca debemos repetir el mismo valor que que hemos colocado en el campo index de la sección 0.
StartMessage: Número que identificará el mensaje para el inicio del evento, en este ejemplo será el 492 (Lo veremos en detalle a continuación).
FinalMessage: Número que identificará el mensaje para la finalización del evento, en este ejemplo será el 493 (Lo veremos en detalle a continuación).
BonusTime: Tiempo de duración del evento medidos en segundos.
Tanto el mensaje de inicio como el mensaje de finalización parten de un numéro. Ese número y mensaje deben ser definidos antes en el archivo Message.txt el cual se encuentra alojado en la siguiente ruta: Muserver\Data
Una vez abierto el archivo, nos dirigimos a la última linea, en mi caso la 491 y justo debajo agregaremos las siguientes lineas, una debajo de la otra:
492 "Y el mensaje de inicio de evento que deseas, por ejemplo: Evento ON"
493 "Y el mensaje de finalización del evento, por ejemplo: Evento OFF"
Luego, guardamos los cambios. (Presten mucha atención, el mensaje debe estar entre comillas)

Visualizando las dos lineas agregadas al archivo Message

5)Y finalmente llegamos a la última sección, la 2. Aqui podemos definir el tipo de bonus, mapa afectado, etc. Analicémoslo:
Index: Una vez más, en este campo debemos volver a colocar el mismo nº de index que hemos colocado en las anteriores secciones.
BonusIndex: Define el tipo de bonus:
0= Incrementa la experiencia del servidor en adicional de porcentaje
1= Incrementa la master experiencia del servidor en adicional de porcentaje
2= Incrementa el drop de items del servidor en adicional de porcentaje
3= Incrementa la posibilidad de aumentar el drop de items del archivo "ItemDrop.txt" (x/1000000)
4= Incrementa la posibilidad de aumentar el drop excelent. (x/1000000)
5= Incrementa la posibilidad de aumentar el drop ancient. (x/1000000)
6= Aumenta la cantidad de GoblinPoints
7= Aumenta la cantidad de Resets
8= Aumenta la cantidad de MasterResets
BonusValue_AL0: Valor que incide sobre el BonuxIndex seleccionado. Solo afecta a las cuentas FREE
BonusValue_AL1: Valor que incide sobre el BonuxIndex seleccionado. Solo afecta a las cuentas VIP 1
BonusValue_AL2: Valor que incide sobre el BonuxIndex seleccionado. Solo afecta a las cuentas VIP 2
BonusValue_AL3: Valor que incide sobre el BonuxIndex seleccionado. Solo afecta a las cuentas VIP 3
ItemIndex: Número de ItemIndex al que será aplicado el evento. Si deseamos que se aplique a cualquier item, ponemos el valor -1
Sino recuerdas como calcular el ItemIndex puedes verlo haciendo Clic Aqui
ItemLevel: Nivel del item al que será aplicado el evento.
MapNumber: Número de mapa en donde se transcurrirá el evento. Si deseamos que se realizé en cualquier mapa, ponemos el valor -1
Sino recuerdas el número de cada mapa puedes verlo haciendo Clic Aqui
MonsterClass: Número de monster al que será aplicado el evento.
Sino recuerdas el número de cada monster puedes verlo haciendo Clic Aqui
MonsterLevelMin: Nivel mínimo que deberá tener el monster para que se aplique el evento.
Para ver el nivel del monster, deberán hacerlo sobre el archivo monster.txt
MonsterLevelMax: Nivel máximo que deberá tener el monster para que se aplique el evento.
Para ver el nivel del monster, podrán hacerlo sobre el archivo monster.txt
6)Ahora veamos todo junto en un ejemplo:
Supongamos que deseamos configurar el BonusManager de la siguiente manera:
En la sección 0, en donde definimos los horarios, queremos que el bonus inicie todos los años, días, meses pero queremos que sea tres veces al día de la siguiente forma:
a)A las 17:30 hs
b)A las 19:30 hs
c)A las 21:30 hs
Como sabran, solo podemos configurar un horario por linea, entonces lo que haremos será agregar tres lineas bajo el mismo index, en este ejemplo, nuestro index será el nº 0
La primera sección configurada nos quedará asi:

Visualizando la seccion 0

7)Continuemos con la sección 1, aca definimos mensaje de inicio, mensaje de finalización y duración del evento.
En este ejemplo usaremos el mensaje "492" y "493" el cual ya hemos visto anteriormente.
La duración del evento será de 45 minutos, entonces hacemos 45*60 = 2700 (ya que debemos calcular el tiempo en segundos)
La sección 1 configurada nos quedará asi:

Visualizando la seccion 1

8)Y finalmente llegamos a la última sección, la 2. Aqui definimos, como ya hemos visto, el bonus que tendrá nuestro evento entre otras cosas.
El responsable del bonus es el "BonusIndex"
Para este ejemplo, usaremos el BonusIndex=0, es decir, el que "Incrementa la experiencia del servidor en adicional de porcentaje" y usaremos un BonusValue_AL0=100, de esta forma, aumentaremos la exp. en 100% a todos los usuarios FREE del servidor.
Adicionalmente, el evento transcurrirá en cualquier mapa, bajo cualquier monsters, etc...
La sección 2 configurada nos quedará asi:

Visualizando la seccion 2

9)Ahora verifiquemos los resultados. Primero veamos la exp. antes del evento:

Visualizando la experiencia dentro del juego con el evento off

10)Como podemos observar, tenemos dos valores de experiencia recibida antes del evento (En el spot teniamos 2 monsters diferentes)
Exp= 4750
Exp= 5160
Si recuerdan, nosotros hemos usado el BonusValue_AL0=100, eso significa que aumentamos en 100% la exp. cuando el evento comienza.
Presten atención a ese detalle: "el 100" es porcentaje, no es +100 sino +100% (Lo que matemáticamente hablando no es lo mismo)
Haciendo los cálculos obtenemos lo siguiente:
Exp base= 4750 + 100% = 9500
Exp base= 5160 + 100% = 10320
Veamos que sucede con la experiencia con el evento activo:

Visualizando la experiencia dentro del juego con el evento on

Y efectivamente, al iniciar el evento la experiencia del juego aumenta en 100%

-Información adicional:
*Para que el bonusmanager funcione, se debe activar previamente en el archivo GameServerInfo - Event.dat el cual se encuentra en la ruta: Muserver\GameServer\DATA
La linea que activa el evento es la siguiente:
;==================================================
; Bonus Manager Settings
;==================================================
BonusManagerSwitch = 1
1=Activado
0=Desactivado

*No usen reload cuando modifiquen el horario, ya que muchas veces no lo toma, deberán reiniciar el server.
*Como hemos podido observar, podemos poner varias lineas en una misma sección con el mismo index, como por ejemplo poner varios horarios bajo el mismo nº index.

Configurar el MapManager.txt en MUEMU

Bienvenidos a un nuevo tutorial, hoy veremos como configurar el archivo MapManager.txt el cual podemos encontrar en los files MUEMU en la siguiente ruta: Muserver\Data
¿Pero, para sirve este archivo y que podemos configurar en él?

El MapManager.txt nos permite personalizar varias características como la experiencia, dropexc, dropAcc, etc en cada mapa del juego, es decir, podemos realizar configuraciones de manera independiente.



1)Lo primero que haremos, será abrir el archivo para visualizar su contenido:

Visualizando la interfaz del archivo MapManager.txt

2)Ahora, analicémoslo.
Index: Hace referencia al Nº del mapa, sino recuerdas que número representa cada mapa, pueden revisar nuestro tutorial haciendo Clic Aqui

NonPK: Nos permite configurar la característica del mapa en referencia al PVP.
*=Configuración General
0=PVP Activado
1=PVP Desactivado
2=PVP activado + Pk desactivado (El personaje no se convierte en PK)

ViewRange: Rango de visión (Este valor no está relacionado al zoom de la cámara, sino al rango de visión que tendrá el personaje en referencia a un objeto, lo explicaremos en detalles después)

ExperienceRate: Desde aqui podremos aumentar, mantener o disminuir la experiencia en determinado mapa.
100 = Mantiene el valor de la experiencia ya establecida en el servidor
200 = Dobla el valor de la experiencia
300 = Triplica el valor de la experiencia
50 = Reduce a la mitad la experiencia del servidor

ItemDropRate: Valor referente al drop de items. x/1000000

ExcItemDropRate: Valor referente al drop de items excelentes. x/1000000

SetItemDropRate: Valor referente al drop de items ancient. x/1000000

SocketItemDrop: Configuración referente al drop de items Sokets. 0=Deshabilitado, 1=Habilitado.

HelperEnable: Configuración referente al MuHelper. 0=Deshabilitado, 1=Habilitado

GensBattle: Convierte el mapa en Gens Battle. 0=Mapa normal, 1=Gens Battle Zone.

Comment: Apartado de referencias.

2)Recuerden: estas configuraciones solo afectan al mapa que hemos colocado en el campo inicial.
Lo que veremos ahora será el tema que dejamos pendiente respecto al "ViewRange", como ya hemos explicado, no hace referencia al zoom de la camara, sino a la distancia que le permite "ver" a nuestro personaje.
Para entenderlo mejor, veamos esto en un ejemplo, configuraremos al mapa lorencia de la siguiente forma:
0 * 20 100 100 1000 0 0 1 0 //Lorencia
En donde el valor 20 hace referencia a la columna "ViewRange"

Visualizando la configuracion de la columna ViewRange

3)Ahora veremos de que se trata esta configuración y como efecta al juego.

Visualizando la posicion de los personajes dentro del juego

4)Como podemos observar el personaje "test" se encuentra en la posicion X=152,Y=128 y el personaje llamado "mututorial" se encuentra en la posición X=152, Y=127

Lo que haremos ahora, será mover al personaje "mututorial" 20 pasos, es decir, X+20
Entonces, si la posición inicial es X=152 y a este le sumamos 20, el resultado final de ecuación sería X=172

Visualizando el personaje en la posicion x 172

5)Al configurar el ViewRange con el valor 20 significa que los personajes podrán verse si las distancias son menores o iguales al valor de la variable (En este caso, ViewRange=20, esto cuenta tanto en X como en Y).
Pero que pasa si nos movemos 21 posiciones, es decir, x=173 (Un valor a más del definido en la variable).
Veamos el resultado:

Visualizando el personaje en la posicion x 173

6)Efectivamente, el personaje "Mututorial" ya no visualiza al personaje "test".
De eso se trata el ViewRange, y no solo afecta el rango de visión entre personajes, sino que tambien afecta a diversos objetos como NPCs, monsters, etc...

No lo olviden, esta configuración afecta tanto a la distancia X como a la distancia Y, sumando o restando, es decir, tomamos un punto neutro y de ahi establecemos las distancias.