Desarrollador freelance: Ronan C. P. Lana
También hay que dar crédito a Nexon(¡Duh!), al personal original de MapleSolaxia y a otros colaboradores, ya que sólo algunos cambios/parches en el juego fueron aplicados por mí, en los que algunos de ellos divergían de los contenidos del parche original v83.
Respecto a la distribuibilidad y uso del código presentado aquí: como era antes, este servidor de MapleStory es de código abierto. Con esto se quiere decir que cualquiera es libre de instalar, usar, modificar y redistribuir los contenidos, siempre y cuando no haya ningún tipo de comercio involucrado y se mantengan los créditos a los creadores originales dentro de los códigos.
Este es un proyecto de NetBeans 8.0.2, que DEBE ser construido y ejecutado bajo JDK/JRE 7 para funcionar correctamente. Esto significa que es más fácil instalar el proyecto mediante la apertura de la carpeta del proyecto del servidor dentro del IDE de NetBeans. Una vez instalado, construya este proyecto en su máquina y ejecute el servidor utilizando la aplicación «launch.bat».
En este proyecto, muchos de los problemas relacionados con la jugabilidad generados a partir de los archivos WZ originales y las fuentes del servidor se han resuelto parcial o totalmente. Considerar el uso de los WZ’s editados proporcionados y los archivos wz.xml del lado del servidor debe ser de la mayor importancia cuando se trata de esta instancia de servidor privado, con el fin de percibirlo en todo su potencial. ¡Mi opinión, sin embargo! Consulte «README_wzchanges.txt» para obtener más información sobre lo que se ha cambiado de los archivos WZ v83 de Nexon.
El objetivo principal de este proyecto es tratar de recrear lo mejor posible lo que una vez fue el original MapleStory v83, mientras que la adición de algunos sabores que condimentar el juego. En otras palabras, aspirar a conseguir lo mejor del MapleStory de aquella época.
Descargar elementos
Archivos del servidor: https://github.com/ronancpl/MapleSolaxiaV2
Archivos de cliente &herramientas generales: https://drive.google.com/drive/folders/0BzDsHSr-0V4MYVJ0TWIxd05hYUk
Donación
Si te ha gustado lo que has visto en el proyecto, dona algo como ayuda para mis contribuciones hacia el desarrollo de Maple.Paypal: https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3K8KVTWRLFBQ4
Preparando el ambiente
El siguiente enlace enseña sobre cómo instalar un servidor privado de MapleStory v83, sin embargo DIFiere en lo que se usa aquí: http://forum.ragezone.com/f428/maplestory-private-server-v83-741739/
Usa ese enlace SÓLO COMO ORIENTACIÓN en donde aquí las cosas empiezan a ser ambiguas.
Primero, instala todas las herramientas generales necesarias para ejecutar el servidor:
- WampServer2.0i.exe -> receptor del servidor.
- hamachi.msi -> utilizado para establecer una ruta de túnel para la comunicación servidor/cliente.
- mysql-query-browser-1.1.20-win.msi -> componente del servidor MySQL, almacenará la BD del servidor.
Ahora instala el kit de desarrollo de Java 7:
- jdk-7u79-windows-x64.exe
- netbeans-8.0.2-javase-windows.exe -> Es un proyecto de NetBeans, usa otro IDE bajo tu propio riesgo.
Sobreescriba siempre que se le pida los archivos JAR bajo «jce_policy-7/UnlimitedJCEPolicy» en estas carpetas de Java:
- C:\Archivos de Programa\Java\jre7\lib
- C:Archivos de Programa\Java\jre7\lib\ext
- C:Archivos de Programa\Java\jre7\lib\security
- C:Archivos de Programa\Java\jdk1.7.0_01\lib
- C:\NPrograma FilesJava\jdk1.7.0_01\jre\lib
- C:\NPrograma FilesJava\jdk1.7.0_01\jre\lib\ext
- C:\NPrograma FilesJava\jdk1.7.0_01\jre\lib\security
Ahora que las herramientas han sido instaladas, prueba si están funcionando.
Para WampServer:Una vez que hayas terminado de instalarlo, ejecútalo y verás el icono de Wamp en la esquina inferior derecha.Haz clic con el botón izquierdo del ratón en él y haz clic en «Poner en línea».En caso de que el icono sea de color NARANJA, cambia el puerto 80 en «httpd.conf» por otro, ya que choca con un puerto predeterminado de Windows.A continuación, vuelve a hacer clic con el botón izquierdo del ratón en él y haz clic en «Iniciar todos los servicios».El icono de Wamp debe ser completamente verde (si es naranja o rojo, tienes un problema).
Para Hamachi:Intenta abrirlo. Es así de sencillo.Sin embargo, Hamachi es opcional. No tienes que instalar Hamachi si quieres hacer el servidor sólo para usarlo en tu propia máquina. Sin embargo, si quieres permitir que otros jugadores accedan a tu servidor, considera utilizar alternativamente métodos de reenvío de puertos.
Instalación del SERVIDOR
Coloca la carpeta «MapleSolaxia» en un lugar de tu preferencia. Se recomienda para el uso «C:\NNexon\MapleSolaxia».
Configurar el SQL: abrir MySQL Query Browser, y definir estos parámetros en el inicio y haga clic en Aceptar:Server Host: localhostPort: 3306Username: root
Ahora se debe hacer con cuidado:
Ahora es OPCIONAL, no necesitas ejecutarlo si no quieres, ya que simplemente cambiará algunas tiendas de NPCs para establecer algunos bienes nuevos, no presentes en el MapleStory original, para vender:
- Archivo -> Abrir Script… -> Busca «C:\Nexon\MapleSolaxia\sql» -> db_shopupdate.sql, y ejecútalo.
Al final de la ejecución de estas SQLs, deberías haber instalado un esquema de base de datos llamado «maplesolaxia». REGISTRA TU PRIMERA CUENTA para ser usada en el juego creando manualmente una entrada en la tabla «accounts» en esa base de datos con un nombre de usuario y una contraseña.
Configura la IP que quieres usar para tu servidor de MapleStory en el archivo «configuration.ini», o ponla como «localhost» si quieres ejecutarlo sólo en tu máquina. Alternativamente, puedes usar la IP dada por Hamachi para usar en una red Hamachi, o puedes usar un método de reenvío de puertos que no sea Hamachi. Ninguno de los dos será abordado aquí.
Ahora abra NetBeans, y elija Abrir un proyecto… Selecciona entonces la carpeta «MapleSolaxia», que ya debería ser un proyecto reconocible por NetBeans. Si no es así, usted tiene un problema.
Dentro del proyecto, usted puede encontrar algunos errores de código. Esto sucede porque usted no ha establecido todavía los «núcleos» del proyecto. Desde la jerarquía del proyecto, haga clic con el botón derecho del ratón en el proyecto y seleccione «Resolver problemas del proyecto». Localiza la carpeta «cores» dentro del directorio raíz de este proyecto y configura manualmente los archivos que faltan con los archivos que están allí.
Por último, selecciona «Clean and Build project» para construir el archivo JAR para el servidor de MapleStory. Una vez hecho esto, asegúrate de que tanto WampServer como Hamachi están encendidos y funcionando, y luego ejecuta «launch.bat» en la raíz del proyecto. Si no se ha producido ningún error con esta acción, tu servidor de MapleStory ya está en línea.
Instalación del CLIENTE
La configuración del cliente es bastante sencilla:
- Desde «ManagerMsv83.exe», instala MapleStory en tu carpeta de preferencia (por ejemplo, «C:\NNexon\MapleStory») y sigue sus instrucciones.
- Una vez hecho, borra estos archivos: «HShield» (carpeta), «ASPLauncher.exe», «MapleStory.exe» y «patcher.exe».
- Extraer en la carpeta del cliente el «localhost.exe» de Localhostv83.
- Sobreescribir los archivos WZ originales con los proporcionados desde la carpeta «client_wz» de Google Drive.
Si no está utilizando «localhost» como la IP de destino en el archivo de configuración del servidor, tendrá que HEX-EDIT «localhost.exe» para obtener su IP. Rastrea todas las ubicaciones de IP buscando «Cadena de texto» «127.0.0.1», y aplicando los cambios donde corresponda.
Para la edición hexadecimal, instala el Neo Hex Editor desde «free-hex-editor-neo.exe» y sigue sus instrucciones. Una vez hecho esto, abre «localhost.exe» para editar y sobrescribe los valores de la IP bajo las 3 direcciones. Guarde los cambios y salga del editor.
Abra el cliente «localhost.exe». Si por algún motivo el programa no se abrió, y revisando el registro del servidor su ping ha sido escuchado y está usando Windows 8 o 10, probablemente podría ser algún problema de compatibilidad. Extrae «lolwut.exe» de «lolwut-v0.01.rar» y colócalo en la carpeta cliente de MapleStory («C:\Nexon\MapleStory»). La configuración de las propiedades de «localhost.exe» debe ser la siguiente:
- Ejecutar en modo de compatibilidad: Windows 7;
- Sin marcar el modo de color reducido;
- Resolución 640 x 480;
- Sin marcar la opción de desactivar la visualización en configuraciones de DPI altas;
- Ejecutar como administrador;
- Abrir «lolwut.exe», utilice el método de Fraysa.
Importante: si el cliente se niega a conectarse al servidor del juego, puede ser debido a problemas de firewall. Dirígete al final de este archivo para proceder a habilitar esta conexión con el firewall del ordenador. Alternativamente, se puede desactivar el firewall y tratar de abrir el cliente de nuevo.
Nota importante sobre la EDICIÓN DEL CLIENTE
NO UTILICE los XML del servidor para reimportar en el WZ del cliente, generará algún tipo de bugs después.
- Utilizar en su lugar el HaRepacker 4.2.4, encriptación «GMS (old)».
- Abrir la WZ deseada para editarla y, UTILIZANDO LA UI, realizar los cambios deseados.
- Guardar la WZ modificada, sobrescribiendo el contenido original en la carpeta del cliente.
- Por último, REEXPORTAR (opción de exportación «Servidor privado…», opción de exportación) los XML cambiados a los archivos WZ.XML del servidor, sobrescribiendo el contenido antiguo.
Estos pasos son IMPORTANTES para mantener la sincronización entre los módulos del servidor y del cliente.
Como ejemplo de edición de WZ de cliente, considere el proyecto MobBookUpdate que desarrollé, para actualizar todos los datos de drop reportados de los mobs en el juego basados en los datos de drop actuales en la base de datos:
- Abra el proyecto MobBookUpdate en NetBeans, ubicado en «C:\Nexon\MapleSolaxia\MobBookUpdate», y constrúyalo.
- En la subcarpeta «lib», copie el archivo «MonsterBook.img.xml». Este es del WZ v83 original.
- Pégalo en la subcarpeta «dist».
- Dentro de «dist», abre el símbolo del sistema pulsando alt+derecha allí.
- Ejecuta «java -jar MobBookUpdate.jar». Se generará un archivo «MonsterBook_updated.img.xml».
- Por último, sobrescriba el «MonsterBook.img.xml» en «C:\Nexon\MapleSolaxia\z\String.wz» con este archivo, renombrándolo de nuevo a «MonsterBook.img.xml».
En este punto, el Monster Book del lado del servidor ha sido actualizado con el estado actual de los datos de caída de la base de datos. A continuación, abra HaRepacker 4.2.2 y cargue «String.wz» desde «C:\Nexon\MapleStory». Suelte el nodo «MonsterBook.img» eliminándolo del árbol jerárquico, y luego (¡EN CONTRA DE LO QUE DEBE HACERSE NORMALMENTE!) importe el «MonsterBook.img.xml» del servidor.
Tenga en cuenta que esto es absolutamente peligroso si se hace sin cuidado. Una vez que el MonsterBook.img no contiene datos específicos del cliente en su contenido de nodos, la importación del XML no causa ningún daño. Sin embargo, trate de no eliminar/reimportar nodos de archivos WZ, ya que puede causar pérdidas de datos. Utilice la interfaz de usuario de HaRepacker en su lugar para hacer los cambios.
Guarde los cambios y sobrescriba el WZ más antiguo en la carpeta del cliente de MapleStory.
Portforwarding the SERVER
Para utilizar el portforward, necesitará tener permiso para cambiar cosas en el router de la LAN. Acceda a su router utilizando el navegador de Internet. Las URLs varían según el fabricante. Para descubrirlo, abra el símbolo del sistema y escriba «ipconfig» y busque el campo «default gateway». La IP que aparece allí es la URL necesaria para acceder al router. Busca también la IP que se le ha dado a tu máquina (campo «dirección IPv4»), que será la del servidor.
El login/contraseña por defecto también varía, así que utiliza el enlace http://www.routerpasswords.com/ como referencia. Normalmente, el login como «admin» y el password como «password» completan bien la tarea.
Ahora que ha entrado en el sistema del router, busque todo lo relacionado con el portforwarding. Si el sistema le pide entre portforwarding y portriggering, elija el primero, es lo que vamos a utilizar.
Ahora, es necesario habilitar los puertos adecuados para Internet. Para MapleSolaxia, se necesita básicamente abrir los puertos 7575 a 7575 + (número de canales) y el puerto 8484. Crea un nuevo servicio personalizado que habilite ese rango de puertos para el canal del servidor y opta por utilizar los protocolos TCP/UDP. Por último, crear un servicio personalizado ahora para utilizar el puerto 8484.
Opcionalmente, si desea alojar una página web, portforward el puerto 80 (el puerto HTTP) también.
Todavía no está hecho, a veces los cortafuegos bloquearán las conexiones entre la LAN e Internet. Para superar esto, es necesario crear algunas reglas para el firewall para permitir estas conexiones. Busque las opciones avanzadas con los cortafuegos en su ordenador y, con él abierto, cree dos reglas (una de salida y otra de entrada).
Estas reglas deben apuntar a «una aplicación», «permitir las conexiones» y deben apuntar a su cliente de MapleStory (también conocido como localhost).
Después de todos estos pasos, el proceso de portforwarding debería estar ahora completo.