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
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"
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
4)Lo que haremos ahora, será subir un poco y buscar lo siguiente:
CMP DWORD PTR SS:[EBP-4],79Ese 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],11Lo 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"
5)Para guardar los cambios, hacemos un clic derecho y seleccionamos donde dice: "Copy to executable => Selection
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)
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 CrossBowY para los Sets , debemos buscar:
HelmMale, HelmElf, HelmMaleTest y ArmorMalePara liberar texturas, deberán realizar nuevamente los pasos 2), 3) ,4) y 5) pero buscando las siguientes palabras:
Item y Player
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/korEntonces, 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.
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"
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"
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/ItemSi 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
12)Nuestro siguiente paso, será agregar una linea al item.bmd del cliente.
Para eso podemos usar el Editor Online 2.1 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.
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 itemUna vez completado el cuadro, hacemos un clic en SAVE
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
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:
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