MONTAR LA DB DE MANGOS [YTDB]
En este tutorial, os mostraré, como a partir de cero, se crea una estructura de base de datos para ManGOS, tomando como fuente de datos YTDB, y los pasos a seguir para tenerla actualizada, este esquema es válido para cualquier DB, no solo [YTDB], si bien ManGOS tiene una Jerarquía estricta para el orden de sus actualizaciones de datos, cosa que algún día implementará Trinity. Este sistema se puede adoptar con Trinity y te pude servir muy bien de ejemplo para hacer la misma operación con él, llevando una agenda de cual fue lo último que actualizamos, o sea, si eres de Trinity, también es bueno para ti.
....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
HERRAMIENTAS
MySQL:
Tener funcionado un servidor MySQL, bien sea a través de un paquete de distribución WEB como puede ser xampp, del todo recomendable, pues contiene un servidor Apache, para poder lanzar una web, de nuestro servidor, y es gratuito. O bien teniendo uno portable [versión community], de esos que lanzas y detienes con un archivo Batch. Este último es el que vamos a usar como base de nuestro tutorial, pues dispongo de uno, y te lo puedo “prestar” para que empecemos lo antes posible sin perder tiempo en dilaciones de instalación y malabares en complejas configuraciones.
Descárgalo de este Link, y descomprímelo en la misma carpeta del servidor “HDD:/ManGOS”, si no, no funcionará.
http://www.megaupload.com/?d=DEA76DTC
Pesa 8.7mg
Se lanza desde el batch “MySQL.bat” y es aconsejable cerrarlo con “MySQL_Stop.bat”, para que de esta manera, no se pierdan los posibles datos que aun permanezcan en la cache, el aspecto que tiene es este:
El único usuario que tiene definido es administrador y es este:
USER root
PASSWORD mangos
PASSWORD mangos
Luego te explicaré como cambiar el password de cualquier usuario.
SQLyog ó Navicat:
Los seguidores de una, o los detractores, es indiferente cuál de ellas tengas, porque en esencia las dos sirven para el mismo propósito, y como no voy a tratar, el cómo instalarlas. Doy por supuesto que tienes alguna de ellas, yo en concreto uso SQLyog, y me he adaptado a su uso, así que me resulta indispensable para el manejo de tablas en MySQL. Por tanto lo siento por el que tenga Navicat, porque usaré my SQLyog como ejemplo, en este tutorial, aviso para navegantes, ninguna de la dos es gratuita, pero cabe la posibilidad, de que por la red encuentres una de ellas, en periodo de prueba “indefinido”. Je je je
....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
EL ENTORNO DE TRABAJO
Me vais a perdonar que me enrolle, o que os tome por torpes, ¡pero como yo lo soy!, os voy a hacer una imagen clara del trabajo que vamos a realizar, insisto en esto porque solo así, sabremos lo que estamos haciendo, el tener conocimiento de la jerarquía que siguen las actualizaciones, y entenderemos el funcionamiento de la DB, al haber sido creada por nosotros, y con el entendimiento de esta, estamos preparados ante cualquier eventualidad que no surja, y en caso de haber un error en ella tras un actualización o parche, sabremos localizar el error, y corregirlo. De verdad que es muy importante no depender de terceros para que os solucionen algo, y estar haciendo reverencias a su señoría para que por favor te atienda. Lo tengo muy visto por todas partes.
Una Jerarquía:
El Team ManGOS hace una cosa bien hecha con sus DB´s, y es enumerar dentro de ellas cual fue el ultimo parche que se les aplico, de manera que la siguiente actualización que se les haga, llevará consigo el numero de su antecesora, y lo coteja con el que hay en la DB, si este es coherente, lleva a cabo la actualización, y “siembra” su revisión, para la siguiente, y así encadenadamente.
El Core al ser compilado lleva consigo, el numeral de la revisión de la DB, para la que ha sido compilado, y lo coteja con el que hay en la DB (tabla “db_version” de la DB mangos), si es coherente, seguirá cargando tablas, si no se detendrá y te indicará la revisión que tienes “sembrada” en la DB, y para la que él fue compilado, es una buena política, que nos ayudará a la hora de actualizar las tablas, como veremos al llegar a ese paso.
characters .- Es donde están los datos de los personajes que crean los usuarios, todas las actualizaciones que se hagan en esta DB, son criticas, pero nunca son traumáticas, no llevan consigo la perdida de datos, así que no tienes de que preocuparte, pero es de sabios hacer una copia de esta, antes de aplicar cambios, más vale un porsiacaso que un “mecagoenlap….”.
Esta DB solo la actualiza el Team de ManGOS, aunque veremos como YTDB va al carro de ellos y hacen mirror (espejo) de estas con las de ellos. O sea las incluyen. Esta jerarquizada en la tabla “character_db_version”.
mangos.- Esta DB es el motor de juego, en ella está absolutamente todo lo relacionado con los NPC´ s , objetos, misiones etc. etc. , el grueso de las actualizaciones se dedican a esta, los textos que en lxxx2 traducimos residen principalmente aquí, en definitiva es la que más trastearemos, la que más peso tiene y la que más quebraderos de cabeza nos dará. Haced una copia de esta antes de manipularla.
En ella está lo que YTDB, Scriptdev2, y ManGOS actualiza, así que ambos la gestionan, es por ello, que YTDB, siempre incluye antes de cualquier revisión de su DB, una actualización con las acumulativas de ManGOS é Scriptded2, te lo explicaré más claro:
Imaginemos que ellos lanzaron la revisión R570 haciéndola compatible con la que ManGOS en ese momento tenia, pongamos que fuese la 10200, y Scriptdev2 la 1700, si ahora lanzara la R571 para hacerla compatible con una hipotética 10500 actual de ManGOS é 1750 de Scriptdev2, sacarían, previa a la R571 una actualización que diría algo así “571_corepatch_mangos_10200_to_10500.sql”, y además dentro de dicho script en SQL, si lo editamos, al final de este, nos encontraríamos una línea que diría “# SD2_1750”. Es muy importante tener esto presente, además si en el tiempo que trascurrió entre la 10200 y la 10500, ManGOS también actualizó la DB characters, ellos también sacaran un parche acumulativo, que diría algo así; “571_corepatch_characters_10200_to_10500.sql”, y seguidamente aplicaríamos el parche de su DB “571_mangos_FIX_(10500).sql”.
Así que en este ejemplo, antes de aplicar la R571 de YTDB, necesitaré aplicar 2 actualizaciones previas a este, tal que así:
1º “571_corepatch_characters_10200_to_10500.sql”
2º “571_corepatch_ mangos _10200_to_10500.sql” (recuerda dentro indicaría # SD2_1750)
3º “571_mangos_FIX_(10500).sql”
2º “571_corepatch_ mangos _10200_to_10500.sql” (recuerda dentro indicaría # SD2_1750)
3º “571_mangos_FIX_(10500).sql”
Repito es de vital importancia saber por donde lleva su trabajo YTDB, antes de llevar a cabo una actualización del Core, para no encontrarnos con encerronas.
scriptdev2.- Esta DB es exclusivamente de este Team como su nombre indica en ella residen todos los datos de sus scripts, ni ManGOS ni YTDB, la tocan, aunque, como hemos visto scriptdev2 si actualiza algunas tablas en la DB de ManGOS, y como YTDB se hace eco de estas y las incluye dentro de sus “corepatch_ mangos” . Scriptdev2 no jerarquiza las actualizaciones que hace en la DB mangos, ni las suyas, o sea no están enumeradas dentro de su DB, como explique anteriormente, así que hay que tomar nota de por donde lleva su revisión, esto puede ser un hándicap, pero también es una ventaja, ya que podemos actualizar su DB, sin necesidad de hacer una revisión de Core, tan solo compilando su DLL.
realmd.- Aquí están contenidos los datos del reino, en nombre que le hayamos dado, y la IP de este, la gestión de cuentas de usuario y los chicos que se han portado mal. Es igual de importante que la DB characters, así que toda precaución es poca. Raramente la actualizan, tiene pocas tablas, así que es fácil seguirle la pista, y está jerarquizada. La gestiona exclusivamente el Team de ManGOS.
Bueno, con el calentamiento de cabeza que te he dado, creo que te ha quedado claro el funcionamiento de las bases de datos de ManGOS y como intervienen en ellas los 3 Team que las gestionan.
Te ha quedado claro, además, que YTDB es nuestra referencia a la hora de cargar las DB como veremos, ya que este Team se hace eco de las que Mangos y ScriptDev2 hacen en la DB mangos, pero ojo, no en la DB scriptdev2.
....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
CREANDO LA DB
Empecemos lanzando “MySQL.bat” , y a continuación “SQLyog” ya sabrás como crear una conexión en localhost, y el usuario y password ya te lo dije, si quieres cambiar el password del administrador, para que yo no lo sepa, ja ja ja, en esta captura te explico cómo.
Administración de Usuarios de MySQL
mangos:
Este crea 3 DB, como te he explicado, fíjate en los pasos a seguir, con la captura que te he puesto a continuación no te preocupes por el usuario que la administra, pues como te he mostrado en la captara anterior, es fácil eliminarlo, o editarlo, por ahora no lo cambies, es importante que aun no lo hagas.
Comento la imagen:
1º Te colocas encima de root@localhost, pulsas el botón derecho del ratón.
2º En el menú contextual seleccionas [Restore From SQL Dump..]
3º Pula el botón de exploración de la ventana de ejecución de consultas.
4º Localiza y selecciona el script “create_mysql.sql” en la carpeta “HDD:\ManGOS\src\sql”.
5º Pulsa el botón [Execute] en la ventana de ejecución de consultas, una vez concluido pulsa [Done].
Una vez terminado debes refrescar la ventada del explorador de DB, para que te aparezcan las bases de datos que has creado, bien como te muestro en la siguiente captura, ó seleccionando “root@localhost “ y pulsando F5
Scriptdev2:
Es idéntica operación que la anterior, el script llamado “scriptdev2_create_database.sql” está localizado en la carpeta “HDD:\ManGOS\src\src\bindings\scriptdev2\sql”.
Concluido el proceso de creación de las DB, este es seria el aspecto final con las 4 DB creadas.
....oooO.................
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
.....(....)... Oooo.......
....\..(......(....).....
......\_)......)../.......
..............(_/........
CRER LA EXTRCUTURA DE LA DB
El proceso que veremos a continuación, solo lo tenemos que hacer la 1º vez que creamos las DB, no es del todo útil para actualizar las DB, hay unos pasos para eso.
Vamos a seguir un orden de carga de datos, tomaremos como referencia el orden que tiene las DB en el Explorador de Objetos de la captura anterior.
En la Imagen inferior, puedes ver los pasos a seguir para cargar laS DB, estos son idénticos para todas, así que en las sucesivas cargas de datos, te servirá de referencia.
characters:
Recuerda que vamos a trabajar con el directorio “HDD:\ManGOS\src\sql”. Paso a comentar los puntos:
1º Nos posicionamos con el ratón encima de la DB characters, y pulsamos el botón derecho.
2º En el menú contextual, seleccionamos [Import], con un clic.
3º En el siguiente, [Retore From SQL Dump..]
4º Ya debes estar familiarizado con esta ventana, así que localiza en “HDD:\ManGOS\src\sql”, el script “characters.sql”, lo ejecutas y pulsas [Done].
Un proceso de carga correcto debe mostrar está imagen.
Concluida la carga de la DB characters, recuerda refrescar el explorador de DB, como te expliqué anteriormente.
mangos:
Hacemos los mismos pasos que hicimos con characters, pero esta vez con el script “mangos.sql” que está en la misma carpeta que el anterior “HDD:\ManGOS\src\sql”.
realmd:
Exactamente igual al anterior, el script se llama “realmd.sql”.
scriptdev2:
Debes buscar, el script “scriptdev2_create_structure_mysql.sql” en la carpeta “HDD:\ManGOS\src\src\bindings\scriptdev2\sql” y realizar la misma operación que las anteriores.
Bien pues ya tenemos, nuestras 4 DB, y sus respectivas estructuras de datos, o sea, las tablas que contienen y los registros que las componen, ¡ pero están bacías !.
® Mrbytes