101Level - Foro

[Guía] Creación de un cliente profesional [2012-04-10]

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado Leeg

  • *
  • *
  • 3.322
  • 59
  • Actividad:
    0%
  • Sexo: Masculino
[Guía] Creación de un cliente profesional [2012-04-10]
« en: 12 de Enero de 2013, 15:46 »
¡GUÍA OBSOLETA!
<ACTUALIZADA CLIC AQUÍ>

[Guía] Creación de un cliente profesional
[2012-04-10]

Autor: Leeg

Esta guía forma parte de Cómo crear un servidor profesional .


¿Cuál es el objetivo de esta guía?

Con esta guía aprenderemos a crear un cliente para nuestro servidor. Así como compatibilizar el servidor para su correcto funcionamiento. Además, se explicarán algunos detalles extra, como la edición hexadecimal del cliente para traducir texto 'hardcodeado' o eliminar elementos del cliente que no funcionan.


Programas necesarios

Todos los programas son gratuitos y legales. En el caso de haber dos opciones solamente es necesario descargar una de ellas en función del ordenador con el que estemos trabajando o el sistema operativo que utilice.




1.- Obteniendo los archivos necesarios

Lo primero que tenemos que hacer es instalar el Ragnarök Online Coreano (kRO) en nuestro ordenador. Lo puedes descargar del enlace que hay al principio de este mensaje. El archivo es un winrar autoextraíble (exe), tan solo hay que hacer doble clic sobre el mismo y elegir el directorio donde queremos instalarlo. Cuando se haya acabado de instalar, debemos ejecutar los actualizadores: 'rsu-kro-rag-lite.exe' y 'rsu-kro-renewal-lite.exe'. Con esto nos aseguraremos de que nuestro Ragnarök Online Coreano esté completamente actualizado. Cuando termine la actualización veremos el siguiente mensaje 'Patch process complete.' Entonces hacemos clic en 'Close'.

También tenemos que descargar los archivos de la carpeta 'data' en inglés, para traducir nuestro futuro cliente. Para ello descargamos 'Data Folder Inglés' haciendo clic en la imagen en la parte superior de este mensaje. Este archivo ha sido subido por el usuario Judas (supportmii.com) a la comunidad rAthena. Es un archivo .rar estructurado de la siguiente manera:

- Carpeta System
- Carpeta data
- Carpeta AI_sakray
- Carpeta AI
- Setup.exe (inglés)

Debemos mover todos estos archivos a la carpeta raíz donde hemos instalado Ragnarök Online Coreano. Si Windows nos pregunta si deseamos remplazar alguno de estos archivos, confirmamos la operación.

NOTA: Dentro de la carpeta 'data', podemos omitir la copia de 'sprite' y 'palette'. Estas dos carpetas pesan mucho y pueden no interesarnos. Contienen paletas custom para peinados y ropas. Puedes verlas aquí

Ahora vamos a descargar los archivos 'lub' para nuestro cliente. Podemos descargarlos desde el enlace que podéis ver en el inicio de este mensaje. Este archivo ha sido subido por el usuario Judas (supportmii.com) a la comunidad rAthena. Esta descarga contiene un archivo comprimido con una carpeta llamada 'data', y otra dentro llamada 'luafiles514'. Esta última carpeta tenemos que copiarla dentro de la carpeta 'data' de nuestra instalación de Ragnarök Online Coreano.

2.- Descargar y diffear nuestro propio cliente

Lo primero que tenemos que hacer es descargar 'Weetols Diff' y 'Cliente 2012-04-10'. Descomprimimos el archivo que contiene el Wee Tools, y lo abrimos. Dentro encontraremos un ejecutable llamado 'Shin's Diff Patcher.exe'. Lo abrimos haaciendo doble clic. Nos encontraremos con una pantalla como esta:



