Compilar MaNGOS Core En Windows


Objetivo: Compilar MaNGOS Core En Windows
Compilar MaNGOS en Windows


PRÓLOGO


Voy iniciar un Tutorial para explicaros como compilar un server Mangos en Windows, básico, y con ello me refiero a tal y como lo encontramos en el repositorio de Mangos, aunque más adelante os explicaré como añadirle parches y scripts en C++. No se trata de un Repack, ya que eres tú el que lo hace, y por lo tanto [color=red]no habrá soporte técnico, más que para el trabajo de compilación en sí, así que cualquier error durante el juego o problemas en el desarrollo del mismo, debéis dirigiros a los respectivos foros de soporte de cada Team (equipo) de desarrollo.

Dividiré el trabajo en secciones, para llevar un orden lógico de desarrollo en el proceso de compilación, y así siguiendo los “pasos” podéis localizar la correspondiente sección que busquéis.


ALGO DE HISTORIA...


Como ya sabéis, MaNGOS (Massive Network Game Object Server) es un emulador del wow, el más antiguo, junto a Ascent (ya estinguido) y el tiempo, es sinónimo de experiencia en esta vida, así que aunque lento en progresos, le gusta pisar bajo suelo firme, y es por ello lo de su estabilidad, los hay que les gusta correr, esgrimiendo que la velocidad, te permite correr hasta sobre el agua, que de firme no tiene nada, pero a cambio cuando caigas, te hundes.

El Team de Mangos como todos los equipos de desarrollo, debe estar regido por unas normas, y un planning lógico de trabajo, que si se sabe gobernar correctamente, por un equipo de desarrolladores bajo la estrategia de un buen equipo de moderadores, no tiene por qué haber, tensiones ni malos gestos, ni siquiera competencia entre desarrolladores, pues esto llevaría a ciertos malos entendidos entre compañeros.

Esto es lo que pasó con Trinity, fue una escisión de Mangos, gente que se salió de las normas del desarrollo del Team mal interpretando que más que normas había doctrinas, ciertamente porque el equipo de Moderadores no supo encauzar ese ímpetu de desarrollo que la gente tenía.

En esencia, Trinity es un sucedáneo de Mangos y con esteroides, gobernado por gente que les gusta la cafeína. Y esa energía la trasmite en su Core, pero también su inestabilidad, su falta de depuración de Código, porque limpieza, implica detenerse, y precisamente detenerse, no es su bandera, hay quien dice que “aun no han salido de la fase beta”.

Tiene más desarrollo de script en C++ que Mangos (los desarrollan ellos mismos), más Quest (misiones) resueltas, más Adding (añadidos), eso lo hace más Fun (divertido/jugable). En los DK (Caballeros de la Muerte) llegan más lejos que en Mangos, vamos que no son mancos. Pero también jode que te corte el rollo durante el juego un cuelgue a causa de un bug (error) que no han depurado, o que se ralentiza todo conforme el juego avanza, por causa de tantos Adding, y los NPC tardan en aparecer, o que hay NPC´s nadando por el aire, y otros que se ocultan bajo tierra y te atacan sin verlos o desaparecen al ser atacados, ciertos Spell (hechizos), más que eso, parecen trucos de mágica, etc. etc.

En MaNGOS Los Scripts en C++ los desarrolla ScriptDev2 junto a ACID, esto hace que la depuración de estos, sea mejor supervisada, al ser otro Team el que pierde su tiempo en ellos, van lentos, pero no hay más que entrar en su foro, para ver como desarrollan su trabajo, y su planificación, y tienen su propia DB (scriptdev2).

La mejor DB la tiene MaNGOS, es YTDB (que no la desarrollan ellos), tal que así, que ha sido modificada para que Trinity la adopte, aunque Trinity tiene su propia DB (TDB Trinity Data Base), que sinceramente parece un pilla-pájaros, porque no hay una lógica de control de actualizaciones, como en YTDB o en la DB de Mangos e ScriptDev2.

El Core pasa por varios filtros antes de hacer un nuevo commit (entrega), puede que se le escape un bug, pero no tardan en subsanarlo. No está exento de errores, pero no dejan bug sin solucionar a largo plazo, o los solucionan o eliminan el script (cuarentena).

En MaNGOS también hay Adding, aprobados por ellos, al contrario que en TrinityCore, y están disponibles en el propio SVN de Mangos.

Como he dicho, son desesperadamente lentos, pero constantes y fiables, “no tengo prisa, pero sé que llegaré”. No me voy a extender más en pros y contras, vosotros mismos haced una valoración. Si os gusta la aventura ya sabéis, TrinityCore.

Dudo que se reconcilien, más bien, Mangos absorberá a los “genios” de TrinityCore por propia desesperación, y con el tiempo TrinityCore se extinguirá como le pasó a Ascent, (es una opinión personal). Nacerán unos, se irán otros, pero Mangos, siempre estará como referencia para los demás, y eso es una realidad.



....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


HERRAMIENTAS


De Compilación:

Estas herramientas son necesarias para poder compilar, la falta de alguna de ellas, dará al traste con nuestros propósitos, son indiferentes para el equipo en que se instale 32 ó 64bits.


.Net Framework 4

