Soporte en Español y Recursos para Servidores Privados de WoW

Únete ahora para obtener acceso a todo el foro. Una vez registrado y verificado tu email, podras crear temas, publicar respuestas, dar reputación a usuarios, descargar, obtener soporte en español y mucho más. Es rápido y totalmente gratis, ¿a qué estás esperando?

Pregunta

Haga preguntas y obtenga respuestas de nuestra comunidad

Responder

Responda preguntas y conviértase en un experto en su tema

Contacto

Contacta directamente con un administrador si presentas algún problema

Servidor de World of Warcraft WotLK en Linux

wowisland

Master en Linux
VIP
Guardian
Capataz
Explorador
Desde
21 Feb 2020
Mensajes
74
Reacciones
83
Honor
62
World of Warcraft ha sido uno de los juegos más aclamado en la historia de los videojuegos, consiguiendo un máximo de 10 millones de jugadores registrados y un acumulado a lo largo de su historia de más de 100 millones. La expansión Wrath of the Lich King, ha sido una de las más exitosas. Pues hoy vamos a aprender a crear un servidor de World of Warcraft WotLK en Linux.

En este caso, vamos a utilizar un emulador de
Por favor, Acceder o Registrarse para ver el contenido!
, pero esta guía es aplicable a
Por favor, Acceder o Registrarse para ver el contenido!
, ya que solo cambia la forma de aplicar las bases de datos y los repositorios de descarga.

Empecemos con los requisitos.
A pesar de ser usuario de Linux y conocer muchas distribuciones, en emulación siempre he utilizado Debian. Sé que funciona con otras como son sus derivadas, en Archlinux, Fedora y Red Hat entre otras, pero en esta guía me voy a centrar en Debian 10, que es la que conozco mejor para este fin. ¡Vamos a crear un Servidor de World of Warcraft WotLK en Linux!

Dependencias a instalar. Ejecutaremos los siguientes comandos:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Compilamos el emulador:
Necesitamos clonar el repositorio. Como siempre acabamos descargando muchos repositorios de emuladores, páginas Web, aplicaciones… Yo lo que hago es crear una carpeta en ni home llamada Repos, y ahí los guardo todos.

Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Para TrinityCore utilizaremos este repositorio:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Entramos en la carpeta y creamos un directorio para la compilación:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

En Trinity, la carpeta se llamará TrinityCore.

Vamos a generar el código y prepararlo para la compilación. A continuación especificaré las opciones que utilizo:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

En TrinitCore prepararemos los archivos con:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

  • INSTALL_PREFIX : Ubicación donde instalaremos el servidor
  • {C,CXX}_COMPILER : Compilador que utilizamos y ruta
  • TOOLS : Especificamos con 0/1 si queremos las herramientas de extracción
  • SCRIPTS : Especificamos con 0/1 si queremos compilar los scripts


Si al lanzar el comando no nos devuelve ningún error, ya estamos preparados para compilar el emulador. La orden será:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Con la opción -j $(nproc) lo que hacemos es decirle que utilice todos los núcleos del procesador para realizar el proceso, por lo que puede ralentizar nuestro equipo si estamos trabajando. Si no quieres que la compilación te influya en el rendimiento del servidor, puedes sustituir la variable por el número de núcleos que quieras. Como menos núcleos, más lento el proceso de compilar, pero menos lo vas a notar en bajada de rendimiento.



Ya tenemos el core compilado, y los archivos están en su ubicación final, tal como lo hemos especificado con las opciones de cmake.

Vamos a crear y preparar las bases de datos. El proceso en AzerothCore lo han simplificado mucho, solo se necesita configurar nuestros datos y ejecutar un script. En TrinityCore, lo que han hecho más simple es poblar las bases de datos, aunque las tenemos que crear manualmente.

Bases de datos en AzerothCore:
Vamos al directorio que está el core:

Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Creamos el fichero de configuración y lo editamos:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Dentro del fichero vamos a la sección “DB EXPORTER/IMPORTER CONFIGURATIONS” y lo editamos con nuestros datos de conexión de la base de datos:


Una vez lo tengamos editado, ejecutamos el script para que cree nuestras bases de datos y les escriba todos los datos.

Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Aquí seleccionaremos el opción nº5 : import-all: Assemble & Import all


Hasta aquí la instalación de las bases de datos. Solo nos quedará configurar la línea del realmlist, pero esto lo haremos en el apartado de las configuraciones.

Bases de datos en TrinityCore:
Primero debemos ir a la
Por favor, Acceder o Registrarse para ver el contenido!
de las bases de datos y descargar la más reciente de la versión 3.3.5. Descargamos la que está comprimida con 7z.



