Superponer imagenes para el MuOnline

Nuevamente un tutorial para trabajar en photoshop, esta vez veremos algo que nos puede servir de mucho, no sólo para el muonline sino para cualquier proyecto y se trata justamente de la superposición de imágenes.
¿Qué es esto? , superponer una imagen es realizar una fusión de ambas para lograr una.



No solo podemos fusionar dos imágenes sino todas la que querramos, claro está, que cuanto mayor cantidad de imágenes querramos fusionar más complicado será, porquá las gamas de cada imagen suelen ser diferentes lo que dificulta alcanzar un estado de armonía o un fondo homogéneo.
1)Supongamos que tenemos la siguiente imagen:

Intro cargada en photoshop

2)Y por el otro lado, tenemos esta otra imagen

Imagen cargada en photoshop

3)Bien hasta ahora tenemos dos imágenes, ¿De que forma podemos superponerlas?, una forma sería así, copiamos la imagen 1 sobre la dos y vamos a "opciones de fusión"
¿Pero quedará bien?, veamos que sucede:

Fusión incorrecta de imágenes

4)Busque todas las posibles fusiones pero lo más cercano fue eso , obviamente horrible.
¿Por qué quedo asi? Porque tratamos con dos gamas totalmente diferentes, gamas claras vs gamas oscuras. Además no hay superposición estética como pudimos ver.
¿Qué vamos hacer al respecto?, vamos a limpiar la imagen de tal forma que no conservemos el fondo de ella sino que conservemos la imagen pura (Render).
Para eso abrimos la imagen número 1 con el photoshop y vamos a utilizar la herramienta llamada "varita mágica", no es la varita de Harry Potter, pero sin duda hace magia con la imágenes, esta herramienta sirve cuando queremos aislar una imagen de otra , esta "varita" funciona separando los contrastes de las imágenes, selecciona un conjunto de píxeles similares en cuanto a gamas/contraste/color lo que hace más sencillo el trabajo, la forma de usarla es: Ir haciendo "clics" teniendo presionada la tecla "Shiff" (este es tan solo un método para renderizar una imagen)

Uso de la herramienta varita mágica en photoshop

5)En la anterior imagen está marcado con verde como queda la pre-seleccion, yo lo que haré seré acercarme al RageFighter para poder "limpiar" esa imagen de tal forma que pueda conversar el render
Una vez que tenemos marcado todo el contorno, apretamos la tecla "Suprimir" (Esto lo que hará sera borrar lo marcado que en definitiva es lo que no nos sirve)

Render finalizado

6)Con ayuda de la "varita" y retocando un poco la imagen con el borrado me quedó así , ésta imagen es sumamente valiosa, si observan su contorno verán una especie de cuadriculado , eso nos indica que la imagen NO tiene fondo y si la guardamos justamente en un formato .png lo podremos apreciar, ideal para superponer a cualquier imagen que tengamos.

Visualizando imagen

7)Ahora veamos que podemos hacer con una imagen "Limpia" y la segunda imagen que teníamos, intentaré lograr de nuevo una fusión.

Imagen correctamente fusionada

Entonces limpiar una imagen para superponerla nos facilita mucho las cosas y la "Varita" es de gran ayuda para comenzar con esto.

Limpiar imagen en Photoshop

Muchos de ustedes por mail me preguntan si puedo "limpiar" las imágenes que usan para una intro o en una web, obviamente que cuando dispongo de tiempo lo hago, pero es algo que no es complicado de hacer si contamos con la herramienta necesaria.
Para trabajar en diseño hay que tener dos cosas , de las cuales una podemos adquirir , estas dos cosas son "creatividad" y "formas de llevar la creatividad al hecho"



La creatividad es algo que debe nacer de ustedes mismos, no puedo condicionarla yo.
Ahora la forma de llevar esto a la práctica, es algo que podemos aprender acá con solo leer el siguiente tutorial:
Hoy vamos a trabajar en lo que es la "limpieza" de una imagen, la limpieza se dice cuando la imagen viene "escrita" y necesitamos borrar eso para adaptarla a nuestro servidor (Cuidado, esto aveces es quitarle los créditos a su diseñador).

