Dar puntos al comenzar (Job SQL)

Bienvenidos a un nuevo tutorial, hoy veremos la forma de dar puntos a los personajes que recien comienzan.
En antiguos tutoriales hemos visto como hacerlo pero con versiones Season´s, en esta oportunidad lo haremos para versiones viejas mediante un JOB SQL



La sentencia la iremos formando paso a paso explicando en detalles cada linea y su funcionamiento:
1)Lo primero que haremos será comenzar con la sentencia simple, es decir:
¿Cómo programamos un job SQL que de 2000 puntos a los personajes que recien comienzan?
La respuesta sería la siguiente:
UPDATE Character
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0
¿Es correcta?¿Qué sucedería si aplicamos esa sentencia?

Sentencia para dar puntos al comenzar

2)Lo que sucederá es que efectivamente le dará esos 2000 puntos al personaje que recien comienza, pero ... ¿Qué pasa si ese personaje reparte todos esos puntos?
Y aca tenemos el primer error, lo que sucederá es que si ese personaje se reparte todos los puntos, volverá a tener 0 puntos para repartir y como la condición anterior requería que el personaje tenga 0 puntos para repartir, el personaje volverá a tener nuevamente 2000 puntos.
Lo que producirá que el personaje se haga full stats en cuestiones de minutos.
¿Cómo lo soluciono?
Necesitamos agregar otro condicional, de modo tal que condicionemos a partir de los stats.
La sentencia sería ahora la siguiente:
UPDATE Character
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0 and Strength = 25 and Dexterity = 25 and Vitality = 25 and Energy = 15
Sentencia en job sql

3)Ahora lo que sucederá es que se le dará esos 2000 puntos a personajes que no tengan puntos ni para repartir ni repartidos.
Y si queremos evitar cualquier tipo de bug por parte de los usuarios (Ya que en algunos servidores, los sitios webs tienen la opción de transferir puntos)
Podemos agregar otros condicioneles como por ejemplo:
UPDATE Character
Set LevelUpPoint =('2000')
WHERE LevelUpPoint =0 and Strength = 25 and Dexterity = 25 and Vitality = 25 and Energy = 15 and Clevel=1 and Resets=0
Información adicional:
*Los niveles de los stats, son referenciales.
*Si en su servidor dan resets para comenzar, deben modificar el valor base de dicha variable en la sentencia.
*Si van aplicar la sentencia para una versión con DarkLord deberán agregar la tabla correspondiente al comando.

Intro Flash Ex 702 (Editable)

Bienvenidos a un nuevo tutorial, hoy veremos como editar esta excelente intro que combina un atractivo diseño con efectos en flash.
Si bien el título dice Ex702, nosotros podremos adaptarla a la versión deseada.
Adicionalmente al diseño, la intro posee botones que podemos configurar de manera sencilla.
Veamos una vista previa de la intro en cuestión.

Imagen de la intro en flash para ex702

1)En la imagen no se puede apreciar, pero esta intro es en flash por lo que tiene varios efectos que se pierden en una imagen estática.
Lo primero que haremos será descargarla, lo cual pueden hacerlo desde nuestro Facebook o desde nuestra Página de Facebook
Una vez descargada veremos algo similar a lo siguiente:

Archivos que componen la intro

2)Comenzemos revisando que es cada archivo o carpeta:
*El archivo index.htm creo que no hace falta aclarar que es, pero por las dudas es el que cargará la intro, link, imágenes, etc
Es el archivo que nuestro apache leerá para interpretar la intro.

*La carpeta flash contiene todos los archivos dinámicos, asi tambien como los archivos .fla para su edición y dependencias.
Tambien contiene el archivo flash.swf compilado que corresponde a la actual carga de la intro.

*La carpeta css contiene como su nombre lo dice el archivo .css el cual se encargará de darle el formato, estrucutra, dimensiones, colores, tamaños, etc a la intro.

*Y finalmente la carpeta images la cual contiene todas las imágenes que imprime la intro y los .psd para que podamos modificarlas a gusto.

Lo primero que haremos, será modificar estas imágenes de modo tal que podamos adaptarlas al nombre de nuestros servidor.
Es importante que para continuar con el tutorial tengan instalado cualquier versión del Photoshop o un procesador de imágenes que pueda leer/modificar archivos en .psd