Este es el archivo más reciente que hay a fecha de la creación de la base de datos. Revisa en el anterior link si hay una versión más nueva.
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Descomprimimos el archivo, y lo copiamos en la carpeta que tenemos los binarios del emulador:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Creamos las bases de datos con los comandos de a continuación. Recuerda poner tus datos, como nombre de usuario de sql, y los nombres de las bases de datos si los quieres cambiar:
SQL:
Por favor, Acceder o Registrarse para ver los códigos!

Del resto se encarga el emulador al arrancar. Si todo queda bien configurado, el emulador se encarga de poblar las bases de datos.

Los maps, dbc, y más archivos:
Para que funcione el emulador, se necesitan unos archivos que debemos extraer del cliente del juego. Este proceso lo tengo explicado en la guía del emulador Classic. Te dejo el enlace para ver como se hace:

Por favor, Acceder o Registrarse para ver el contenido!


Si no los quieres extraer, te dejo unos enlaces de descarga donde están extraídos en español. Recuerda que no son compatibles de un emulador al otro. Debes escoger los correctos:

Descarga data AzerothCore:
Por favor, Acceder o Registrarse para ver el contenido!


Descarga data TrinityCore:
Por favor, Acceder o Registrarse para ver el contenido!


Los copiamos en una capeta llamada data con los datos extraídos dentro, también con cartetas cada tipo (maps, dbc, vmaps, mmaps). Esta carpeta debe estar en el directorio del servidor, es decir, dentro de ~/Servers/acore. Cuando el servidor esté completo en esta capeta deben estar:
  • bin
  • etc
  • data
  • logs (esta la creamos al siguiente paso)
Configuración de archivos:
Vamos a modificar los archivos que necesitamos para que funcione nuestro servidor. Hay muchas cosas que puedes cambiar de la configuración, pero en este post vamos a explicar lo imprescindible para que funcione tu emulados. En el mismo archivo, hay unas líneas donde explican las opciones.

Recuerda de cambiar el nombre de la carpeta si estás compilando Trinity. A continuación creamos los archivos de configuración:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Ahora editaremos lo necesario. Empezamos con el authserver.conf. Lo abrimos para editar y buscamos el texto LogsDir = “” y lo modificamos con:
LogsDir = "/logs"

Luego buscamos la siguiente línea y la editamos con nuestros datos:
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"

Guardamos y cerramos. Ahora abrimos y editamos worldserver.conf. Igualmente buscamos el texto LogsDir = “” y le ponemos el mismo que en el archivo anterior.

Seguimos buscando las líneas de las bases de datos y las configuramos de la misma forma:
LoginDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_auth"
WorldDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_world"
CharacterDatabaseInfo = "127.0.0.1;3306;acore;acore;acore_characters"

Creamos la carpeta de logs, donde se guardarán los archivos log de nuestro emulador (recuerda cambiar el nombre de la carpeta del emulador si usas Trinitycore):
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Con esto es suficiente para arrancar el servidor. Después ya cambiarás más opciones para ajustar el servidor a tus propios gustos.

Configuración del realmlist en la base de datos:
Ahora le vamos a configurar en la base de datos nuestra conexión y el nombre de nuestro reino.

Para este paso puedes entrar a tu base de datos con tu GUI favorita, por phpmyadmin si lo tienes instalado, o directamente con un comando. Nosotros lo vamos a hacer directamente mediante un comando, que es lo más rápido.

Nos conectamos a nuestra base de datos con el usuario que tengamos. En mi caso tengo un usuario llamado catlinux.
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

SQL:
Por favor, Acceder o Registrarse para ver los códigos!

Recuerda cambiar por tus datos:

  • acore_auth : si utilizas AzerothCore estará bien si no lo has cambiado. En Trinity auth
  • NomreReino : El nombre que le quieras da a tu reino. Libre elección
  • TuDireccionIP : Aquí depende de como vayas a conectar. A continuación explico las 3 opciones posibles.
  1. IP local: En caso de conectarte desde tu misma red interna. Ejemplo:(192.168.1.x)
  2. Localhost: Si vas a jugar con el mismo equipo que aloja el servidor. también puede ser: 127.0.0.1
  3. IP externa: La ip del router para poder conectar desde el exterior.
Con esto ya tenemos nuestro servidor funcional. Vamos a la puesta en marcha y los últimos ajustes.

Puesta en marcha del servidor:
Abrimos un terminal, vamos a la carpeta de nuestro servidor y entramos en el directorio bin.

Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Aquí ejecutamos el comando para arrancar el servidor del reino:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

