ExperienceFormula.txt

(Sistema de experiencia dinámica — MSPro V15+)
Desde la versión V15, el sistema de experiencia de MSPro permite niveles superiores a 1000 utilizando un modelo de cálculo más flexible y preciso. El límite de experiencia está definido por la constante VAR_DECIMAL_EXP, permitiendo valores extremadamente altos sin pérdidas de precisión.

La variable EnableFormulaLvl1000 ha sido eliminada: toda la configuración se gestiona directamente desde este archivo.
Atención: a medida que aumentas el nivel máximo, debes ajustar la fórmula de experiencia proporcionalmente.
Cuantos más niveles existan, más suave debe ser el crecimiento del cálculo o los valores superarán el límite de VAR_DECIMAL_EXP y la progresión se volverá inalcanzable.

Ejemplo: si amplías el nivel máximo a 5000 o más, deberás reducir los multiplicadores de la fórmula (dividiendo por 10, 100, o más) o modificar los coeficientes de crecimiento exponencial.

Estructura del archivo

El archivo ExperienceFormula.txt define los rangos de nivel y la fórmula utilizada para calcular la experiencia requerida en cada caso.

Campo Rango Descripción
MinLevel 1 ~ 65535 Nivel mínimo del rango donde aplica la fórmula.
MaxLevel 1 ~ 65535 / * Nivel máximo del rango o * para continuar hasta el final.
Formula Expresión matemática Define el cálculo de experiencia en base al nivel x. Soporta operadores básicos: +, -, *, /.

Ejemplo de configuración

//---------------------------------------------------------------------------
//  [1~65535]   [1~65535]       [WARNING]
//  MinLevel    MaxLevel         Formula
//---------------------------------------------------------------------------

// Base 1~400 (Progresión inicial clásica)
1     400     "(((x+9)*x)*x)*10"

// Niveles 401~1000 (Moderado)
401   1000    "(((x+9)*x)*x)*5+((x-400)*(x-400)*50)"

// Niveles 1001~3000 (Escalamiento lento)
1001  3000    "(((x+9)*x)*x)/3 + ((x-1000)*(x-1000)*20)"

// Niveles 3001~5000 (Curva de elite)
3001  *       "(((x+9)*x)*x)/5 + ((x-3000)*(x-3000)*10)"
end
    
Recomendación: este ejemplo permite alcanzar el nivel 5000 con una progresión continua y equilibrada. La experiencia aumenta lentamente entre los niveles 3000 y 5000, evitando valores que excedan 9.223.372.036.854.775.807.

Funcionamiento general

Cada bloque define un rango de niveles con su propia fórmula. El sistema evalúa dinámicamente x (nivel actual) para determinar la experiencia necesaria para subir al siguiente nivel. Si se excede el rango, el motor pasa automáticamente al siguiente bloque.

Consejo: ajusta los multiplicadores según la filosofía de tu servidor:
  • Slow: multiplica por 10–20.
  • Medium: multiplica por 3–5.
  • Fast: divide los valores o reduce los exponentes para evitar saturación.

Recomendaciones

  • Define el nivel máximo global en GameServerInfo - Common.dat (CharacterMaxLevel).
  • Guarda copias de seguridad antes de modificar la fórmula.
  • Recarga el servidor tras los cambios para aplicar la nueva progresión.
  • Usa herramientas de monitoreo de experiencia para validar la curva.
Este nuevo sistema es completamente escalable y soporta progresiones hasta 65.535 niveles, con control total sobre el ritmo de crecimiento y la dificultad de leveo.