1)Supongamos que tenemos la siguiente imagen:

Intro cargada en photoshop

2)Ahora lo que queremos borrar será eso que dice "Mu Online Season 4.5", lo que haremos será iniciar el photoshop en mi caso cs3 versión extendida y vamos a utilizar una herramienta muy particular , se llama "Tampón de clonar", esta herramienta es sencillamente fantástica, lo que hace es clona un fragmento de píxeles y lo pega en el siguiente, obviamente podemos darle el tamaño, forma y muchas cosas más.
Esta herramienta la encontramos aquí.

Herramienta tampón de clonar

3)Bien una vez seleccionada la herramienta , debemos precionar la tecla ALT y verán que el puntero cambiar , nos aparecera un circulo con una cruz, esa cruz nos servirá para poder marcar que parte vamos a clonar

Seleccionando capa a clonar

4)Ahora lo que haremos será , primero utilizar un pincel fino, apretar ALT hacer un clic izquierdo y luego soltamos el ALT y hacemos clic izquierdo sobre la parte que queremos limpiar
Para tener más control de esto, recomendaria apretar ALT + Scroll del mouse para acercar la pantalla, bueno yo borre la ultima E y me quedó algo así:

Clonando textura

5)Claro está que la imagen vista desde aca pierde toda la calidad porque yo modificó el formato, pero se puede ver claramente que la letra fue borrada sin perder el sentido de la imagen, en caso que nos quede "escalonado" (porque es algo que puede suceder) , deberán de usar la herramienta llamada "dedo" y "homogeneizar" esos "pixeles" escalonados para que nos quede asi:

Trabajo finalizado

6)En la anterior imagen se podrá ver bien con detalles, ya que está con mayor calidad.
A continuación dejaré la imagen modificada para ver como queda respecto a la original

Verificando cambios comparando la imagen original con la editada

El procedimiento deberá ser repetido con todas las letras o con lo que quieran borrar, hay muchos métodos más para limpiar una imagen, pero por ser uno de los más prácticos y sencillo hoy utilizé este.
Una consejo, talvez la imagen no quede limpia y prolija, entonces lo que deberían hacer será volver a escribir sobre lo escrito, eso hará que no quede rastros de la escritura anterior.

Editar textos Season 6

Editar los textos de un cliente Season 6 no es más que repetir lo que hicimos con el cliente Season 5 y para eso podemos Leer Aqui



1)Sin entrar en mucho detalle, porque ya está explicado en el anterior tutorial vamos directamente a pegar nuestro text.bmd en la siguiente ruta
C:\xampp\htdocs\archivos\bmd
En mi caso la ruta es totalmente directa al xampp, eso quiere decir que no tengo página web ni nada instalado en mi xampp, seguramente ustedes tengan alguna web asique deben crear una carpeta. Por defecto ya viene una carpeta llamda "prueba" dentro del .rar del editor, entonces su ruta sería
C:\xampp\htdocs\prueba\archivos\bmd
Archivo text bmd

2)Pero ¿De donde saqué yo ese archivo text.bmd? , en realidad lo que me llevo a realizar este tutorial fue un cliente que tenía algo que me llamó la atención y es una "Seleccion de lenguaje", revisando el main.exe me encontre un hook (un enganche) hacia una .dll ENCClient.dll, analizando un poco la .dll entendi de donde provenía esta selección de lenguaje, justamente esta . dll es la que permite una "pre seleccion" del lenguaje del cliente.

Ingreso al juego

Entre los lenguajes encontre: Español, Ingles, Portugues, Koreano, etc..
Entonces el archivo text.bmd ya no lo encontramos más en
Cliente/data/local/text.bmd
(Me refiero a los clientes Season 6 con la adaptacion realizada por ENC TEAM) sino que ahora tenemos una ruta más,
Cliente/data/local/[LENGUAJE]/text.bmd en donde [LENGUAJE]
son varias carpetas dependiendo el idioma (SPA [spanish], ENG [English],etc)

Carpeta de idiomas