Microsoft Visual C++ 2010 Express (es gratuito, selecciona tu lenguaje, solo necesitas registrarte)

Open SSL win32


Debes reiniciar tu equipo una vez instalados (obligatorio).

De Adquisición de Datos:

Estas Herramientas son necesarias para poder descargar los datos de los respectivos repositorios de cada Team de desarrollo, como habrás deducido, si has leído el punto “Algo de Historia…” para llevar a cabo la compilación necesitamos recurrir a 3 fuentes distintas, léase, Mangos, ScriptDev2 e YTDB.


El repositorio de MaNGOS es administrado por una utilidad llamada GIT, y es con ella con la que hay que clonarlo en nuestro equipo, y actualizar nuestro clon, además tiene más posibilidades, ya que puede editar, mezclar, etc.etc. , pero esto, se sale del objetivo de este tutorial.


ScriptDev2 e YTDB, usan la misma herramienta llamada TortoiseSVN, (es posible que con el tiempo cambien de utilidad) que si estás familiarizado con el TortoiseHG, te será fácil manejarlo, porque es idéntico, salvo que el TortoiseSVN sirve para administrar repositorios del tipo SVN.


La instalación de ambos, GIT-GUI e TortoiseSVN es muy fácil, y no necesita de manuales, tan solo sigue las instrucciones de sus respectivos asistentes, pero aquí si te hago el inciso de que instales el correcto para tu S.O. 32 ó 64bit, de lo contrario no se integrará correctamente con tu explorador de archivos, que es de lo que se trata.


GIT-gui (gratuito), en el recuadro derecho de la pantalla elige el correspondiente a tu S.O, una vez en el repositorio de descarga elige el que enuncia (Full installer for official).


TortoiseSVN (gratuito), elige el correcto, pulsa el "msi" correspondiente a tu S.O.

Con toda seguridad, debes reiniciar tu equipo (obligatorio).


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes


Continua en el siguiente post.

última edición por Invitado el Mie 08 Jun, 2011 09:31; editado 8 veces
Perfil MP  
Objetivo: Re: Compilar MaNGOS Core En Windows
COMPILACION


Doy por hecho que has instalado correctamente Microsoft Visual C++ 2010 Express, como señalé al principio, pues esta herramienta es la que voy a usar en todo el tutorial y las capturas son de esta.

Configuración y limitaciones:

No es necesario “toquetear” nada en el compilador, para nuestros propósitos, así que mejor que lo dejes tal y como se instala, a no ser que sepas que estás haciendo, y si con ello ganas algo de tiempo en la compilación, que de eso merecería la pena el ajustarlo. La versión Express, tiene limitaciones, y la única que nos afecta, es, la imposibilidad de compilar aplicaciones de 64bits, así que los avisos que salen en el compilador, sobre este tema, debéis ignorarlos, ya que la compilación la hará correctamente en 32bits, ni que decir tiene que si quieres un MaNGOS que corra en un Windows de 64bits, debes tener la solución completa de Visual C++ 2010 no la Express, solo así creará una 2º carpeta con la solución compilada de 64bits, que viene configurada junto con la de 32, y no hay más que decir, así que manos a la obra.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........

MANGOS


Tomando como referencia la imagen de abajo, en la que he superpuesto el compilador encima del explorador de archivos, nos dirigimos a la carpeta HDD: \ManGOS\src\win y en ella localizamos el archivo “mangosdVC100.sln” este es el correspondiente al Visual C++ 2010, veamos los siguientes pasos (fíjate en las capturas):

Nos colocamos con el ratón, encima del archivo “mangosdVC100.sln”, y hacemos 1 click con el botón izquierdo del ratón.

Verás que ha aparecido en la barra superior del explorador de archivos, una nueva opción, con el logo de Visual C++, pulsa la flechita que hay a la derecha del botón [Abrir].

En el menú contextual selecciona [Microsoft Visual C++ 2010 Express], esto lanzará la ventada del compilador (enmarcada en verde).

Ventana del Compilador:

Es importante que dejes que analice toda la solución, esto le llevará un ratito, si tienes algún error durante este proceso, es con toda seguridad un bug en el proceso de descarga del repositorio, así que debes salir del compilador, e iniciar una nueva comprobación del repositorio con tu Clon, en el paso titulado “Actualizar tu Clon” te explico cómo hacer una re comprobación del repositorio que detectará diferencias, y lo corregirá. Doy por hecho que el análisis salió correcto, seguimos.

En la ventana del compilador, y en el recuadro de dice [Debug] “depuración”, pincha en el flechita de la derecha como te muestro en la captura.

En el menú contextual que sale debes seleccionar [Release] “lanzamiento” de manera que se cambie el Debug por este, ahora pulsa F7 para iniciar la compilación.

143f6hc


El proceso de compilación llevará su tiempo, que dependiendo de tu equipo y de la memoria física de este, podrá ser más o menos largo pero lo será, así que la paciencia es la madre de todas las ciencias, espera.

Una vez terminado el proceso, el compilador, como muestro en el captura de abajo, debe mostrar en la esquina inferior izquierda [Listo] y en la ventada de log “Resultados”, en la última línea te dirá los procesos que ha compilado correctamente, y los errores u omisiones que ha hecho, en definitiva, todo estará correcto si te aparece el mismo mensaje que hay en la captura que te he puesto.

