Instalando TrinityCore 2 - Parte 2/2
Instalación de las bases de datos
Primero, vamos al escritorio de nuevo, y entramos en la ruta
TDB\full_db. Nos encontraremos con un archivo comprimido en RAR. Lo descomprimimos y saldrá un SQL.
Ahora volvemos a la consola de comandos. Vamos a poner a punto las bases de datos. Es cierto que se podría hacer con cualquier gestor de bases de datos gráfico, pero hacerlo por consola es sumamente fácil.
Lo primero que vamos a hacer, lo siguiente:
SET PATH=%PATH%;"C:\Program Files\MySQL\MySQL Server 5.1\bin"
(NOTA: La ruta variará si tenéis XP. En ese caso, sustituid C: por la unidad del la partición de Windows, y "Program Files" por "Archivos de Programa" (sin comillas))Esto va a añadir temporalmente la carpeta de instalación de MySQL a la lista de rutas donde Windows busca programas (cuando en la consola ejecutamos cd, hg u otro programa, Windows busca en una serie de rutas predefinidas dicho programa).
Ahora que tenemos eso hecho, hacemos:
mysql -h localhost --user="root" --password"PASSWORD_ROOT" -e"CREATE DATABASE IF NOT EXISTS characters;"
mysql -h localhost --user="root" --password"PASSWORD_ROOT" -e"CREATE DATABASE IF NOT EXISTS world;"
mysql -h localhost --user="root" --password"PASSWORD_ROOT" -e"CREATE DATABASE IF NOT EXISTS realmd;"
(NOTA: PASSWORD_ROOT es el password que hemos configurado anteriormente para el usuario administrador de MySQL. Si ya teníais anteriormente bases de datos con esos nombres en MySQL, ponerle otro nombre a estas y ya está, pero acordaos luego de cuales estáis usando. Yo de todas formas, me referiré a ellas con los nombres que he usado aquí)Con esto ya tenemos creadas las bases de datos, ahora vamos a importar los contenidos.
mysql -h localhost --user="root" --password="PASSWORD_ROOT" characters < "TrinityCore2\sql\characters.sql"
mysql -h localhost --user="root" --password="PASSWORD_ROOT" realmd < "TrinityCore2\sql\realmd.sql"
mysql -h localhost --user="root" --password="PASSWORD_ROOT" world < "TDB\full_db\TDB_332.8.26_7332.sql"
Con estas instrucciones, hemos armado las bases de datos.
(NOTA: Este archivo "TDB_332.8.26_7332.sql", es el que antes hemos descomprimido del RAR. Ese es el nombre que tiene al momento de escribir esto, pero irá variando con el tiempo.)
Aplicando las actualizaciones necesarias.
Ahora, una vez están las bases de datos instaladas, nos queda ver si hay alguna actualización que aplicar a las bases de datos.
Bien, llegados a este punto, ya abandonamos del todo la consola de comandos, con lo que la podéis cerrar sin problemas
.
Ahora es cuando tenéis que abrir vuestro gestor de bases de datos favorito y, sabiéndolo manejar (obviamente), tenéis que importar los scripts necesarios para actualizar las bases de datos.
(NOTA: Dependiendo del gestor que uséis, algunos no se refieren a esta operación como "importar scripts SQL", sino más bien como "ejecutar scripts SQL".)Bien, primeramente vamos a situarnos. Nos encontramos con el escritorio de Windows delante, ninguna ventana de consola ya por medio, y con vuestro gestor de bases de datos abierto en algún sitio y conectado apropiadamente a MySQL.
Ahora, lo que tenéis que hacer, es, en vuestro gestor, abrir la base de datos
world y ver el contenido de la tabla
version.
He puesto la imagen a su tamaño normal para que se vea bien a un golpe de vista.
Bueno, pues aquí en lo que tenéis que fijaros primeramente, es en la columna
db_version. Quedaros bien con el contenido de dicha columna.
Ahora, sin cerrar el gestor, minimizarlo y, en el escritorio, ir a la ruta
TDB\updates.
Bien, aquí vais a ver varias carpetas con números. Pues, ahora tenéis que buscar una carpeta cuyos números coincidan con los 2 primeros números de la columna
db_version, de manera que, si como en el ejemplo, la columna tiene los números
332.8.27, tenéis que buscar la carpeta que empiece por
332.8.
La abrís, y dentro encontraréis varios SQL. Os tenéis que fijar en el número por el que comienzan. En esta ocasión, tenéis que mirar si hay un grupo de archivos que comiencen por un número MAYOR que el tercer número muestra vuestra columna
db_version, de manera que, si como en el ejemplo, la columna tiene los números
332.8.27, tenéis que mirar si hay SQLs que comiencen por un número MAYOR a 27.
Y por último, SOLO nos interesan aquellas que correspondan a la base de datos
world. A NINGUNA más.
Ejemplo:
27_01_corepatch_world_7333_7582.sql
27_02_procedures_world.sql
27_03_updatepack_world.sql
27_corepatch_characters_7333_7582.sql
28_01_corepatch_world_7333_7582.sql
28_02_procedures_world.sql
28_03_updatepack_world.sql28_corepatch_characters_7333_7582.sql
Las señaladas en negrita, corresponden a las que serían válidas. Como veis, empiezan por 28, que es mayor a 27. Y además, solo se han marcado aquellas que tienen
world en el nombre del fichero.
Pues, todas esos scripts SQL, tenéis que importarlos en la base de datos world (a la cual pertenecen), y lo tenéis que hacer en el mismo orden en que salen aquí (para eso están numerados: 28_01, 28_02, etc ... ).
Una vez halláis hecho esto, la columna db_version debería reflejar la actualización realizada (es decir, si estabais en la versión 332.8.27, y habéis aplicado todas las actualizaciones que empezaban por 28, dicho número en la columna db_version debería reflejar ahora 332.8.28).
Solo queda un último paso en lo concerniente a la base de datos. En esta ocasión, tenéis que fijaros en la columna
core_revision. En el ejemplo, dicha columna está con el valor 7601.
Pues bien, ahora os vais, desde el escritorio de Windows, a la ruta
TrinityCore2\sql\updates.
De aquí, tenéis que aplicar TODAS las actualizaciones que comiencen por un número MAYOR que el que tenéis en la columna
core_revision, y cada actualización la tenéis que aplicar en su base de datos correspondiente.
¿Cómo sabemos en este caso a cual base de datos corresponde cada una? Muy facil, fijaros en este ejemplo:
7598_
world_scriptname.sql
7604_
characters_item_refund_instance.sql
7609_
world_spell_proc_event.sql
Está claro, ¿No?, después del número, la primera palabra que aparece, corresponde al nombre de la base de datos a la cual pertenecen la actualizaciones.
Y también, como veréis, siguiendo este ejemplo en el cual la columna core_revision vale 7601, de estas 3 actualizaciones por ejemplo, tendríamos que aplicar solamente las 2 últimas, porque la primera, tiene un número de revisión MENOR que 7601.
Y hasta aquí la parte de las bases de datos. Una última cosa, y muy importante, que, pese a que no lo dicen (no recuerdo haberlo leído) en el foro de TrinityCore, lo digo yo: Es
MUY IMPORTANTE, que, llegados a este punto, en un archivo de texto mismo, en esa misma carpeta de actualizaciones, creéis un simple documento de texto TXT con el bloc de notas, y escribáis exactamente el nombre del fichero de la última actualización que habéis aplicado. Dicho fichero lo podéis llamar "ultima actualización aplicada", "last update", o como queráis.
¿Esto para qué es?, Pues es porque, como ese valor del core_revision no suele cambiar a medida que aplicáis actualizaciones, sino os apuntáis cual fue la última aplicada, cuando en el futuro actualicéis el servidor, no vais a saber a partir de cuál actualización tenéis que empezar a aplicarlas.
Se me olvidaba un detalle: Tanto en este momento, como tras cualquier actualización que hagáis de la base de datos world, hay 3 scripts SQL que tenéis que aplicar en dicha base de datos.
Están en
TrinityCore2\sql\FULL y son los siguientes: world_script_texts.sql,
world_script_waypoints.sql y world_scripts_full.sql.
Y ahora si, la recta final. La configuración del emulador.
Configuración básica del emulador.
Lo primero que tenéis que hacer, es renombrar los ficheros de configuración. En la carpeta
TrinityCore2\bin\Win32_Release, junto a todos los archivos que harán andar vuestro servidor, tenéis los archivos
TrinityCore.conf.dist y
TrinityRealm.conf.dist.
El renombramiento se reduce a eliminar la terminación .dist de ambos.
Y ahora la parte de la configuración, empiezo por TrinityRealm, que es el más corto:
TriniryRealm.confLoginDatabaseInfo = "127.0.0.1;3306;
usuario_mysql;
password_mysql;
base_de_datos_realmd"
ProcessPriority = 1
(Prioridad en que se ejecuta el servidor de reinos: 0 - Normal, 1 - Alta)TrinityCore.confLoginDatabaseInfo = "127.0.0.1;3306;
usuario_mysql;
password_mysql;
base_de_datos_realmd"
WorldDatabaseInfo = "127.0.0.1;3306;
usuario_mysql;
password_mysql;
base_de_datos_world"
CharacterDatabaseInfo = "127.0.0.1;3306;
usuario_mysql;
password_mysql;
base_de_datos_characters"
ProcessPriority = 1
(Igual que el Realmd)vmap.enableLOS = 0
(Habilita el uso de los VMaps, para evitar que los bichos "vean" a través de las paredes)vmap.enableHeight = 0
(Igual que el anterior. Se requieren ambos)Y hasta aquí la parte del a configuración básica del emulador. Ahora solo quedan extraer los DBCs, Maps y VMaps.
Extracción de datos del juego (Maps, VMaps y DBCs).
Ésta es sin duda una de las partes más fáciles de hacer. Vamos a extraer los datos necesarios del juego para que el emulador vaya bien.
El software que necesitamos usar está en la carpeta
TrinityCore2\contrib, y son tan solo 2 programas.
Necesitamos 3 cosas para que el emulador ande (en realidad 2 solamente): Los DBCs son unos archivos que contienen información del juego, son como tablas en las que hay codificado multitud de datos (y solo se pueden editar con programas especiales, aparte que no es recomendable hacerlo), los Maps, en contra de lo que pueda parecer, no son los mapas del juego. Son archivos que contienen información sobre los mapas del juego, pero no son los mapas en sí. Son imprescindibles para poder descubrir el territorio de juego.
Lo último serían los VMaps, y, aunque no son necesarios (se puede usar el emulador sin ellos), está bien tenerlos. Son los llamados Mapas de visión (erróneamente llamados por mí en más de una ocasión como Mapas de colisiones
), y, aunque su funcionamiento no es muy fino todavía... ayuda a que los enemigos no os vean a través de los muros, por ejemplo.
Ahora vamos al lío
.
(
NOTA: ¡Importante!, Es IMPRESCINDIBLE, que esta clave exista en vuestro Registro de Windows:
32 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Blizzard Entertainment\World of Warcraft
64 bit: HKEY_LOCAL_MACHINE\SOFTWARE\Wow6432Node\Blizzard Entertainment\World of Warcraft
Y que contenga un campo de nombre
InstallPath con la ruta del juego del que queréis extraer la información.)
Extraer lo datos es fácil. Para los DBCs y Maps, copiad el programa ad.exe de la ruta
TrinityCore2\contrib\extractor en la ruta del juego, y ejecutarlo.
Al terminar su ejecución, tendréis unas carpetas llamadas dbc y maps con la información extraída.
Ahora, para extraer los VMaps, tenéis que copiar a la ruta del juego el contenido de la carpeta
TrinityCore2\contrib\vmap_extract_assembler_bin, y ejecutáis el fichero llamado makevmaps_SIMPLE.bat .
Este proceso tarda bastante, algo más de 1h .
Cuando termine, tendréis una carpeta llamada vmaps con la información extraida.
Pues bien, simplemente moved las carpetas dbc, maps y vmaps a la carpeta donde tenéis vuestro emulador compilado.
Probando el servidor:) .
Llegados a este punto, debéis tener ya las 3 bases de datos creadas, y una carpeta con el emulador compilado, sus archivos de configuración editados, y las carpetas dbc, maps y vmaps con sus contenidos.
Pues... ya solo queda poner en marcha el emulador, y conectarse para jugar.
Para lo cual, ejecutáis el TrinityRealm y el TrinityCore, y, si todo ha ido bien, el emulador cargará. La carga tardará mas o menos dependiendo de la potencia del PC en que esté instalado el servidor.
Cuando veáis que, pasada la sección de los TrinityScripts, ya no sale más texto (si tenéis los altavoces encendidos, incluso oiréis in pitido), es que ya el emulador ha terminado su carga.
Ahora solo os queda hacer una cuenta en el mismo para probar.
Como todavía no tenemos instalada ninguna web, servidor web ni nada de eso, vamos a crear las cuentas mediante la consola del TrinityCore.
Para lo cual, solo tenéis que clicar dentro de la consola del TrinityCore y pulsar intro (o enter), en ese momento podréis escribir comandos.
Los más importantes son los siguientes (los comandos empiezan después del guión, todos los comandos empiezan por un punto, los datos que pongo en MAYUSCULA son datos que tenemos que proporcionar, y, lo que hay entre paréntesis es solo una explicación):
- .account create USUARIO PASSWORD (Crea una cuenta con los datos solicitados)
- .account set addon USUARIO N (Establece la expansión activa N para el USUARIO indicado: 0, ninguna; 1, TBC; 2, WOTLK)
- .account set gmlevel USUARIO L -1 (Establece el nivel de N para el USUARIO: Los niveles van del 1 al 3).
- .announce MENSAJE (Anuncia el MENSAJE a todo el servidor)
Y bueno eso es todo lo que nos concierne para la primera parte. Vamos a la siguiente
.
Salu2