3)Ahora viene un problema, y no tan problema, el problema es que tendríamos que editar los text.bmd de todas las carpetas, pero el no problema es que nose si tendrá mucho sentido ya que creo que no tendremoso muchos jugadores provenientes de Korea o de Vietnan , en tal caso el primer text.bmd que deberias editar sería el de la carpeta SPA [Spanish=>Español] y el segundo el de la carpeta ENG [English=> Ingles] ya que el Ingles es por defecto el idioma mundial.
Entonces comenzemos por buscar el archivo text.bmd de la carpeta "SPA" lo copiamos y lo pegamos en nuestro editor, sino tenes ganas de leer el tutorial que deje anteriormente simplemente ingresa a
C:\xampp\htdocs\archivos\bmd
y allí pegamos el archivo "Text.bmd"

Selección de archivo text bmd

4)Ahora ingresamos a nuestro explorador y ponemos en nuestra bara de navegación lo siguiente 127.0.0.1 (Si tenes una web y usaste la carpeta por defecto deberias poner 127.0.0.1/prueba) y luego un click en "Entrar"

Ingreso al magic hand

5)Ahora debemos seleccionar "Archivos BMD"

Selección de archivos bmd

6)Al hacer click en "Archivos BMD", automáticamente se despliega una lista de todos los archivos con extención .bmd disponibles para modificar.
Nosotros buscaremos el unico que cargamos, es decir, el text.bmd (Justo es el último) hacemos click sobre el archivo, y a su derecha deberán hacer click en donde dice Editar Archivo Text.bmd

Editando archivo text

7)En nuestra nueva pantalla, debemos seleccionar el archivo a editar, que en nuestro caso sera el text.bmd por lo tanto hacemos un click sobre el

Archivo text bmd

8)Acá será cuestión de buscar lo que deseamos editar, por ejemplo en la linea 454 aparece en este cliente la leyenda que encontramos al entrar al server como copyright.
Este editor tiene muchas funciones, como por ejemplo buscar la palabra que deseamos cambiar, por ejemplo aca escribimos el nombre del server que tiene puesto para cambiarlo

Lectura del archivo bmd

9)Una vez editado el archivo, hacemos un click en "Salvar Text.bmd" y ponemos el nombre al archivo, por ejemplo "traducido" , al guardarse este archivo querada asi:
texttraducido.bmd

Guardando los cambios en el archivo text editado

10)Finalmente saldrá una leyenda que dice "El archivo ah sido salvado con exito", ahora simplemente lo que debemos hacer es buscar el archivo dentro de la carpeta .bmd
C:\xampp\htdocs\archivos\bmd
y pegarlo en nuestro escritorio para volver a renombrarlo con su nombre original de "Texttraducido.bmd" a "Text.bmd" (logicamente no podemos renombrar el archivo ahi mismo porque no podemos tener dos archivos en una misma carpeta)

Archivo salvado

11)Último paso será pegar el archivo editado recientemente (El que renombramos a text.bmd) en nuestro cliente (En el mismo lugar que de donde lo sacamos al principio del tutorial), ahora debemos testiar (probrar) si los cambios tuvieron efecto o si nos olvidamos alguna linea de editar. Yo hice un sólo cambio , la leyenda del copyright que aparece abajo al ingresar al cliente , asique veré si efectivamente resultó el cambio realizado previamente.

Verificando los cambios en el archivo modificado

No hace falta aclarar que luego de renombrar el archivo a text.bmd debemos pegarlo dentro da la carpeta "SPA" , y que sólo funcionará con la selección de lenguaje "Español" si queremos todo nuestro text.bmd traducido con nuestros nombres de nuestro server debemos editar todos los text.bmd de cada idioma y de cada carpeta.

Configuracion SCF_SOCKETOPTIONS

Otro de los archivos que que podemos encontrar en la carpeta SCFData es el llamado SCF_SocketOptions, este archivo configura las opciones Sockets que puede tener cada items, a este archivo lo podemos encontrar en
C:\Muserver\SCFData\SCF_SocketOptions.ini
o dependiendo la ruta inicial en donde decidimos instalar el servidor podemos encontrar este archivo en la siguiente ruta:
D:\Muserver\SCFData\SCF_SocketOptions.ini
al abrirlo veremos algo simimar a lo siguiente:

Archivo socketoptions

1)A continuacion la explicacion de cada linea:
[Fire]
SCF_IncreaseSkillAttackPower=20 //Poder de ataque que aumenta la Seed of Fire
SCF_IncreaseAttackSpeed=7 //Velocidad de ataque que aumenta la Seed of Fire
SCF_IncreaseMaximumDamage_SkillPower=30 //Daño máximo de ataque que aumenta la Seed of Fire
SCF_IncreaseMinimumDamage_SkillPower=20 //Daño mínimo de ataque que aumenta la Seed of Fire
SCF_IncreaseDamage_SkillPower=20 //Daño de skill que aumenta la Seed of Fire
SCF_DecreaseAGuse=40 //Disminución del uso de AG que disminuye la Seed of Fire
[Water]
SCF_IncreaseDefenseSuccessRate_Percent=10 //Incremento del porcentaje de defensa que aumenta la Seed of Water
SCF_IncreaseDefense=30 //Incremento de defensa que aumenta la Seed of Water
SCF_IncreaseDefenseShield_Percent=7 //Incremento de defensa para los escudos que aumenta la Seed of Water
SCF_DamageReduction=4 //Reducción de daño que blokea la Seed of Water
SCF_DamageReflections=5 //Daño que refleja la Seed of Water
[Ice]
SCF_MonsterDieGetLife=8 //Cantidad de vida que roba la Seed of Ice a un monstruo cuando este muere
SCF_MonsterDieGetMana=8 //Cantidad de mana que roba la Seed of Ice a un monstruo cuando este muere
SCF_IncreaseSkillAttackPower=37 //Daño de skill que aumenta la Seed of Ice
SCF_IncreaseAttackSuccessRate=25 //Porcentaje de exito para un atake que aumenta la Seed of Ice
SCF_IncreaseDurabilty_Percent=30 //Durabilidad extra que aporta la Seed of Ice
[Wind]
SCF_IncreaseLifeAutoRecovery=8 //Porcentaje de recuperacion de vida que aumenta la Seed of Wind
SCF_IncreaseMaximumLife_Percent=4 //Porcentaje que aumenta la Seed of Wind al maximo de vida
SCF_IncreaseMaximumMana_Percent=4 //Porcentaje que aumenta la Seed of Wind al maximo de mana
SCF_IncreaseManaAutoRecovery=7 //Porcentaje de recuperación de mana que aumenta la Seed of Wind
SCF_IncreaseMaximumAG=25 //Porcentaje que aumenta la Seed of Wind al maximo de AG
SCF_IncreaseAGAmount=3 //Porcentaje que aumenta la Seed of Wind de AG
[Lightning]
SCF_IncreaseExcellentDamage=15 //Porcentaje que aumenta la Seed of Lightning de aumento del daño exelente
SCF_IncreaseExcellentDamageSuccessRate=10 //Porcentaje que aumenta la Seed of Lightning de exito de daño exelente
SCF_IncreaseCriticalDamage=30 //Porcentaje que aumenta la Seed of Lightning de aumento del daño critico
SCF_IncreaseCriticalDamageSuccessRate=8 //Porcentaje que aumenta la Seed of Lightning de exito de daño critico
[Earth]
SCF_IncreaseStamina=30 //Incremento de Stamina que aumenta la Seed of Earth
[Bonus]
SCF_IncreaseDamage=11 //Bonus de daño que proporcionan los items Sockets

Configuracion SCF_TRADEMIX

Continuando con la edición de archivos de la carpeta SCFData es el turno de uno muy particular que aparece por primera vez en la versión Season 5, este archivo lo encontramos en
C:\Muserver\SCFData\SCF_TradeMix.txt
o dependiendo la ruta inicial en donde decidimos instalar el servidor podemos encontrar este archivo en la siguiente ruta:
D:\Muserver\SCFData\SCF_TradeMix.txt
¿Cómo funciona el trademix? Este archivo es "similar a la maquina del chaos" digo similar porque no es igual, el TradeMix crea items a partir de una serie de items que nosotros podemos definir.
¿Cómo los crea? Debemos ir al NPC nº478 (podemos buscar las coordenadas de aparicion en el monstersetbase.txt) y hablar con el , este nos abrirá un cuadro de diálogo en donde debemos poner los items que vamos a indicar a continuación más una cantidad de zen que tambien podemos definirla en este archivo.