Los Archivos compilados, los dejara en la carpeta “HDD:\ManGOS\src\bin\Win32_Release” , tal y como puedes ver en la imagen inferior. Solo son validos los *.exe y las *.dll, lo demás solo es necesario para el compilador, no para nuestros propósitos, no hace falta borrarlos, el compilador los sobrescribirá cada vez que compiles.

255uwcg


Ahora crea en el directorio raíz de ManGOS "HDD:\ManGOS" una carpeta llamada Server.

Ejemplo:
Citar:
[HDD:\ManGOS\Server], copia los exe y las dll en ella, ahí es donde iras dejando los archivos finales del servidor.


Archivos *.Conf

Ve a la carpeta HDD:\ManGOS\src\src\mangosd , copia el archivo “mangosd.conf.dist.in” en la carpeta que has creado “HDD:\ManGOS\Server” borrando las extensiones “.dist.in” de este, el resultado será “mangosd.conf” que como bien has deducido, es el archivo de configuración de ManGOS.

Haz lo mismo con “realmd.conf.dist.in” que está en HDD:\ManGOS\src\src\realmd, este es el de configuración del reino.

Con esto, ya hemos terminado con la parte de ManGOS.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........

SCRIPTDEV2


El proceso de compilación es idéntico al de ManGOS. El archivo de la solución llamado “scriptVC100.sln” está ubicado en “HDD:\ManGOS\src\src\bindings\scriptdev2” como te muestro en la captura

2ljsw2e


Una vez concluido el proceso de compilación, la ventana del compilador se mostrará como puedes ver en la siguiente imagen, así como los archivos compilados, que los dejará en la misma carpeta que hizo al compilar ManGOS “HDD:\ManGOS\src\bin\Win32_Release”, sobrescribiendo los que este creo, los puedes identificar por la diferencia en la fecha de creación, el único que nos interesa es “mangosscript.dll”, así que cópialo y pégalo en la carpeta del servidor "HDD:\ManGOS\Server" sobrescribiendo al que pusiste cuando creaste ManGOS.

34zfsr9


Archivo *.Conf de scriprdev2

Este está en el directorio raíz de Scriptdev2 o sea “HHD:\ManGOS\src\src\bindings\scriptdev2”, se llama “scriptdev2.conf.dist.in” y debes hacerle la misma operación que hiciste a los anteriores.

....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........

UTILIDADES


Este paso es opcional, se trata de las herramientas necesarias para extraer del cliente WoW, la base de datos "DBC" para que el servidor funcione, así como la utilidad de extración y la de ensamblado del mapa "VMAPS".

ad.exe

Esta utilidad es la que extrae la DBC del cliente, la solución, esta ubicada en "HDD:\ManGOS\src\contrib\extractor" y se llama "VC100_AD.sln".

El proceso de compilación es identico a los anteriores, el archivo final, lo deja en la misma carpeta que la solución, se llama "ad.exe", debes crear una carpeta dentro de la del servidor, llamada "Utilidades".

Ejemplo:
Citar:
[HDD:\ManGOS\Server\Utilidades], copia ad.exe en ella, ahí es donde iras dejando las Utilidades del servidor.


vmapExtractor3.exe

Esta es la utilidad que extrae el mapa del cliente, es para el 3.3.5a, la solución está ubicada en "HDD:\ManGOS\src\contrib\vmap_extractor_v3\win" y se llama "vmapExtractor3_VC100.sln".

Repite la misma operación que hicimos antes, el ejecutable, lo deja en la carpeta "HDD:\ManGOS\src\contrib\vmap_extractor_v3\bin\Win32_Release", cópialo y pégado en la que creaste de utilidades.

vmap_assembler.exe

Esta utilidad es la que ensambla el mapa para hacerlo legible por nuestro servidor, previamente extraido por la anterior "vmapExtractor3.exe" asi que es el complemento de la otra, lo cual quiere decir que si alguna vez, compilas una, debes hacer lo mismo con la otra.

Está en la carpeta "HDD:\ManGOS\src\contrib\vmap_assembler" y su solución se llama "vmap_assemblerVC100.sln".

Idem de lo mismo que la anterior, el ejecutable lo deja en "D:\ManGOS\src\contrib\vmap_assembler\bin\Win32_Release", cópialo y pégado en la carpeta de utilidades, junto con "vmapExtractor3.exe".

Miscelanea

Para hacer que "vmapExtractor3.exe" y "vmap_assembler.exe" funcionen conjuntamente, sin necesidad de hacer malabarismos con la ventana del DOS, vamos a crear un archivo batch, que se encargue de hacer la tarea.

Ahora crearemos el batch, crea de nuevo un archivo de texto y renombralo por; "creadorvmaps.bat", pon atención en la extensión .bat. Edítalo, y copia el texto que precede:

Código: [Descargar] [Ocultar]
  1. @echo off  
  2. cls  
  3. echo.  
  4. echo Bienvenido al extractor y ensamblador "vmaps"  
  5. echo.  
  6. echo Necesitas 2GB de espacio libre en el HDD, Pulsa CTRL+C para detener el proceso.  
  7. echo Pulsa Enter para iniciar . . .  
  8. pause>nul  
  9. cls  
  10. echo.  
  11. echo.  
  12. echo.  
  13. IF EXIST buildings\dir (ECHO La carpeta buildings ya existe, ¿ quieres borrarla ?  
  14. echo Pulsa Enter para borrarla y continuar, si no, cierra el programa ahora! . . .  
  15. pause>nul  
  16. DEL /S /Q buildings)  
  17. vmapExtractor3.exe  
  18. cls  
  19. echo.  
  20. echo.  
  21. echo.  
  22. IF NOT %ERRORLEVEL% LEQ 1 (echo La herramienta de extracción "vmap" ha finalizado con errores.  
  23. echo Pulsa Enter para continuar . . .  
  24. pause>nul)  
  25. cls  
  26. echo.  
  27. echo.  
  28. echo.  
  29. echo mapas extraidos, comprobar "log.txt" por si hubiese errores.  
  30. echo Ahora se procedera ha ensamblar el vmaps pulsa cualquier tecla para continuar . .  
  31. pause>nul  
  32. md vmaps  
  33. vmap_assembler.exe buildings vmaps  
  34. cls  
  35. echo.  
  36. echo.  
  37. echo.  
  38. IF NOT %ERRORLEVEL% LEQ 1 (echo La herramienta de ensamblado de mapas ha finalizado con errores.  
  39. echo Pulsa Enter para continuar . . .  
  40. pause>nul)  
  41. cls  
  42. echo.  
  43. echo.  
  44. echo.  
  45. echo Proceso concluido! copia la carpeta vmaps en el directorio raiz de tu servidor.  
  46. echo Pulsa cualquier tecla para salir . . .  
  47. pause>nul 


Guardalo y cópialo en al carpeta de Utilidades junto con "vmapExtractor3.exe" y "vmap_assembler.exe". Con estas utilidades ya puedes extraer la DBC y el VMAP del cliente, y en perfecto Castellano de la Mancha.

2º Una vez ejecutado el archivo por lotes “creadorvmaps.bat” y el “ad.exe” en el directorio raíz de nuestro cliente WoW, como resultado tendremos 4 carpetas, “buildings” que no es necesaria y se puede borrar, “dbc”, “maps” y “vmaps”, que deben ser copiadas en el directorio raíz del servidor “HDD:\ManGOS\Server”.

Si no te quieres dar el trabajo de compilar las utilidades, para luego ensamblar y crear las carpetas, yo ya lo he hecho por ti, descarga y descomprime los siguientes archivos en tu servidor.

Citar:

dbc
http://www.megaupload.com/?d=KF7PK1M4
maps
http://www.megaupload.com/?d=R2V1XYXC
http://www.megaupload.com/?d=ZBW4UTD9
vmaps
http://www.megaupload.com/?d=YF5RT7RE
http://www.megaupload.com/?d=2HTIZKWF
http://www.megaupload.com/?d=79VTY8S4
Descarga total = 358 megas


Una instantanea de nuestro Servidor
2zq5rx2


Hasta aquí hemos llegado con la compilación.


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes


Continua en el siguiente post.

Perfil MP  
Objetivo: Re: Compilar MaNGOS Core En Windows
100 x 100 BLIZLIKE


En el subforo de este hilo [EsWoW2 Core], crearé un un nuevo hilo, exclusivamente para montar la DB de MaNGOS [YTDB] http://www.lxxx2.es/index.php?topic=1232.0, a partir de cero patatero, con objeto de que aprendais a hacer la DB por vosotros mismos, y asi sepais como se debe actualizar, y la jerarquia a seguir. Es alli donde debeis pedir ayuda, y soporte para la base de datos, dejando este hilo esclusivamente para la compilación y sus problemas.
Al final el servidor saldra "andando" como un Blizlike, o sea sin aditivos, ni esteroides.

Para crear una cuenta de usuario en el juego, una vez terminada la carga del servidor, y en la misma ventana DOS de este, debeis introducir los siguientes comandos:

Citar:

.account create NombreDelUsuario Password
.account set addon NombreDelUsuario 2 (0 - normal, 1 - tbc, 2 - wotlk)
.account set gmlevel NombreDelUsuario 3 (nivel de 0 a 3)

Esta secuencia creará una cuenta de usuario que será administrador, y le otorgará permisos de Game Master Principal


COMO ACTUALIZAR LOS REPOSITORIOS.



Esta que te voy a explicar, es la forma correcta de actualizar el repositorio de ManGOS, Scriptdev2 é YTDB, que tienes en tu HDD, Siempre que lo hagas, sigue estos pasos, y así no te llevaras sorpresas desagradables, de tipo, perdida de datos, bloqueo del repositorio, imposibilidad de actualizar, y un largo etc. que te puede pasar, como ya descubrirás por ti solo.

En este punto no vamos a tratar la Re compilación de ManGOS, sino de actualizar el código fuente, con las nuevas modificaciones que los respectivos Team, le hayan hecho. Hay tema exclusivo para la Re compilación de ManGOS, que si bien no tiene ningún misterio, ya que los pasos son idénticos a la primera compilación, tiene método, y sus pasos necesarios para llevarla a cabo, aunque a estas alturas, si ya lo has compilado anteriormente, y has creado su DB, deducirás como hacerlo.

