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
La variable
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
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.
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.