Entonces ingresamos a la carpeta "images" y abrimos el archivo llamado bg_intro.psd
Lo editamos a gusto modificando lo que deseamos y lo guardamos en la misma carpeta con el siguiente nombre y extensión: bg_intro.jpg
Si desean modificar tambien los botones de abajo, lo que hacen es abrir el archivo
menu.psd lo editan (cuidado con las distancias), luego de editarlo lo guardamos en la misma carpeta bajo el nombre y extensión: menu.png

Editando la intro con photoshop

3)Si deseamos ver una vista de nuestro trabajo, ejecutamos el archivo index.htm y se mismo abrirá una ventana en el navegador en donde podremos visualizar la intro.
Lo que haremos ahora, será abrir el archivo index.htm con un procesador de textos como por ejemplo Dreamweaver.
Lo primero que editaremos será lo que está contenido en las etiquetas <title></title>, lo que debemos hacer es modificar www.muonlinetutoriales.com por el nombre de su servidor.
El siguiente paso será buscar los enlaces de los botones y modificar el contenido de la etiqueta href por el link que nosotros necesitemos darle
Una vez finalizado, guardan los cambios y verificamos

Configurando enlaces externos

4)Y hemos terminado con las ediciones, si quieren modificar el flash deberán hacerlo desde la carpeta nombrada anteriormente y volver a compilarlo bajo el nombre flash.swf
Tambien, para quien desee puede modificar el .css para adaptarlo a su sitio.
Finalmente, para cargar la intro a nuestro sitio, creamos una carpeta llamada por ejemplo "web" y metemos todos los archivos de nuestra webmu en ella.
En la raíz o root de nuestro directorio, pegamos los archivos que componen la intro.
Recuerden direccionar los botones a dicha carpeta.

Parche interfaz Ex700

Bienvenidos a un nuevo tutorial, hoy veremos la forma de agregar un parche que modifica la interfaz de selección de personajes de los clientes Season 6 a una similar de la versión Ex700
Veamos un ejemplo:

Interfaz de ingreso ex700

1)Para esto debemos seguir los siguientes y sencillos pasos:
Descargamos el parche, el cual lo pueden hacer desde nuestro Facebook o desde nuestra Página de Facebook
Una vez descargado, veremos algo similar a lo siguiente:

Archivos que contiene la carpeta

2)Copiamos las dos carpetas y las pegamos en nuestro cliente en la siguiente dirección
MiClienteSeason6/data/[aca pegamos los archivos]
Cuando nos pregunte si deseeamos reemplazar los archivos, seleccionamos la opción "Si a todo"
Luego ingresamos al juego y verificamos los cambios.
Los créditos de dicha adaptación corresponde a sus respectivos autores

Agregar items a nuestro servidor MuOnline

Bienvenidos a un nuevo tutorial, hoy aprenderemos a agregar items a nuestro servidor.
Este tutorial lo dividiremos en diferentes partes o secciones:
a)Aumentar el limite de items y texturas del main.exe
b)Agregado de items al servidor
c)Agregado de items al cliente
d)Agregado de items al editor



Para la primera parte, es decir para lo que veremos en el punto a) , vamos a necesitar de un depurador, existen varios programas que cumplen con dicha función pero en este caso usaremos el http://www.ollydbg.de/
1)Una vez descargado el programa, lo que haremos será abrir nuestro main.exe (El cual debe estar "limpio" ya que si está por ejemplo está encriptado tendremos problemas)
Al abrir el main.exe con nuestro OllyDbg, este demorará un tiempo relativo en cargar y se dentendrá en un Address (Entry Point [EP]), lo que haremos ahora será un clic derecho => Search For =>All referenced text string

OllyDB buscando cadenas de textos

2)En nuestra nueva ventana (Text Strings), volvemos hacer un clic derecho y seleccionamos la opción que dice: "Search for text"
En el cuadro de diálogo, tildamos la opción "Enteri Scope" y escribimos la palabra "Sword" (Sin las comillas) y hacemos un clic en "OK"

Buscando palabra clave en OllyDB

3)Ahora lo que debemos hacer es buscar solamente la palabra "Sword" (Sin las comillas), para eso podemos apretar "Control+L" e ir buscandola hasta encontrarla o podemos hacer nuevamente un clic derecho y seleccionar la opción que dice "Search for next"
Una vez que encontramos la palabra "Sword" la hacemos doble clic izquierdo

