Tema destacado: [Overclocking] Récords de overclock del foro
Autor
|
Tema: [Hilo oficial] MaNGOS / TrinityCore 2 (Leído 14,870 veces)
|
|
Ariath
|
Bueno, al final he optado por crear un nuevo hilo antes que fusionar los anteriores. Como la guía, ésta vez irá en PDF, no voy a reservar posts. La misma la pondré aquí en cuanto la tenga terminada. Quien quiera postear en el hilo para preguntar dudas o comentar cualquier cosa referente al tema del que trata el mismo puede hacerlo perfectamente. Aunque aquí vaya a dejar más adelante mi guía, esto no es un hilo dedicado a ésta guía, sino a cualquier cosa que tenga que ver con la emulación con MaNGOS y TrinityCore 2. Salu2 P.D: De momento, dejo los antiguos hilos vivos, pero cerrados, por si alguien quisiera ver algo (al menos del de Trinity). Cuando la guía la termine, esos hilos irán al vacío. P.D 2: Esto lo dejo aquí de manera provisional: Guía de compilación de MaNGOS bajo Ubuntu 10.04 Huelga decir, que el que se meta a montar un servidor en Linux, tiene que saber manejarse con élLas instrucciones van a ser muy sencillas y precisas. En este ejemplo voy a trabajar en mi escritorio (/home/ariath/Escritorio), y todo el servidor lo voy a dejar en el (la carpeta se llamará MaNGOS, la ruta temporal de compilación se llamará objdir, y la ruta donde se depositará todo el resultado de la compilación será /bin/Linux_Release, dentro de MaNGOS). Todo esto está extraído en cierto modo del Wiki de MaNGOS: 1º. Dependencias necesarias: build-essential, gcc, g++, cpp, automake, git-core, autoconf, make, patch, libmysql++-dev, libtool, libcurl4-openssl-dev, libssl-dev, grep, binutils, subversion, zlibc, libc6, mysql-server-5.1, unrar 2º. Una vez lo tengáis todo instalado (al instalar MySQL os pedirá que introduzcáis el password a usar para el usuario root), procedemos a descargar MaNGOS: git clone git://github.com/mangos/mangos.git /home/ariath/Escritorio/MaNGOS 3º. Después, descargamos ScriptDev2 mediante Subversion: svn checkout https://scriptdev2.svn.sourceforge.net/svnroot/scriptdev2/ /home/ariath/MaNGOS/src/bindings/ScriptDev2 4º. Descargamos YTDB: svn checkout http://svn2.assembla.com/svn/ytdbase /home/ariath/Escritorio/YTDB 5º. Descargamos ACID: svn checkout https://sd2-acid.svn.sourceforge.net/svnroot/sd2-acid/trunk/wotlk/ /home/ariath/Escritorio/ACID 6º. Ahora vamos a compilar MaNGOS, pero antes es preciso parchearlo para que ScriptDev2 se compile con el (esto solo se hace en Linux). Primero nos situamos en el directorio de MaNGOS: cd /home/ariath/Escritorio/MaNGOS Y a continuación hacemos: git am src/bindings/ScriptDev2/patches/MaNGOS-* Ahora nos preparamos para compilar MaNGOS: autoreconf --install --force mkdir objdir cd objdir ../configure --prefix=/home/ariath/Escritorio/MaNGOS/bin/Linux_Release --sysconfdir=/home/ariath/Escritorio/MaNGOS/bin/Linux_Release/etc --datadir=/home/ariath/Escritorio/MaNGOS/bin/Linux_Release make make install 7º. Con lo anterior hemos hecho lo siguiente: Después de crear el directorio temporal para la compilación, hemos configurado el script de compilación de MaNGOS para que nos deposite todo en la ruta que habíamos elegido antes (que es la indicada por --prefix) Todos los archivos de configuración irán a parar a una carpeta llamada etc (ubicada en la ruta indicada en --sysconfdir), y cualquier otra cosa irá a la ruta indicada por --datadir)Ya después de esto, solo quedará configurar los archivos de configuración alojados en /home/ariath/Escritorio/MaNGOS/bin/Linux_Release/etc , usar Wine para ejecutar los extractores de DBCs y Maps (o eso, o extraer los datos del juego desde un Windows), e instalar las bases de datos.
|
|
|
|
« Última modificación: 21 Noviembre 2010, 22:00 por Castiblanco »
|
En línea
|
|
|
|
|
Chukin
|
Pffrr...  Como primera vez que intento compilar MaNGOS me tira un error al compilar ScriptDev2,les dejo el registro: http://paste2.org/p/929858No se porque sale eso ya trate de compilar el VC80,VC90 y VC100 y nada,tambien descargue de nuevo la fuente y nada,esto ya me tiene muy jodido.. HELP MEEE  Salu2!!
|
|
|
|
« Última modificación: 27 Julio 2010, 22:52 por Chukin »
|
En línea
|
|
|
|
|
Ariath
|
Lo primero, os recomiendo que, para publicar textos largos (como la salida del compilador), uséis servicios como http://paste2.org/new-paste , ahí pegas lo que quieras, y cuando pinchas en Submit (enviar), te genera un enlace a lo que has pegado. Es una especie de "imageshack", pero para texto. Lo segundo, ese tipo de errores, de identificadores no declarados, puesto que ScriptDev2 es parte de MaNGOS, muchas veces vienen porque el MaNGOS que estás usando está más actualizado que el propio ScriptDev2. Yo he tenido una experiencia similar, cuando en una ocasión actualicé ambos, y la compilación del ScriptDev2 me devolvió un error haciendo una alusión a una función que no existía (la cual era propia de MaNGOS). Al final resultó que MaNGOS había modificado unas funciones, y simplemente tuve que esperar a que los de ScriptDev2 se pusieran al día (para eso es para lo que sirve ver el registro de cambios de cada proyecto  ). Estas cosas ocurren con relativa frecuencia cuando usamos las últimas revisiones disponibles de todo, porque siempre puede haber algo que todavía no se haya actualizado debidamente. Salu2
|
|
|
|
|
En línea
|
|
|
|
|
Chukin
|
Gracias por responder y por el consejo,solo me queda esperar..
PD:Eh editado el mensaje con un link generado con paste2,gracias por el tip.
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
Dime qué revisiones de MaNGOS y ScriptDev2 tienes actualmente, a lo mejor te puedo orientar. Salu2 P.D: Estas webs tenerlas en mente siempre: ScriptDev2 changelog: http://scriptdev2.svn.sourceforge.net/viewvc/scriptdev2/?view=logMaNGOS changelog: http://github.com/mangos/mangos/commits/masterEn tu caso, por ejemplo, en un mensaje de hace unas 3 semanas, en el changelog de ScriptDev2 dicen esto (me he limitado a buscar en el changelog el texto CREATURE_TYPEFLAGS_CAN_ASSIST): Update sources with CREATURE_TYPEFLAGS_CAN_ASSIST. Requires Mangos 10153
Lo que te he ennegrecido es muy importante. En el mensaje hacen referencia a que han actualizado el código fuente utilizando la variables CREATURE_TYPEFLAGS_CAN_ASSIST, e indican, que requiere la revisión 10153 de MaNGOS. Dicho de otra manera, si intentas compilar de esa revisión de ScriptDev2 en adelante, con una revisión de MaNGOS inferior a la que te exigen, tendrás errores. P.D 2: Por cierto, cuando tengas errores de este tipo, no pierdas el tiempo intentando compilar las 3 soluciones, porque dan los mismos resultados. Yo me limito a compilar siempre la VC90, porque es la correspondiente al Visual C++ 2008, el cual es el Visual C++ más usado hoy día. P.D 3: Otra recomendación. Aparte de que siempre tengáis en cuenta las revisiones que estáis intentando compilar de los proyectos, si la revisión que intentáis compilar es la última disponible, y por lo que sea no os compila, no os pongáis nerviosos ni os desesperéis. Simplemente probar a compilar revisiones anteriores. El desesperarse con estas cosas queriendo echarlas a andar como sea es la ruta más corta al abandono. Nunca intentéis montar un servidor teniendo en la cabeza la idea de que queréis que os vaya bien todo a la primera y en ese mismo día, porque sino se cumple eso...
|
|
|
|
« Última modificación: 27 Julio 2010, 23:20 por Ariath »
|
En línea
|
|
|
|
|
Chukin
|
Esas son algunas cosas que aun no aprendo hacer ya que siempre descargaba mangos ya compilado y luego la base de datos y asi como hay millones de tutoriales en web..pero ahora que me meto a compilarlo yo mismo me lio mucho,y hay algunas cosas que debo aprender a saber,como por ejemplo saber la revision de cada cosa que tienes..otra cosa mas es como hacer o de que repositorio descargar tal y tal revision porque solo conozco un repositorio y supongo que de ahi descargas la revision mas nueva.
Ahora mismo eh actualizado ScriptDev2,pero como dices el problema va a hacer de MaNGOS y no de ScriptDev2,y no funciono a lo hora de compilarlo como era de imaginarselo,y pues ahora pasare a actualizar MaNGOS,si me funciona ya te cuento.
Salu2!
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
Si la gente, en vez de hacer tutoriales sobre como preparar servidores ya hechos, los hubiera hecho para enseñar a hacerlos... otro gallo nos cantaría  . A ver, saber la revisión de cada cosa es fácil. La revisión de MaNGOS siempre la incluyen en el fichero src\shared\revision_nr.h . Aquí un ejemplo del contenido de ese fichero: #ifndef __REVISION_NR_H__ #define __REVISION_NR_H__ #define REVISION_NR "10231" #endif // __REVISION_NR_H__
En negrita la revisión. Luego, para cualquier cosa descargada mediante Subversion tienes 2 maneras, dependiendo de cómo uses el programa. Si lo usas por consola: svn info CARPETA Donde CARPETA es la carpeta descargada de la cual quieres saber su revisión actual. En este caso tendrías una salida similar a esta: Y si usas Subversion desde una interfaz gráfica, pues todas tienen una opción para ver información de la carpeta en cuestión. Luego, lo de los repositorios. De un repositorio puedes descargar desde la revisión más nueva que tenga de algo, hasta la primera que tuvo, puesto que almacenan todos los cambios sufridos por las cosas entre revisiones. Lo único que tienes que saber es cómo pedirles una revisión en concreto. Ésto en Subversion en sumamente fácil, y en Git, aunque no tiene mucha complicación, es algo más enrevesado. En Subversion, si quieres descargar la revisión 10 de algo, por ejemplo, tendrías que hacer: svn checkout -r 10 url carpeta Y si usas interfaz gráfica, todas te proveen en el momento de ir a hacer la descarga, de una zona donde especificar una revisión si quieres. En el caso de Git es un poco más enrevesado debido a la manera que tiene Git de funcionar. Aunque quieras la primera revisión de algo alojado en Git, primero tienes que clonar el repositorio, y luego tienes que reiniciarlo a la revisión deseada. En este aspecto es fundamental conocer los HASH de las revisiones que te interesan (los HASH son unas cadenas alfanuméricas que actúan como identificadores de cada revisión, ya que Git no usa un número para esto). Una vez conoces el HASH de la revisión que quieres, y tras haber clonado primeramente el repositorio, solo tienes que hacer lo siguiente (estando DENTRO de la carpeta que descargaste): git reset --hard HASH En ese momento, el contenido de dicha carpeta se "reiniciará" a la revisión indicada por el HASH dado. Yo personalmente, siempre mantengo actualizado todo, siempre me bajo las últimas versiones, y si veo que no compilan, me espero algún día que otro para ver si se soluciona, actualizo y vuelvo a probar. A los que suelen montar versiones antiguas, como la 3.1.3, 3.2.2, etc ... creo que es mejor estar a la última en este caso, pues en las últimas revisiones se solucionan muchas mas cosas que en las anteriores. Salu2
|
|
|
|
|
En línea
|
|
|
|
|
Chukin
|
Pues en el archivo revision_nr me sale esto: #ifndef __REVISION_H__ #define __REVISION_H__ #define REVISION_ID "*" #define REVISION_DATE "*" #define REVISION_TIME "*" #endif // __REVISION_H__
Que curioso no?
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
Pos si...
Yo de ti descargaría la última versión disponible de MaNGOS, ScriptDev2, YTDB y ACID, y con eso comenzaría a trabajar.
Salu2
|
|
|
|
|
En línea
|
|
|
|
|
Chukin
|
Pff..pues bien descargue todo otra vez (menos Acid porque si man no recuerdo solo se necesesita cuando usas UDB),y leche! al fin compile todo bien,luego saque mas o menos lo final y recuerdo que siempre vi unos archivos .conf y ahi no taban por lo que le pregunte a un amigo y me dijo que me metiera a src y luego mangosd y realmd y ahi encontraria unos archivos como con 3 extensiones respectivamente y luego las copiara a la carpeta final y les borrara lo que seguia de conf y ya quedo!...bueno no  Ahora pense y recorde que hacia falta una carpeta llamada DBC (creo..),en fin... xD Como la extraigo o de donde la descargo? Salu2!
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
Bueno, lo primero enhorabuena por conseguirlo por fín  . Mmm... ACID solo se necesita con UDB... pues si... y no A ver, te explico, ACID es necesario para cualquiera de las dos bases de datos. Lo que pasa es que YTDB lo incluye ya aplicado, pero debes descargarlo también y tenerlo a mano siempre por 2 razones: 1º. ACID puede llegar a actualizarse sin que lo haga la base de datos (lo mismo que le pasa a ScriptDev2 con MaNGOS), por lo que no está de mas tenerlo a mano y actualizarlo alguna vez que otra para re-aplicar el SQL de nuevo con los nuevos cambios. 2º. El tema de la actualización del servidor. Siempre que actualizas la base de datos del servidor, tienes que re-aplicar ACID. Dicho sea de paso, el proceso de actualización del servidor, una vez que sabes manejarte con los repositorios, el Visual C++ y MySQL es muy sencillo. Necesitas hacer esto en orden: 1º. Actualizar el código fuente de MaNGOS. 2º. Actualizar ScriptDev2 3º. Recompilar ambas cosas (primero MaNGOS, y luego ScriptDev2). 4º. Aplicar las actualizaciones que sean necesarias a las bases de datos. 5º. Re-aplicar el SQL principal de ScriptDev2 en su base de datos, para tenerlo actualizado. 6º. Re-aplicar un SQL de ScriptDev2, llamado mangos_scriptnames_full (o algo así) en MaNGOS. 7º. Re-aplicar el SQL de ACID en MaNGOS. Esto que puede parecer tedioso no lo es en absoluto, con la práctica lo haces volado, e incluso, se puede automatizar en cierta medida con un script (yo estoy terminando de depurarme un programa Java de consola que realiza el solito el 4º. paso  ). Los archivos de configuración acuérdate de configurarlos adecuadamente con los datos de tus bases de datos, porque sino, al iniciar el servidor te va a hacer un corte de manga XD. Luego, en cuanto a las carpetas, te hacen falta 2: DBC y Maps (estas son las imprescindibles, hay otra mas, llamada VMaps, que aunque no es esencial para que el servidor ande bien, ayuda a que los bichos no te vean a través de los muros (en algunos casos al menos)). Para generar las 2 carpetas principales, solo ve a la ruta contrib\extractor dentro de MaNGOS, copias el ejecutable ad.exe que encontrarás allí a la carpeta principal de tu WoW, y lo ejecutas. En un ratillo tendrás generadas las 2 carpetas, solo tendrás que moverlas donde está el servidor ya compilado. Con la VMaps de momento no te metas, porque como digo no es imprescindible, y ademas, la generación de esta carpeta tarda bastante (más de una hora). Salu2, a ver si consigues tener el servidor funcional pronto  .
|
|
|
|
|
En línea
|
|
|
|
|
Chukin
|
Pues ahora se estan extrallendo los mapas y dbc,pero tengo una dudilla mas... Como se intruduce YTDB y tengo que intruducir todas las sql's que vienen en la carpeta update? y si pasa lo mismo con las sql de las bases de datos y scriptdev2? Creo que eso es todo de momento,gracias por responder  Salu2!
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
A ver, YTDB y las updates se aplican en la base de datos como cualquier SQL que quieras ejecutar en ella.
Respecto a las updates, yo solo aplico las que provee MaNGOS, es mas sencillo para mí. Son en esencia las mismas que las que provee YTDB, solo que divididas en más ficheros.
Mi actualizador de las bases de datos de MaNGOS lo tengo terminado ya, solo estoy puliendo unos aspectos de mi biblioteca MySQL, la que uso para realizar las consultas y demás cosas con bases de datos.
En cuanto lo termine lo publicaré aquí, junto con el código.
Salu2
|
|
|
|
|
En línea
|
|
|
|
|
Chukin
|
PTM!! ahora cuando intento conectarme con SQLyog me dice que no puede conectarse a localhost Sabes como solucionar eso?  Salu2!
|
|
|
|
|
En línea
|
|
|
|
|
Ariath
|
SQLyog lo he frecuentado poco, pero en cualquier caso, amén de asegurarte de que te intentas conectar con los datos correctos... asegúrate de que el servicio de MySQL está activo.
Para ver los servicios: Inicio->Ejecutar->services.msc
Salu2
|
|
|
|
|
En línea
|
|
|
|
|
|