Las herramientas, son las mismas que usamos al principio del tutorial.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Repositorio ManGOS




Abrimos nuestro “Git-Gui”, como previamente, ya se Clonó con GIT, este repositorio (o cualquier otro) GIT, ahora en la pantalla inicial te mostrará la posibilidad de abrir un repositorio reciente, como puedes ver en el punto (1º) de la siguiente imagen, selecciona el de ManGOS.

2rgevlj


(2º) Creamos una conexión remota y nos vamos a buscar el origen. [Remote] -> Fetch from.. -> origin.

(3º) Esperamos a que compruebe cambios “Success” y cerramos la ventana “Ir a buscar origen” [Close].

Si ha habido cambios en el repositorio original estos deben aparecer en el marco central de la ventana “Ir a buscar origen”.


Ahora en la ventana anterior, como muestro en siguiente imagen, debemos hacer un “Merge” con el Clon Local (1), porque asi, no perderemos datos que hallamos modificado en el repositorio, como pueden ser futuros Scipts que hayamos introducido, o añadidos.

(2) En la ventana de “Merge”, debemos seleccionar “tracking branch” con obejto de poder seleccionar el “Troncal” en el cual queremos hacer el “Merge”, que es el “origin/master”.

Es conveniente saber qué cambios se van a producir, no es obligatorio saberlo, pero no es conveniente ir de “ignorantes” por la vida, así que si te pica la curiosidad, puedes visualizar los cambios, antes de pulsar el botón [Merge], como te explicaré en la imagen precedente a esta. (Visualizar cambios).

263afc3


(2) Una vez que hayas visto los cambios que se producirán, pulsa el botón [Merge]
(3) En la ventana de Log, puedes ver los cambios que se han producido, en dicha captura, puedes ver que han cambiado 9 archivos, ha habido 13 inserciones de código en los correspondientes archivos que te muestra, dichas inserciones las marca con un signo “+”, observa el “NPCHandler.cpp”, dice que ha tenido 3 inserciones de código “+++” y ha habido 4 borrados “----“, (7 modificaciones), los borrados los señala con el signo de resta “-“. Recapitulando; 9 cambios, 13 inserciones, y 13 borrados. Pulsa [Close].
Impórtate:
Citar:
Si durante el proceso se produce algún error, salta al punto Resetear Errores.


Visualizar cambios


En la siguiente imagen, te muestro como ver, los cambios que sufrirá el repositorio (actualizaciones) antes de pulsar el botón [Merge], porque estos no se llevarán a cabo, hasta que no lo pulses.
Una vez pulsado el botón [Visualice] (1)

2ziswao


Saltará la ventada del “gitk(2).

Te explicaré por encima la información que te muestra dicha pantalla:

1.- Aquí puedes ver el anterior, y posterior “commit” al que has bajado.
2.- Este es la actualización que han hecho, aquí es la [10901], con una breve explicación de lo cambios producidos, justo debajo están las modificaciones hechas (inserciones ó borrados de código) a los respectivos archivos que puedes seleccionar en la ventana 3. Explórala, con objeto de familiarizarte con esta utilidad. (si quieres, digo yo).

Resetear Errores:

Si algo puede ir mal, seguro que irá mal, dice una de las aplicaciones de la ley de Murphy, je je je.

Este es el procedimiento a seguir cuando pretendes hacer un “Merge” y te da un error.

dgifxj


Debes hacer un reseteo de datos, relacionados al “Troncal” (“tranqui” que esto no borrará ningún archivo, aunque suene a “yuyu”, je je je) tal y como puedes ver en la imagen. Una vez hecho, vuelve a crear la conexión remota, como hicimos al principio, y luego el posterior “Merge”.

Cuando hayas terminado de actualizar tu Clon, ¡sin errores!, debes salir del “GIT-gui


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Repositorio scriptdev2


Nos colocamos encima del directorio donde clonamos Scriptdev2, que para este tutorial fue “HDD:\ManGOS\src\src\bindings” como te he puesto en la captura que precede. Una vez situados encima de dicho directorio, pulsamos el botón derecho del ratón, para que nos aparezca el menú contextual de nuestro explorador de archivos, que como recuerdas, “TortoiseSVN” está integrado en el, en dicho menú seleccionamos el enunciado “SVN Update”, y este lanzará automáticamente, la utilidad de actualización de “TortoiseSVN”. Debemos esperar a que termine de descargar las actualizaciones, y una vez terminado pulsa [ Show log... ], es muy importante, que lo hagas antes de pulsar [OK]

1zwhidi


Como te dije en su momento, es difícil mantener una coherencia de actualizaciones de este Team debido a que no las jerarquizan como hace ManGOS con su DB, si pero me dirás, que tenemos la ventaja de poder actualizar la DB de ellos y la DB de mangos con sus datos, sin problemas al machacar datos existentes en ella, o sea introducir dos o más veces un mismo script en SQL, como ya hemos visto en el tutorial de actualización de la DB.

Pero saber a ciencia cierta, cual es la última revisión que tenemos de ellos, también puede plantearnos dudas, así que es bueno saber que actualizaciones hemos bajado, y que “*.sql” son las que han actualizado ó añadido, y apuntarlas en un post-it, para llevarlas a cabo una vez hayamos compilado su DLL