Ingresando a la palabra clave encontrada

4)Lo que haremos ahora, será subir un poco y buscar lo siguiente:
CMP DWORD PTR SS:[EBP-4],79
Ese número 79 es el que nos indica la cantidad de items que soporta nuestro main.exe, en este caso, el número 79 equivale decimalmente a 121 items en el campo Swords.
Este main.exe que tome como ejemplo ya tiene fixeado el limite de items, y ese número 79 no será seguramente el mismo numéro con el que se encontrarán ustedes.
Entonces, supongamos que ustedes encuentran algo asi:
CMP DWORD PTR SS:[EBP-4],11
Lo que deberán hacer es cambiar ese 11 (o el número que ustedes tengan) por 79 para cargar 121 items, si necesitan agregar más items cambienlo por uno mayor, como por ejemplo A0 para cargar 160 items (No pongan valores absurdos porque seguramente les va a crashear el main.exe)
Entonces, para modificarlo hacemos dos clics izquierdos sobre la linea, cambiamos el número por el deseado y hacemos un clic en "Assemble"

Modificando el limite de items que soporta el main

5)Para guardar los cambios, hacemos un clic derecho y seleccionamos donde dice: "Copy to executable => Selection

Guardando cambios en el ollydb

6)En nuestra nueva ventana, volvemos a hacer un clic derecho => "Save File" y seleccionamos a nuestro "main.exe" (Sino quieren reemplazarlo, pónganle otro nombre)

Guardando los cambios en el archivo

7)Hasta ahi, sólo hemos liberado el limite de items que corresponde a las Swords, debemos hacer los pasos 2), 3) 4) y 5) pero en lugar de buscar la palabra "Sword" lo haremos con las siguientes palabras:
Axe, Mace, Shield, Spear, Staff, Bow y CrossBow
Y para los Sets , debemos buscar:
HelmMale, HelmElf, HelmMaleTest y ArmorMale
Para liberar texturas, deberán realizar nuevamente los pasos 2), 3) ,4) y 5) pero buscando las siguientes palabras:
Item y Player
Liberando textos en el main del cliente mu

8)Lo que haremos ahora, será agregar items al servidor, es decir, nos iremos al punto b)
Para esto debemos abrir nuestro item(kor).txt , Item.txt o Item(new).txt dependiendo la versión de nuestro juego.
Dicho archivo generalmente se aloja en la ruta:
Muserver/data/lang/kor
Entonces, como demostración; agregaremos una Sword más a nuestro juego, para eso dentro del archivo nombrado anteriormente buscamos la posicion 0 [cero], dicha posición corresponde a la carga de las Swords.
El siguiente paso será deslizarnos hasta la última linea, la copiamos y la pegamos debajo.
Entonces, nos quedarían las dos últimas lineas de nuestro archivo, totalmente iguales.

Editando archivo item del servidor

9)Ahora lo que debemos hacer en la última linea, serán dos modificaciones:
La primera es observar el número del index o de posición del item y sumarle uno, por ejemplo en mi caso es el 35, le sumamos 1 , nos quedaría 35+1=36 , entonces en esa última linea en el campo o columna que reepresenta al index pongo 36
Y el otro cambio será el nombre del item, ya que lógicamente no podemos tener dos items con el mismo nombre, yo le pondré un nombre cualquiera como por ejemplo "Mututoriales"
Entonces, para agregar más items al servidor, repetimos los pasos 8) y 9)
Recuerden ubicar el items en la posición correcta, por ejemplo, si desean agregar un set completo, deberán ubicar el armor en la sección de las armors, los pants en las sección de los pants y asi sucesivamente.
Tambien tengan en cuenta que al copiar la linea anterior, tambien estamos copiando las características del item anterior, esto equivale a:
*Espacio que ocupa el item,
*Niveles de uso,
*Personajes que lo usan,
*etc
En el caso que lo requiera pueden modificar esas características a gusto personal, ya que lo que se hace en el tutorial al copiar la linea anterior es evitar errores de sintaxis o falta de variables porque "siempre es más fácil modificar que agregar"

Agregando item a archivo de texto del server