Primero debemos hacer clic donde pone 'Select Patch Engine: Plain Diff Plugin v.1.0', y seleccionar la otra opción disponible 'WeeDiffGenerator v.1.0.2'. Después, debemos hacer clic en 'Source Executable: Select', aquí tenemos que buscar el 'Cliente 2012-04-10' que hemos descargado antes. Cuando lo abramos se nos preguntará si queremos aplicar por defecto los parches recomendados, le damos a la opción 'Sí'. Lo siguiente que se nos preguntará es el número de 'HeadgearView ID' para nuestro cliente, '5000' es una buena cifra. Después tendremos que poner el nombre que aparecerá en la ventana del cliente cuando lo ejecutemos, pondremos el nombre de nuestro servidor. La siguiente ventana que se abrirá nos preguntará por el máximo de líneas iguales que se permiten en el chat del juego. Para evitar usuarios molestos es recomendable poner 3. Ahora ya tenemos acceso a la ventana de configuración donde podemos elegir que parches activar o desactivar antes de aplicarlos.



Lo primero que tenemos que hacer ahora es buscar los siguientes diff y desactivarlos:

Name : Read Data Folder First
Description : Attempts to read files inside the data folder prior to those in grf archives.


Es muy importante hacer esto, de lo contrario el 'setup.exe' no guardará bien nuestra configuración, y además no podremos alterar la resolución de juego.

Para finalizar, miramos la ruta que hay en 'Source Executable' para asegurarnos de saber donde se va a guardar nuestro cliente, y tras esto, hacemos clic en 'Patch it!'. Esto generará nuestro cliente, debemos pegarlo en la carpeta raíz donde hemos instalado 'Ragnarök Online Coreano'.


3.- Compatibilizar el emulador y el cliente

El siguiente paso es muy sencillo, tenemos que dirigirnos en la carpeta de nuestro emulador a 'src\common\mmo.h'. Y buscar una cosa parecida a esto:

Código: C
  1. #ifndef PACKETVER
  2.         #define PACKETVER 20120410
  3.         //#define PACKETVER 20111116
  4. #endif

Lo que tenemos que hacer con este trozo de código es asegurarnos de que la fecha '20120410' aparece en el primer '#define'. Si no es así, la añadimos para que quede como en este ejemplo. Tras esto, tendremos que recompilar nuestro emulador. Si no recuerdas cómo se hace esto, consulta la guía anterior.

Ahora vamos a dirigirnos a la carpeta donde hemos instalado 'Ragnarök Online Coreano', en ella buscamos la carpeta 'data', y dentro de esta 'clientinfo.xml'. Abrimos este archivo con un editor de texto.

Debería de tener un aspecto parecido a este:

Código: XML
  1. <?xml version="1.0" encoding="euc-kr" ?>
  2. <clientinfo>
  3. <servicetype>korea</servicetype>
  4. <servertype>sakray</servertype>
  5.    <connection>
  6.       <display>Ragnarok</display>
  7.       <balloon>the balloon</balloon>
  8.       <desc>description</desc>
  9.       <address>127.0.0.1</address>
  10.       <port>6900</port>
  11.       <version>26</version>
  12.       <langtype>1</langtype>
  13.       <registrationweb>flux.domain.com</registrationweb>
  14.         <aid>
  15.             <admin>2000000</admin>
  16.                         <admin>2000001</admin>
  17.                         <admin>2000002</admin>
  18.         </aid>
  19.         <loading>
  20.             <image>loadingscreen01.jpg</image>
  21.         </loading>
  22.    </connection>
  23. </clientinfo>

Esto es todo lo que podemos editar en 'clientinfo.xml':
Lo que está marcado con un asterisco rojo hay que editarlo obligatoriamente para que funcione el cliente.

Display es el nombre de nuestro servidor. Aparecerá al conectarnos.
Balloon es el texto flotante que aparece al pasar el ratón por encima del nombre de nuestro servidor.
Desc es una pequeña descripción de nuestro servidor.
Address es la dirección a la que se conecta nuestro cliente, de momento dejamos 127.0.0.1, que es localhost.
Port es el puerto que utiliza el cliente para conectarse, no deberíamos cambiarlo.
* Version es la versión de paquetes que utiliza el cliente, debemos cambiarla a '30'.
* Langtype es la configuración del lenguaje de nuestro cliente, debemos cambiarlo a '10'.
Registrationweb es la página web a la que redirige el botón de 'Register' en nuestro cliente.
Admin es o son las ID de aquellas cuentas cuyos personajes tendrán ropa de GM.
Image es el nombre de la loading screen. El nombre debe ser 'loadingscreenXX.jpg'. Podemos añadir hasta 7, para ello tenemos que añadir más '<image></image>' debajo.