Mediante un porcentaje que nosotros podremos asignar a el "trade" será o no completado con la creacion del items que definiremos en este archivo, este item es entregado en forma de trade, por eso se llama TradeMix, asique antes de realizar esto debemos tener espacio en nuestro inventario.
1)Al abrir este archivo nos encontraremos algo similar a esto:



2)Bien nuevamente retomo los numeros iniciales 0,1,2 que identifican a cada bloque en forma de secuencia, en otros tutoriales lo expliqué con más detalles pero lo volvere a remarcar. En la siguiente imagén marcaré cada uno de ellos



3)Bien comenzemos con el bloque número 1. Veamos que se define acá:
//Mix Data (Recetas)
//MixIndex: Numero de la receta
//TradeMix Name: Nombre de la nueva receta
//Success Base: Porcentaje base de exito de esta receta
//Zen: Costo de la receta (Precio en Zen)
  • Mix data: identifica la receta (no tiene importancia alguna)

  • MixIndex: identifica al número de la receta, este número lo tendremos que usar en el bloque número 2 y número 3

  • TradeMix Name: es el nombre de la receta, no sólo nos sirve para identificarlo dentro del server, sino que al realizar dicha receta la veremos reflejada en el cliente con el nombre que pongamos

  • Success Base: será el porcentaje de éxito que tendrá dicha creación

  • Zen: costo que tendrá la receta

  • Entonces supongamos que queremos hacer una receta para el trademix que a partir de una "rena" nos devuelva una "jewel of bless"
    Entonces comenzemos configurando el bloque número 1 que ya lo vimos:
    MixIndex: 0 (Mi número de receta)
    TradeMix Name: Trade mix bles (Nombre de mi receta)
    Success Base: 100 (Mi porcentaje de éxito)
    Zen: 4000000 (El zen que quiero pedir para realizar el mix)
    Entonces me quedaria asi:



    Importante: las "" (comillas) que encierran el nombre de la receta no están para decorar , es importante que siempre que modifiquemos un archivo mantengamos las estructuras.
    Importante 2: El end que cierra el codigo jamás debe ser borrado, ya que causaría un error del archivo porque entrarían en un bucle sin cierre.

    4)En el bloque número 2 se definen los items que vamos a necesitar para crear el mix, veamos que función cumple cada linea
    //Need Items (Items Necesarios)
    //MixIndex: Número de la receta
    //Type: Tipo del Item, 0 Sword, 1 Axes, etc
    //Index: Número del Item a usar
    //MinLevel: Nivel mínimo que debe tener el item entregado para ser aceptado como válido
    //MinOpt: Nivel de Opciones, mínimo que debe tener el ítem para ser aceptado como válido (0=+4;1=+8;etc)
    //NeedLuck: Establece si el ítem entregado debe, o no, tener Luck para ser aceptado como valido (1=Si;0=No)
    //NeedSkill: Establece si el item entregado debe, o no, tener Skill para ser aceptado como válido (1=Si;0=No)
    //NeedExc: Establece si el item entregado debe, o no, tener Opciones Exelentes para ser aceptado como válido (1=Si;0=No)
    //NeedDurability: Establece si el item entregado debe, o no, tener un mínimo de durabilidad establecido para ser aceptado como válido (1=Si;0=No)
    No creo que haga falta aclarar porque esta bastante explicado eso , aca definimos el item que necesitamos poner en nuestro "trade" para crear el items, en mi caso era una rena , si llevamos la rena a su codificacion númerica será un 14 21, para saber leer los items a partir de sus códigos deben leer el siguiente tutorial LEER AQUI>
    Sólo por hoy dejaré un ejemplo o mejor dicho explicaré porque mi item (rena) es 14 21. Para esto abrí el item(New).txt de mi server y busqué el type (14) y el Index (21)
    Para comprender mejor miren la siguiente imagen:



    Entonces mi archivo editado para que pida una rena quedaría asi:



    IMPORTANTE: Yo marqué allí un 0 con color rojo, ese 0 es el que identifica a esa receta , si recuerdan en el bloque 1 dije que recuerden ese número porque es importante si queremos hacer otras recetas, es decir en este archivo podemos armar varias configuraciones para el mix, ahora sólo estamos haciendo una , que es a partir de una rena obtener una Jewel of Bless pero tambien podemos agregar otra que a partir de un "chaos" nos devuelva una "sword" o lo que quieran ustedes.
    5)Último bloque, aca debemos agregar el items que devolverá el mix en caso que sea exitoso, las lineas son las siguientes:
    //MixIndex: Número de la receta
    //Type: Tipo del Item, 0 Sword, 1 Axes, etc
    //Index: Número del Item a usar
    //Level: Nivel del Item devuelto en la combinación (0 a 13)
    //Opt: Nivel de opciones del Item devuelto en la combinación (0=+4;1=+8;etc)
    //Luck: Define si el Item devuelto tendrá, o no, Luck (1=Si;0=No)
    //Skill: Define si el Item devuelto tendrá, o no, Skill (1=Si;0=No)
    //Exc: Define si el Item devuelto tendrá, o no, opciones exelentes y cuales serán
    //Durability: Define la durabilidad del Item devuelto en la combinación (0=Máxima durabilidad que soporte el Item)
    Nuevamente lo mismo, no hace falta explicar más, está bien detallado, sólo tomaré el que dice MixIndex: Número de la receta que sin ver la imagen siguiente , sabemos que debemos poner un 0 , porque como dije anteriomente ese 0 es el que define el número de la receta.
    El archivo editado quedaria así:



    No está demás decir que 14 13 es el código de la "Jewel of Bless" y nuevamente el código lo podemos visualizar en nuestro item(new).txt
    Con eso daría por finalizado el tutorial, pero supongamos que queremos poner otro mix distinto, me refiero a agregar otro más al que ya hicimos.
    El procedimiento es exactamente el mismo, lo único que vamos a cambiar será el número de la receta es decir 0 por 1, otro detalle es que apartir de un mix puede devolver varios items "CUIDADO": no es que nos dará varios items, sino que nosotros podremos definir una serie de items diversos que podrá devolver pero sólo nos devolverá uno de ellos, es decir, es como una kundun+5 , cuando arrojamos una kundon+5 al piso arroja solo UN item pero hay una variación, aca podemos hacer lo mismo veamos como hacerlo:
    6)Bueno primero cambio el número de la receta, ya no será más 0 sino que ahora será 1
    le pongo mi nombre "trade mix kriss" y el zen 2000000
    Nos tendría que quedar algo así:



    7)Paso al bloque 2, aca voy a poner que como requisito para crear mi "kris" sea necesario poner varios items, es decir , que no sea sólo un item sino varios , entre ellos un "chaos" , una "Healing Potion" y una "Wings of Elf +13" (tambien podemos poner que los items que pidamos reunan ciertas condiciones como por ejemplo que sea +13) entonces mi archivo editado quedaría así:



    8)Ponemos el o los items que queremos que nos devuelva en caso de éxito, en mi caso una "kris"
    El archivo editado quedaría así:


    Como dije antes, también podemos poner que devuelva más items con esa receta.
    Entonces,en modo de cierre diríamos que:
  • El TraMix nos permite crear items, ¿Como los crea? a partir de otros items que nosotros definimos.

  • El TradeMix tiene 3 bloques configurables, el primero la identificación de la receta que fue 0 para me devuelva un Jewel of Bless a partir de una rena sin olvidar que debemos poner los 4000000 y TENER ESPACIO EN EL INVENTARIO, PORQUE ESTO ES UN TRADE, EL ITEM APARECE EN EL INVENTARIO, SINO TENES ESPACIO FRACASA EL TRADE

  • La segunda identificación fue un 1 , que apartir NO de uno sino de tres items me devuelva un kriss

  • Será cuestión de realizar nuestras propias recetas, si tengo tiempo les haré varias recetas diversas para que puedan ponerlas en sus servidores.