10)Ya estamos en condiciones de pasar al punto C), es decir, agregado de items al cliente.
Para este paso vamos a necesitar los archivos del item a agregar.
Como en el server hemos mostrado como agregar una Sword, lo mismo haremos en el cliente.
Los archivos del item a agregar se componen de un archivo con extensión .bmd y sus dependencias o texturas [.OZJ]
Este tipo de archivos son conocidos tambien como "Skins"

Ejemplo de un item en formanto bmd

11)Lo que debemos hacer ahora es renombrar el archivo.bmd, en mi caso se llama "Item a Agregar.bmd", a Sword37.bmd
¿Por qué a Sword? y ¿Por qué 37?
Debemos prestar mucha atención a esto, inicialmente debemos renombrar el archivo.bmd a Sword, porque se trata de una Sword lo que estamos agregando, si fuese un Shield, deberíamos renombrar el archivo a Shield.
Y a 37 porque si recuerdan, en el servidor agregamos el item en la posición o index 36, pero en el cliente debemos sumarle un número más, entonces 36+1=37
El archivo .OZJ lo debemos dejar con el nombre que ya tiene, no deben modificarlo ya que si lo hacen seguramente ocasione muchos errores.
Una vez modificado el nombre, copiamos los archivos y los pegamos en la carpeta carpeta "Item", dicha carpeta se encuentra en la siguiente ruta:
Tucliente/data/Item
Si lo que estan agregando es un set (esto incluye: Helm, Armor, Pant, Glove o Boot) deben agregar los archivos en la siguiente ruta
TuCliente/data/Player
Renombrado archivos para agregarlos al cliente

12)Nuestro siguiente paso, será agregar una linea al item.bmd del cliente.
Para eso podemos usar el Editor Online y abrimos nuestro archivo item_eng.bmd o item.bmd dependiendo la versión de nuestro cliente.
Dicha ruta la encontramos en "TuCliente/data/local/Eng" o "TuCliente/data/local/item.bmd"
Una vez abierto, buscamos la sección de las Swords (La sección 0) y la vamos completando de acuerdo a como tenemos configurado nuestro item(new).txt o Item(kor).txt o Item.txt (dependiendo la versión)
Terminada la edición, guardamos el archivo en la misma ruta y reemplazamos al anterior.

Editando el bmd del cliente

13)Y finalmente, llegamos al último paso: el d)
En dicho paso lo que haremos será agregar el item al editor.
En este caso, usaremos el Titan Editor para agregar la Sword ya que en otros tutoriales hemos mostrado como agregar items al MuMaker.
Como se trata de un solo item, lo haremos con la herramienta manual del editor, para eso ejecutamos el archivo llamado TitanEditorAdds.exe y seleccionamos la opción llamada "Add Items"
En nuestra nueva ventana completamos los datos de la siguiente manera:
Name= Nombre del item
Type= Categoria del item
X= Posicion X del item
y= Posicion Y del item
DW= Activa la raza para el uso de item
DK= Activa la raza para el uso de item
Elf= Activa la raza para el uso de item
MG= Activa la raza para el uso de item
DL= Activa la raza para el uso de item
SU= Activa la raza para el uso de item
RF= Activa la raza para el uso de item
Una vez completado el cuadro, hacemos un clic en SAVE

Agregando el item nuevo al editor MuMaker

14)Entonces repasemos:
Primero fixeamos el main.exe liberando items y texturas, después agregamos el item (Sword en la ejemplificaión) al servidor, luego agregamos el item al cliente y finalmente agregamos el item al editor.
Si todo está correcto, el resultado será el siguiente:

Muestra del trabajo finalizado

Y asi lo fue, efectivamente se visualiza nuestra Sword sin problemas.
Adicionales:
*Todos los main´s son diferentes, por lo que los offsets no son universales
*Recuerden trabajar con un main que no este encriptado/packeado
*Este tutorial se aplica a versiones superiores a Season 3 [1.04X] inclusive
*Para modificar el color del items puedes usar el siguiente tutorial [VER]
*En los clientes Season 6 Episodio 3, tendrán que agregar la linea del item agregado al archivo itemTooltip_eng.bmd e itemTooltip_spn.bmd segun lo requiera
*Si al ingresar al server, sólo se visualiza el nombre; posiblemente no realizaron correctamente el paso número 11)
*En la actualidad es normal encontrar main´s que ya tiene fixeado dicha limitación de items y texturas, en ese caso no neceistan realizar los primeros pasos