iz92r5


Como puedes ver en esta captura (resultante de pulsar el botón [ Show log... ] de la anterior), en la ventana superior, y en negrita, ha señalado que actualizaciones ha llevado a cabo, al seleccionarlas, en la ventana central nos muestra el “changelog” de esta, y en la inferior (que es la que más nos debe importar), dice que “*.sql” a añadido, o modificado, y son estos datos los que debemos apuntar, pues en este ejemplo, al llevar a cabo la compilación de esta revisión (1913), vemos que además, tenemos que actualizar en la DB mangos, el script “r1913_mangos.sql” que lo ha añadido, y el “mangos_scriptname_full-sql” que ha sido actualizado.

De esto se deduce que es conveniente actualizar Scriptdev2, solo exclusivamente cuando vallamos a compilarla, con objeto de no estar constantemente apuntando datos, y que sepamos de una tacada, todo lo que ha actualizado desde la última vez que compilamos su DLL.

Una vez hayamos tomado nota de todo lo que nos interesa, debemos pulsar [ OK ], en esta ventana y una vez más en la anterior, con ello se cerrará “TortoiseSVN”, y habremos terminado con la actualización de Scriptdev2.


....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........


Repositorio YTDB


Con YTDB se hace el mismo procedimiento que con Scriptdev2, pero sobre su repositorio que está en “HDD:\ManGOSquizá tengas un signo de admiración, a causa de la modificación que hicimos en un original, ¿recuerdas? “570_EventAI_YTDB_QUEST.sql” modificamos las “entry” por “id” no te preocupes que es inocuo.

En las dos capturas sucesivas, puedes ver que además con ellos tenemos la ventaja de un “ChangeLog.txt” que si pulsamos dos veces, nos saltara un comparador, que nos dirá con certeza lo que han añadido “en amarillo”.

30lfjo4


5n2640


Como soy un poco cabezota, te recuerdo que tomes nota de los SQL añadidos o actualizados, y que además, como estamos tratando de actualizar, solo debemos llevar a cabo los “XXX_mangos_FIX_(xxxxx).sql” y no los “corepatch_characters” ni los “corepatch_mangos”, ya que estos los haríamos con la actualización de la DB de mangos, tenlo presente, de otra manera “SQLyog” te soltará un error, como puedes ver en la captura de abajo.

23l1lrn


Con esto hemos terminado con las actualizaciones de YTDB


RECOMPILAR.


Vamos a hacer una valoración de cuando debemos recompilar, que dicha acción lleva consigo haber actualizado los repositorios previamente, o lo que es lo mismo, recompilar es sinónimo de actualizar el Core y las DB, y las preguntas que no surgen serian estas.

¿Es conveniente Recompilar?
¿Qué condiciones se deben dar para llevar a cabo una actualización/re compilación?
¿Qué orden ó estrategia debo llevar para actualizar?
Una vez tengo todo actualizad ¿Cómo empezar?

Empecemos a contestar:

Más que conveniente, es necesario actualizar el Core, o sea recompilarlo otra vez, pues este emulador, jamás se dará por concluido, siempre habrá mejoras, en Quest, Eventos, Mod, etc. etc. Quedarse atrasado en dichos avances, es condenar nuestro servidor al ostracismo por parte de los usuarios, o aceptar que nuestra materia gris sea roída por el gusanillo de la ignorancia.


Esto sí que es un dilema. Hay que hacer una valoración previa a la re compilación con la cual analicemos las nuevas condiciones que se han dado, y de las cuales queramos beneficiar a nuestro server, porque actualizarlo, también conlleva cierto riesgo, de pérdida de datos, o “cuelgues”, así que conocer ciertos datos de la nueva revisión es necesario, más que nada, por saber también de su estabilidad, para que no seas tú el primer conejillo de indias.
Los avances que hayan introducido en él, a nivel de Core, los podemos saber a través de las respectivas utilidades, de administración de repositorios, tal y como hemos visto anteriormente.

Los puntos a valorar serian, de mayor a menor peso:
1- Corrección de bug que hayamos detectado, y que estemos padeciendo.
2- Implementación de nuevas características, ó añadidos.
3- Soporte para nuevas Quest.

Cuando se dan las tres es bueno actualizar, pero sobre todo, si solo se da una de ellas, que sea exclusivamente la primera.

A nivel de DB, YTDB casi a diario introduce nuevos datos para las Quest, que como es lógico, deben ser soportadas por el Core, o sea, de nada sirve actualizar la DB, si nuestro Core, no soporta la revisión para la que está hecha. Te lo voy a poner más claro, si nuestro Core es la rev10775 y YTDB saca el FIX 580 para el Core 10870, está claro que debo actualizar el Core, para poder beneficiarme de dicho FIX, por lo tanto, un paso, va detrás de otro, primero el Core y luego la DB, también te digo, que llevar a cabo una re compilación por implementar un nuevo FIX de YTDB, no es algo que debamos valorar en exceso.

Implementación de nuevos Scripts por parte de ScriptDev2; esto tiene su aquel, porque si que es un beneficio neto para los usuarios, pero hay que saber cuándo recompilar por este motivo, y yo me sirvo de referencia cuando ellos hace un script en sql previo, del tipo: “rXXX_mangos.sql”, esto significa que han introducido un nuevo script, porque cuando es del tipo: “r1650_scriptdev2.sql”, son actualizaciones de textos o revisiones de datos de los script, pero no implementaciones de nuevos scripts.

