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.
(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).
(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)
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.
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]
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
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:\ManGOS”
quizá 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”.
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.
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.
1ª ¿Es conveniente Recompilar?
2ª ¿Qué condiciones se deben dar para llevar a cabo una actualización/re compilación?
3ª ¿Qué orden ó estrategia debo llevar para actualizar?
4ª Una vez tengo todo actualizad ¿Cómo empezar?
Empecemos a contestar:
1º 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.
2º 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.
3º 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.
4º 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]