AzerothCore
Pages :

Trabajar con archivos de configuraci贸n (.conf & .conf.dist)

驴Por qu茅 worldserver y authserver necesitan que los archivos .conf.dist est茅n presentes en la ruta de instalaci贸n?

Es porque AzerothCore los utiliza como "fallback" para las configuraciones que no tienes en el archivo .conf copiado (por ejemplo si hemos actualizado la dist o has eliminado una conf)

C贸mo se componen los archivos de configuraci贸n

Todos los archivos de configuraci贸n cargan sus propiedades bajo 2 grupos de macros (debe tener uno de ellos en la cabecera de su archivo de configuraci贸n):

[authserver] -> para las configuraciones del servidor de autenticaci贸n

[worldserver] -> para las configuraciones de los servidores de mundo

Una propiedad est谩 compuesta por un nombre y un valor que se cargar谩 dentro de un objeto al iniciar el servidor / recargar la configuraci贸n.

驴C贸mo funciona la carga de m煤ltiples archivos .conf?

Al iniciar el servidor leemos primero los archivos .dist y cargamos todas las propiedades bajo el objeto sConfig. El archivo .conf ser谩 cargado justo despu茅s: todas las nuevas propiedades ser谩n a帽adidas al objeto sConfig, en cambio las propiedades con el mismo nombre sobreescriben las antiguas del .dist

Esto le permite crear un peque帽o archivo .conf que NO REQUIERE tener todas las propiedades de .conf.dist dentro ya que han sido cargadas anteriormente.

Por ejemplo, si quieres mantener toda la conf por defecto pero tienes que cambiar s贸lo las propiedades de la base de datos, puedes crear un archivo worldserver.conf con s贸lo:

[worldserver]
LoginDatabaseInfo     = "127.0.0.1;3306;root;root;azerothcore_test_auth"
WorldDatabaseInfo     = "127.0.0.1;3306;root;root;azerothcore_test_world"
CharacterDatabaseInfo = "127.0.0.1;3306;root;root;azerothcore_test_chars"

Configuraci贸n de los m贸dulos

Despu茅s de cargar los archivos normales .conf y .conf.dist, puede cargar un n煤mero infinito de archivos de configuraci贸n utilizando la API de scripts/m贸dulos. Tendr谩n el mismo comportamiento que el descrito anteriormente.

Nota: No recomendamos sobrescribir las propiedades de configuraci贸n del servidor ya que puede tener problemas de concurrencia con otros m贸dulos que tambi茅n las utilizan. En su lugar, crea nuevas propiedades con nombres espaciados.

Por ejemplo, si quieres modificar la funcionalidad de "desactivar la respiraci贸n de agua" en tu m贸dulo. En lugar de utilizar la propiedad existente de worldserver.conf.dist:

DisableWaterBreath = x

Utiliza un espacio de nombres como:

MyModuleName.DisableWaterBreath = x

Y trabajar con eso.

驴Puedo utilizar rutas relativas en los archivos de configuraci贸n?

S铆, pero no es recomendable. Cada ruta es relativa al directorio desde el que lanzaste el authserver/worldserver, tanto si lo lanzaste manualmente como a trav茅s de un script. As铆 que si haces esto (ejemplo de linux):

cd /tmp/test
./path/to/worldserver

Y tienes rutas relativas en el worldserver.conf como LogsDir = "../logs/worldserver/". Esto crear谩 los registros dentro de /logs/worldserver.

Conclusi贸n

Los archivos de configuraci贸n se cargar谩n siguiendo este flujo:

authserver.conf.dist
authserver.conf (overwrite properties from authserver.conf.dist)
worldserver.conf.dist
worldserver.conf (overwrite properties from worldserver.conf.dist)
modules *.conf.dist
modules *.conf (overwrite properties from each module's .conf.dist)