Es un coctel muy equilibrado el que tenemos que hacer para valorar la re compilación o no, cada uno le dará mayor o menor peso a uno u otro aspecto para tomar esta decisión.

Yo personalmente me guio por MaNGOS, veo los Bug corregidos, a la vez por donde lleva su trabajo scriptdev2, y por ultimo YTDB. Pero sobre todo, tomo como referencia, de si la gente que publica repack, saca una nueva revisión, ellos tienen más experiencia en esto, y como te he dicho, no me gusta ser el primer conejillo de pruebas.

De todo lo dicho, puedes deducir que recompilar no es un huevo que se echa a freír.


Bien, primero actualiza el repositorio de MaNGOS, luego el de YTDB y por último el de ScriptDev2, apunta en un papel, que revisión es la que te has bajado de MaNGOS, luego los “corepatch_mangos” de YTDB, hasta donde cubren, que si bien no los vamos a usar para actualizar la DB, como he repetido varias veces, si que nos indicarían, hasta que FIX se debe introducir en la DB, como ya hemos visto. Luego scriptdev2 que tiene su propia DLL, y que funciona autónomamente con el Core, como ya sabes la manera de ver la revisión que soporta el Core de ellos, es ver en la última línea del FIX de YTDB “XXX_mangos_FIX_(xxxxx).sql”, el enunciado:
Citar:
“UPDATE db_version SET `version`= 'YTDB_0.14.0_R577_MaNGOS_R10878_SD2_R1911_ACID_R307_RuDB_R38.4';”

Este ejemplo nos dice que el FIX 577 de YTDB da soporte a la revisión 1911 de scripdev2, y a su vez ambos son para la revisión 10878 de MaNGOS.
Como veis hay un encadenamiento de los tres Team. Por eso en un punto anterior dije, que YTDB me servía de referencia para saber que re compilaciones debo hacer, siempre valorando los avances de MaNGOS.