4.- Creación de un archivo GRF

Como hemos desactivado el diff 'Read Data Folder First' al crear nuestro cliente, ahora tenemos que comprimir toda la carpeta 'data' en un GRF para que lo lea nuestro cliente. Para ello utilizaremos el programa 'GRF Builder' que podemos encontrar al principio de este mensaje. Abrimos 'grfbuilder.exe' con doble clic, y hacemos clic en 'New'. Esto nos abrirá una ventana de diálogo preguntándonos dónde y qué nombre queremos darle a nuestro archivo 'GRF'. Debemos guardar el archivo en la carpeta raíz donde hemos instalado 'Ragnarök Online Coreano', y de nombre podemos ponerle lo que queramos, nosotros usaremos 'custom.grf'. Ahora tenemos nuestro 'GRF' creado, pero está vacio. Para llenarlo hacemos clic en 'Fusionar Directorio', buscamos nuestra carpeta 'data' en la raíz donde hemos instalado 'Ragnarök Online Coreano' y le damos a 'Aceptar'. Esto añadirá toda nuestra 'data' al 'GRF'. Cuando acabe, hacemos clic en 'Repack', y cuando acabe esta operación, clic en 'Cerrarse'. Y podemos cerrar 'GRF Builder'.



Por último, para que nuestro cliente lea este 'GRF' tenemos que buscar un archivo llamado 'DATA.INI' en la carpeta donde hemos instalado 'Ragnarök Online Coreano'.

Debería contener esto:

Código: C
  1. [Data]
  2. 0=rdata.grf
  3. 1=data.grf

Nosotros lo dejaremos así:

Código: C
  1. [Data]
  2. 0=custom.grf
  3. 1=rdata.grf
  4. 2=data.grf


5.- Últimos retoques al cliente: hexadecimal

(Ya no es necesario hacer esto, si habéis utilizado el diff Translate Client Into English - Translates hardcoded text inside the client into english.)

Esta información fue publicada por el usuario 'nanakiwurtz ' en rAthena.

¡Aviso para navegantes!
La siguiente sección tiene un carácter optativo, no es necesario seguir estos procedimientos para que nuestro cliente funcione.

El cliente que acabamos de crear debería ser ya funcional. Sin embargo, algunas partes del mismo contienen texto en coreano ASCII que no se verá bien en nuestro cliente. Podemos arreglarlo editando el archivo ejecutable de nuestro cliente con un editor hexadecimal, como por ejemplo HxD, que se puede descargar con un enlace situado en la parte superior de este mensaje.


Descargamos 'HxD' e instalamos el programa. Cuando lo tengamos, lo abrimos, y hacemos clic en 'Archivo' y después 'Abrir'. En la ventana de diálogo que se nos abre buscamos nuestro cliente, en la carpeta raíz de instalación de 'Ragnarök Online Coreano' y le damos a aceptar.




Lo primero que queremos hacer es traducir un mensaje hardcodeado que aparece en la ventana de creación de personajes.



Para ello buscamos (CTRL+F) lo siguiente: Äɸ¯ÅÍ ¸¸µé±â
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero del ratón al principio de este segmento y escribimos Create Player de manera que reemplace el texto que había en ASCII antes.

NOTA: Pulsar la tecla RETROCEDER o SUPRIMIR en un archivo ejecutable abierto con un editor hexadecimal supone romper su funcionamiento. JAMÁS pulsaremos estas dos teclas, siempre escribiremos por ENCIMA de lo que ya hay.

Si lo hemos hecho bien debería de haber quedado así:




Lo siguiente que vamos a hacer es eliminar los botones 'Booking' y 'Battle' de la interfaz de nuestro cliente, puesto que estos botones abren el menú del buscador de grupos y battlegrounds, pero todavía no están programados en rAthena.



Para ello buscamos (CTRL+F) lo siguiente: btn_battle_field
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero del ratón al principio de este segmento pero del lado de edición hexadecimal, es decir, en la parte izquierda del programa, donde están los números y escribimos 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00.

Después buscamos (CTRL+F) lo siguiente: booking
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero del ratón al principio de este segmento pero del lado de edición hexadecimal, es decir, en la parte izquierda del programa, donde están los números y escribimos 00 00 00 00 00 00 00.