En caso de tener un emulador TriniryCore poblará las bases de datos con todos los datos y las actualizaciones en este momento. Luego arrancará el emulador. Si tienes AzerothCore arranca directamente.

Abrimos otra ventana de terminal con la misma ubicación y arrancamos el archivo para el proceso de login al juego:
Codigo:
Por favor, Acceder o Registrarse para ver los códigos!

Ahora vamos a crear un primer usuario que será el admin del servidor. Volvemos a la terminal que arrancamos el servidor del reino (worldserver) y ejecutamos las siguientes líneas:
account create <user> <pass>
account set gmlevel <user> 3 -1

En la primera línea creamos el usuario con su contraseña, y en la segunda le damos permisos de administrador.

Ya solo nos queda cambiar el realmlist.wtf donde pondremos la dirección de nuestro servidor:
set realmlist logon.wowisland.es:3725

En mi caso yo tengo al final :3725 pero esto no suele ser necesario. Yo tengo el puerto del juego cambiado porque utilizo dos servidores diferentes de login.

Y con esto ya podemos jugar!

Si te interesa tener un restarter automático por si hay caidas, lo tienes disponible en el post de a continuación:
Por favor, Acceder o Registrarse para ver el contenido!


Fuentes:
Por favor, Acceder o Registrarse para ver el contenido!

Por favor, Acceder o Registrarse para ver el contenido!

Por favor, Acceder o Registrarse para ver el contenido!
 

WoWCreador

Admin
VIP
Guardian
Capataz
Explorador
Desde
1 Oct 2019
Mensajes
989
Reacciones
549
Honor
77
Excelente tutorial, muy buen elaborado y entendible. Pronto lo pondré a prueba. Gracias por compartir.
 

devmelh

Capataz
Explorador
Desde
22 May 2020
Mensajes
10
Reacciones
6
Honor
30
Yo trabajo con servidores en Linux he compilado 3 versions WoLTK, Legión y BFA, todos sin problemas es una my buena opción, la guia completisima hubiese sido mas sencillo si llegaba antes a ver este foro
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Hola, e seguido la siguiente guía primero de todo antes de empezar a instalar el servidor, con un host vació
Por favor, Acceder o Registrarse para ver el contenido!
que es para instalar Mariadb en tu server. y tengo problemas en el segundo paso.

mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MariaDB
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

In order to log into MariaDB to secure it, we'll need the current
password for the root user. If you've just installed MariaDB, and
you haven't set the root password yet, the password will be blank,
so you should just press enter here.

Enter current password for root (enter for none):
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Es la primera instalacion, por lo tanto deberia de dejarlo en blanco, no poner ninguna contraseña, solo darle al enter, y salta ese error.

ideas? Gracias
 

devmelh

Capataz
Explorador
Desde
22 May 2020
Mensajes
10
Reacciones
6
Honor
30
Si te sale ese error seria recomendable que veas en los logs de mysql, posiblemente se a seteado una clave por defecto normalmente esta siempre ahí
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Lo solucione con el comando mysql -u root -p y metiendo el password que viene en el servidor, se ve que se accede por superusuario o eso e leído ( que no significa que no se puedan crear otros usuarios), y que al ser Debian 10 no es necesario tirar el script mysql_secure_installation.

Gracias (y)
 
Última edición:

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
Tengo el server montado en un VPS con debian 10, ya esta corriendo, pero necesito acceder a su base de datos, en este caso antes accedia desde SQLYOG, puedo seguir accediendo de alguna forma similar o tengo que acceder desde el panel (PuTTy)?
 

wowisland

Master en Linux
VIP
Guardian
Capataz
Explorador
Desde
21 Feb 2020
Mensajes
74
Reacciones
83
Honor
62
Yo lo que hago es instalar phpmyadmin y lo gestiono via web.
 

Feliesmg

Explorador
Desde
26 May 2020
Mensajes
7
Reacciones
4
Honor
5
El problema era que puse el puerto al final de la dirección en el realm, y estaba mandando paquetes malos, quite el puerto del realm y conecto, me sale el nombre de mi servidor pero en gris, y como desconectado, no me deja entrar

edit: perfecto, se desconecto el worldserver, de hay el motivo, reconexion y ya estoy dentro
 
Desde
20 Feb 2021
Mensajes
1
Reacciones
0
Honor
1
hola,
podrías poner nuevamente los. Los maps, dbc, y más el Link está roto
 
shape1
shape2
shape3
shape4
shape7
shape8
Top