Empieza recompilando MaNGOS, luego scriptdev2, (sobrescribe la DLL que MaNGOS dejo anteriormente). Seguidamente lanza MaNGOS, y lee el “server.log” para saber cómo proceder a actualizar la DB, tal y como he explicado al final del tutorial de creación de la DB de MaNGOS (http://www.lxxx2.es/index.php?topic=1232.0) en el cual te explico el proceso de actualización de las DB.


Con todo esto hecho, ya puedes poner en marcha tu nuevo server actualizado.


█║▌│█│║▌║││█║▌│║║█║
® Mrbytes to Eswow2 2010


[move]Continuará en el siguiente post.[/move]

última edición por Invitado el Mie 08 Jun, 2011 09:23; editado 3 veces
Perfil MP  
Objetivo: Re: Compilar MaNGOS Core En Windows
Buenas,

lo primero dar las gracias por este estupendo trabajo y lo 2 º haber si podias re-subir los mapas del wow, que me esta dando problemillas para obtenerlos por mi cuenta.

Un saludo.

última edición por Rhulk el Sab 24 Mar, 2012 21:40; editado 1 vez
Objetivo: Re: Compilar MaNGOS Core En Windows
Rhulk escribió: [Ver mensaje]
Buenas,

lo primero dar las gracias por este estupendo trabajo y lo 2 º haber si podias re-subir los mapas del wow, que me esta dando problemillas para obtenerlos por mi cuenta.

Un saludo.


Si tienes es cliente 3.3.5a, las utilidades las tienes en el mismo clon del core, asi que no deberias tener problemas al extraerlas

Perfil MP  
Objetivo: Re: Compilar MaNGOS Core En Windows
Me explico mejor,

el problema que tengo es que no termina el proceso del ad.exe.

De todos modos el ad.exe me lo descarge de un enlace externo"varios distintos", no sabia que venia en el codigo fuente de mangos.

Volvere hacer todo el proceso siguiendo tu guia, .... ya comentare el resultado.

Objetivo: Re: Compilar MaNGOS Core En Windows
hola
muy buena la guia, el proceso de actualizar trinity es igual o cambia en algo aparte de que no hay scripdev2??
saludos

manfred1988
Objetivo: Re: Compilar MaNGOS Core En Windows
disculpa mi ineptitud pero en la segunada parte me perdi porque dice que busque en el HDD/ mangos etc, pero claro nunca hize nada para aparesca esa carpeta asi que entiendo que es el repositorio que debemos descargar, mi problema no es con los rep de mangos ya que lo encontre, el problema es que e visto muchos de ScriptDev2 e YTDB y no se cual sera la especifica para 3.3.5a, si me pudiera echar un cable o darme la direccion donde esten todas y yo ya lo buscaria,

muchas gracias desde hace años andaba buscando algo como esto

Objetivo: Re: Compilar MaNGOS Core En Windows
Hola este es el repo oficial de scriptdev2.

Verás la ironía, desde que yo hice este tutorial hasta ahora como solemos decir, "ha llovido", y no me refiero a que halla quedado obsoleto, ni mucho menos, porque en el proceso, de carga y compilación sigue al día, el "problema", por llamarlo así, es que hoy x hoy, el repo oficial de mangos, practicamente está parado, y que su "alma mater" Vladimirmangos, se ha retirado, y practicamente todos los desarrolladores que tenía, han migrado a otros team.

Actualmente, para aquellos que somos seguidores de el Core de MaNGOS, la alternativa se llama mangosR2 y en dicho repo puedes encontrar sus propios Scripts Custom, derivados de SD2, o sea "combinados" (merge en anglosajón), pero como te he dicho, son custom, o sea, que al final no tienen mucha compatibilidad a nivel de textos con los de SD2,y ¿en qué nos afecta, dirás? pues que a la hora de introducir los locales, que EsWoW2 hacemos, como muy bien he señalando en el post de anuncio de la EsWoW2 Revisión 1 WotLK no podrás aplicarle lo referente a SD2.


A corto plazo hay solución ya que estoy preparando una revisión exclusiva, llamada EsWoW2_MaNGOSR2, cuando la tenga lista la podreis bajar de ese repo.

Salu2 y suerte.

última edición por Mrbytes el Jue 24 May, 2012 14:35; editado 12 veces
Perfil MP  
manfred1988
Objetivo: Re: Compilar MaNGOS Core En Windows
hola despues de clonar del repositorio de mangos, como se actualiza?

Objetivo: Re: Compilar MaNGOS Core En Windows
manfred1988 escribió: [Ver mensaje]
hola despues de clonar del repositorio de mangos, como se actualiza?

En el mismo tutorial lo explico, leetelo.

Perfil MP  
manfred1988
Objetivo: Re: Compilar MaNGOS Core En Windows
Hola Ante todo muchas gracias nuevamente por la informacion, habia encontrado algunos scriptdev por internet pero al igual que el que me diste me sale esto:

1>------ Operación Generar iniciada: proyecto: ScriptDev2, configuración: Release x64 ------
1>Compilación iniciada a las 26/05/2012 11:32:35.
1>PrepareForBuild:
1> Creando directorio "..\..\..\..\bin\x64_release\".
1>InitializeBuildStatus:
1> Se creará ".\ScriptDev2__x64_Release\ScriptDev2.unsuccessfulbuild" porque se especificó "AlwaysCreate".
1>CustomBuild:
1> El sistema no puede encontrar la ruta especificada.
1> Extracting revision
1>C:\Program Files (x86)\MSBuild\Microsoft.Cpp\v4.0\Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" salió con el código 3.
1>
1>ERROR al compilar.
1>
1>Tiempo transcurrido 00:00:00.39
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========


lo mismo me sale con el de 32 bits

busque en Internet y algunos de versiones anteriores decían que había que modificar la configuración pero eso era de visual estudio 2008, y también modificar un archivo config.ac cosa que no sale en esta revisión.

si algo estoy haciendo mal me gustaría saberlo, una ves mas disculpa por mi falta de experiencia, PORFA paciencia n_n.

sin embargo la compilación del mangos me fue genial 12 correctos, 0 incorrectos, 1 actualizado

manfred1988
Objetivo: Re: Compilar MaNGOS Core En Windows
manfred1988 escribió: [Ver mensaje]

1>------ Operación Generar iniciada: proyecto: ScriptDev2, configuración: Release x64 ------
1>Compilación iniciada a las 26/05/2012 11:32:35.
1>PrepareForBuild:
1> Creando directorio "........ind_release\".
1>InitializeBuildStatus:
1> Se creará ".ScriptDev2__x64_ReleaseScriptDev2.unsuccessfulbuild" porque se especificó "AlwaysCreate".
1>CustomBuild:
1> El sistema no puede encontrar la ruta especificada.
1> Extracting revision
1>C:Program Files (x86)MSBuildMicrosoft.Cpp 4.0Microsoft.CppCommon.targets(151,5): error MSB6006: "cmd.exe" salió con el código 3.
1>
1>ERROR al compilar.
1>
1>Tiempo transcurrido 00:00:00.39
========== Generar: 0 correctos, 1 incorrectos, 0 actualizados, 0 omitidos ==========



les comento cuando lo descargaba con el tortoise SVN me salían varias carpetas y cuando lo ejecutaba me salia ese error, lo que hice fue descargar el ZIP y pegarlo en \src\bindings y recién hay funciono.

por lo visto la ruta no debía cambiar y al descargarlo por el SVN y copiaba todo tal cual, habían rutas demás y por eso no encontraba lo que buscaba, bueno eso supongo yo.

GRACIAS por todo

========== Generar: 1 correctos, 0 incorrectos, 0 actualizados, 0 omitidos ==========


Página 1 de 1


  
No puede crear mensajes
No puede responder temas
No puede editar sus mensajes
No puede borrar sus mensajes
No puede votar en encuestas
No puede adjuntar archivos
No puede descargar archivos
No puede publicar eventos en el calendario

   

Está utilizando la versión (Lo-Fi). Para ver la versión completa del foro, haga clic aquí.

Powered by Icy Phoenix based on phpBB
Design by DiDiDaDo

Página generada en:: 2.0297s (PHP: 87% SQL: 13%)
Consultas SQL: 16 - Debug on - GZIP Activado