Si lo hemos hecho bien debería de haber quedado así:




Ahora vamos a editar un elemento que falta por traducir en la ventana de opciones:



Para modificar esto  buscamos (CTRL+F) lo siguiente: 4E6F4374726C00006974656D00000000736B696C6C
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Valores hexadecimales')
Justo encima de esta cadena veremos un ˟ˌ situamos el puntero delante y lo reemplazamos por Show

Si lo hemos hecho bien debería de haber quedado así:




Tras esto, vamos a editar una palabra que no está traducida en el mapa global de nuestro cliente:



Para modificar esto  buscamos (CTRL+F) lo siguiente: 496E666F5F552E6C75610000
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Valores hexadecimales')
Justo después de esta cadena veremos A1 DA (¡Ú) situamos el puntero delante de esto y lo reemplazamos por You

Si lo hemos hecho bien debería de haber quedado así:




Por último, vamos a traducir los mensajes que faltan en el sistema de 'Navigation'.
Lo primero que vamos a traducir es esto:



Para modificar esto  buscamos (CTRL+F) lo siguiente: °Ë»ö ´Ü¾î ¼³Á¤ (Ex: ´Ü¾î ´Ü¾î ...
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero delante, y lo reemplazamos por Type anything here (Ex: Prontera)

Si lo hemos hecho bien debería de haber quedado así:




Otro elemento que tenemos que traducir es el siguiente:



Para modificar esto  buscamos (CTRL+F) lo siguiente: B1E620C1A4BAB800B8F1C7A5B7CE20BEC8B3BB
Justo al lado veremos esto: °Ë»ö
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Valores hexadecimales')
Situamos el puntero delante, y lo reemplazamos por Find

Si lo hemos hecho bien debería de haber quedado así:




Otro elemento más a traducir en esta ventana es el siguiente:



Para modificar esto  buscamos (CTRL+F) lo siguiente: B1E620C1A4BAB800B8F1C7A5B7CE20BEC8B3BB
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Valores hexadecimales')
Situamos el puntero delante, y lo reemplazamos por Back to Navigation  (con un espacio al final)

Si lo hemos hecho bien debería de haber quedado así:




Al hacer clic en el botón que acabamos de traducir, este se convierte en otro botón nuevo, con más texto a traducir:



Para modificar esto  buscamos (CTRL+F) lo siguiente: °Ë»ö Á¤º¸
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero delante, y lo reemplazamos por View List

Si lo hemos hecho bien debería de haber quedado así:




Otro elemento a reemplazar en esta ventana es el siguiente:



Para modificar esto  buscamos (CTRL+F) lo siguiente: º¸±â ¸ðµå º¯°æ
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero delante, y lo reemplazamos por Toggle Minimap

Si lo hemos hecho bien debería de haber quedado así:




Todavía hay más elementos para traducir en esta ventana, por ejemplo, si realizamos una búsqueda, y después cerramos la ventana nos aparecerá esto:



Para modificar esto buscamos (CTRL+F) lo siguiente: ¾È³»Áß ÀÔ´Ï´Ù! Á¾·á ÇϽðڽÀ´Ï±î?
(nos aseguramos que en la ventana de búsqueda, el 'Tipo de Datos' sea 'Cadena de texto')
Situamos el puntero delante, y lo reemplazamos por Do you want to cancel navigation?

Si lo hemos hecho bien debería de haber quedado así:




Todavía quedan más elementos por traducir, pero no se conoce muy bien cuál es el texto que debería de poner. Se actualizará este mensaje cuando se disponga de más información.
« última modificación: 06 de Diciembre de 2015, 23:51 por Leeg »
~Persona3~


 

[Guía] Creación de un cliente profesional [2015-05-13]

Iniciado por Leeg

Respuestas: 0
Vistas: 12928
Último mensaje 06 de Diciembre de 2015, 23:46
por Leeg
[Guía] Crear un cliente para tu servidor

Iniciado por Leeg

Respuestas: 0
Vistas: 11287
Último mensaje 10 de Julio de 2012, 22:07
por Leeg
[Guia] Instalador Profesional Para tu Servidor

Iniciado por ManuelHenao

Respuestas: 0
Vistas: 4173
Último mensaje 05 de Enero de 2013, 08:07
por ManuelHenao