Configuración de gravedad
El sistema de gravedad (gravedad de las dimensiones, el bloque Dispositivo de Gravedad y las zonas de entrenamiento por peso) se configura en la clave gravity de config/dragonminez/general-server.json. Es una de las secciones más grandes de ese archivo, con más de 60 campos, así que tiene su propia página en lugar de formar parte de Configuración del servidor.
El esquema es la clase GravityConfig anidada en GeneralServerConfig.java; la lógica se aplica sobre todo en GravityLogic.java y GravityDeviceBlockEntity.java. Para el lado del jugador, consulta Gravedad, Pesas y Dispositivo de Gravedad.
Cómo funciona
La gravedad bruta de un jugador se calcula así:
base = highest of: dimension gravity, WorldGuard "dmz-gravity" region flag, Kaio NPC gravity (if one is nearby)
rawGravity = base + (Gravity Device gravity - 1) // only while standing in an active device's room
Luego, las estadísticas del jugador reducen esa gravedad bruta para obtener la gravedad neta (si la gravedad bruta es 1 o menos, la gravedad neta es 0). Una gravedad neta más alta significa más ganancia de TP y de maestría, penalizaciones a las estadísticas, penalizaciones al movimiento, al ataque, al salto y al vuelo, y un costo de stamina más alto por ataque.
Encima se suma un sistema aparte de zonas de entrenamiento por peso, basado en cuánto peso lleva el jugador en relación con el ideal para su nivel. Eso es lo que produce las franjas de multiplicador de TP Confortable, Ideal, Esforzándose al máximo y Sobrecargado.
La fila Gravedad del menú de estadísticas muestra todo esto en vivo: la gravedad del entorno y la neta, la penalización a las estadísticas, el bonus de TP, tu peso (bruto → efectivo), el peso ideal, la zona de entrenamiento y el multiplicador del entrenamiento con peso.
Fuentes de gravedad base
| Clave | Predeterminado | Qué hace |
|---|---|---|
enabled |
true |
Interruptor general de todo el sistema. Si es false, la gravedad siempre es 1.
|
gravityPerWorld |
minecraft:overworld: 1.0, minecraft:the_nether: 8.0, minecraft:the_end: 20.0, dragonminez:time_chamber: 10.0, dragonminez:otherworld: 1.0, dragonminez:namek: 1.0 |
Un mapa de id de dimensión a número: la gravedad base de cada dimensión. |
defaultWorldGravity |
1.0 |
Valor de respaldo para las dimensiones que no aparecen en gravityPerWorld.
|
npcGravityValue |
10.0 |
Gravedad que se aplica cerca de un NPC de Kaiosama (Kaio). |
npcGravityRange |
100.0 |
Radio (en bloques) que se usa para detectar un NPC de Kaiosama cercano. |
machineGravityEnabled |
true |
Si los bloques de Dispositivo de Gravedad aportan gravedad o no. |
Con WorldGuard instalado, la flag de región dmz-gravity (un número) también define una gravedad base para la región; se usa cuando es mayor que la gravedad de la dimensión (consulta Gamerules).
Anulación por Resistencia
| Clave | Predeterminado | Qué hace |
|---|---|---|
resistanceStatDivisorRatio |
0.9 |
Divisor de Resistencia, como proporción de maxValue (de la sección gameplay de general-server.json). Los valores más altos hacen que tus estadísticas anulen menos gravedad.
|
resistanceScale |
100.0 |
Escala cuánto pesa el término de anulación. |
netGravity = rawGravity - [(avg of the 6 stats × their multipliers) / (maxValue × resistanceStatDivisorRatio)] × resistanceScale
gameplay.maxValue es 1,000,000, así que esta anulación solo se vuelve importante con estadísticas muy altas.
Curva de reducción de estadísticas
| Clave | Predeterminado | Qué hace |
|---|---|---|
statReductionEnabled |
true |
Interruptor general. |
affectedStats |
["STR", "SKP", "PWR", "DEF", "STM"] |
Lista de las estadísticas que reciben penalización. |
statReductionPerGravity |
0.01 |
Fracción de reducción por cada 1 punto de gravedad neta. |
minStatReduction |
0.0 |
Mínimo. |
maxStatReduction |
0.9 |
Máximo (nunca más del 90% de reducción). |
statReduction = min(maxStatReduction, clamp(netGravity × statReductionPerGravity, min, max) + weightPenalty)
La penalización por peso (consulta las zonas de entrenamiento por peso más abajo) se suma a la reducción por gravedad, y el total sigue limitado a maxStatReduction.
Penalizaciones al movimiento, ataque, salto y vuelo
| Clave | Predeterminado | Qué hace |
|---|---|---|
hardStopThreshold |
75.0 |
Gravedad neta a partir de la cual el vuelo se desactiva por completo, el salto recibe la penalización máxima y el bonus de TP y maestría por gravedad desaparece. |
maxMovementPenalty |
0.95 |
Reducción máxima de la velocidad de movimiento. |
maxAttackPenalty |
0.9 |
Reducción máxima de la velocidad de ataque. |
penaltyCurveFactor |
1.6 |
Inclinación de la curva para las penalizaciones al movimiento, al salto y al vuelo: penalty = sqrt(netGravity / 100) * penaltyCurveFactor, limitada al máximo correspondiente. La penalización a la velocidad de ataque usa sqrt(netGravity / 100) sin este factor.
|
physicalEnabled |
true |
Interruptor general específico de las penalizaciones al salto, la caída y el vuelo. |
maxJumpPenalty |
0.95 |
Reducción máxima de la altura de salto. |
extraFallPerGravity |
0.02 |
Multiplicador extra del daño por caída por cada punto de gravedad neta. |
maxExtraFall |
0.6 |
Máximo del daño por caída extra. |
maxFlyPenalty |
0.95 |
Reducción máxima de la velocidad de vuelo (antes de que entre en juego el corte total). |
La penalización a las estadísticas por peso (ver abajo) también se suma a las penalizaciones al movimiento y a la velocidad de ataque, que siguen limitadas a maxMovementPenalty / maxAttackPenalty.
Bonus de TP y maestría por gravedad
| Clave | Predeterminado | Qué hace |
|---|---|---|
tpEnabled |
true |
Interruptor general del bonus de TP por gravedad y de todo el sistema de entrenamiento con peso de abajo. |
tpGravityBonusPerGravity |
0.025 |
Multiplicador de TP que se gana por cada punto de gravedad neta: 1 + netGravity × 0.025.
|
masteryBonusPerGravity |
0.0025 |
Bonus de maestría de formas por cada punto de gravedad neta: 1 + netGravity × 0.0025.
|
tpPeakMultiplier |
2.0 |
El multiplicador del entrenamiento con peso dentro de la franja Ideal (ver abajo). |
Ambos bonus desaparecen cuando la gravedad neta llega a hardStopThreshold. Dentro de la Cámara Hiperbólica del Tiempo, la gravedad propia de la dimensión no cuenta para el bonus de TP (la cámara tiene su propio multiplicador de TP); un Dispositivo de Gravedad colocado dentro sí cuenta.
Zonas de entrenamiento por peso
Es un multiplicador aparte que se suma al bonus de TP derivado de la gravedad, basado en el peso que se lleva en relación con el ideal para el nivel del jugador.
| Clave | Predeterminado | Qué hace |
|---|---|---|
tpIdealBaseDivisor |
2.0 |
Peso ideal = nivel relativo / este valor. |
gravitySensitivity |
1.0 |
Cuánto infla la gravedad bruta el peso efectivo: loadFactor = 1.0 + (gravity - 1.0) * gravitySensitivity.
|
tpComfortRatioLow |
0.5 |
Proporción de carga en la que el multiplicador llega a tpComfortMultiplier.
|
tpIdealRatioLow |
0.75 |
Aquí empieza la franja Ideal. |
tpIdealRatioHigh |
1.25 |
Aquí termina la franja Ideal; por encima empieza la penalización a las estadísticas. |
tpOverloadRatio |
2.0 |
Aquí el multiplicador alcanza su pico en tpHeavyMultiplier y luego baja.
|
tpOverloadHardRatio |
2.5 |
A partir de esta proporción, el multiplicador cae hasta 1.0 y la penalización llega a su máximo.
|
tpComfortMultiplier |
1.5 |
Multiplicador en tpComfortRatioLow.
|
tpHeavyMultiplier |
2.5 |
Multiplicador en tpOverloadRatio.
|
maxWeightPenalty |
0.6 |
Penalización máxima a las estadísticas por llevar demasiado peso. |
maxWeightRequested |
100000 |
Peso máximo (kg) que un jugador puede pedir al servicio de pesas de un maestro (Roshi, Kaiosama, Piccolo). |
Proporción de carga = peso efectivo (peso total equipado × loadFactor) / peso ideal. El multiplicador se interpola suavemente entre los umbrales de proporción: 1.0 con proporción 0 → tpComfortMultiplier en tpComfortRatioLow → tpPeakMultiplier en toda la franja ideal → tpHeavyMultiplier en tpOverloadRatio → de vuelta a 1.0 en tpOverloadHardRatio.
La penalización a las estadísticas por peso es 0 hasta tpIdealRatioHigh y luego crece de forma lineal hasta maxWeightPenalty en tpOverloadHardRatio.
Los jugadores ven cinco zonas de entrenamiento en el juego:
| Zona | Proporción de carga |
|---|---|
| Ninguno | No llevas pesas. |
| Confortable | Por debajo de tpIdealRatioLow.
|
| Ideal | De tpIdealRatioLow a tpIdealRatioHigh.
|
| Esforzándose al máximo | Por encima de la franja ideal y por debajo de tpOverloadHardRatio.
|
| Sobrecargado | tpOverloadHardRatio o más.
|
Mejoras de la Sala de Gravedad
Las misiones secundarias de Bulma Sala de Gravedad Mk. II y Sala de Gravedad Mk. III desbloquean amortiguadores que reducen la penalización a las estadísticas por peso mientras estás dentro de la sala de un Dispositivo de Gravedad activo. El alivio se reduce a medida que te haces más fuerte:
relief = base × e^(−falloff × (avg of the 6 stats × multipliers) / maxValue)
penalty = weightPenalty × (1 − relief)
| Clave | Predeterminado | Qué hace |
|---|---|---|
gravityRoomMk2Relief |
0.5 |
Alivio base tras Mk. II. |
gravityRoomMk2Falloff |
3.0 |
Qué tan rápido se reduce el alivio de Mk. II con el poder. |
gravityRoomMk3Relief |
0.8 |
Alivio base tras Mk. III (sustituye a Mk. II). |
gravityRoomMk3Falloff |
1.5 |
Qué tan rápido se reduce el alivio de Mk. III con el poder. |
Consumo por carga y gravedad
| Clave | Predeterminado | Qué hace |
|---|---|---|
loadDrainComfort |
1.15 |
Multiplicador de consumo en la zona Confortable. |
loadDrainIdeal |
1.3 |
Multiplicador de consumo en la zona Ideal. |
loadDrainHeavy |
1.5 |
Multiplicador de consumo en la zona Esforzándose al máximo. |
loadDrainOverload |
2.0 |
Multiplicador de consumo en la zona Sobrecargado. |
consumptionPerGravity |
0.04 |
Costo extra de stamina de los ataques por cada punto de gravedad neta: consumptionMultiplier = 1.0 + netGravity * consumptionPerGravity.
|
El multiplicador de consumo por carga se aplica al costo de stamina de los ataques y al consumo de ki, vida y stamina de las formas activas.
Bloque Dispositivo de Gravedad
| Clave | Predeterminado | Qué hace |
|---|---|---|
deviceMinRoomSize |
5 |
Tamaño mínimo (en bloques) de la sala cerrada en cada eje. |
deviceMaxRoomSize |
25 |
Tamaño máximo de la sala cerrada en cada eje. |
deviceMaxGravity |
1000 |
Gravedad máxima a la que se puede ajustar el dispositivo. |
deviceEnergyCapacity |
20000 |
Capacidad de almacenamiento de Energía Estelar. |
deviceEnergyPerGravityPerSecond |
1.0 |
Energía consumida por segundo por cada × de gravedad objetivo (100× de gravedad usa 100 de energía por segundo por defecto). |
deviceShaderGravityForMax |
60.0 |
Valor de gravedad en el que el shader visual del lado del cliente alcanza su intensidad máxima. |
El dispositivo valida su sala rellenando el espacio vacío a su alrededor: el espacio cerrado debe estar totalmente sellado (sin huecos hacia el exterior), y el aire encerrado debe medir entre deviceMinRoomSize y deviceMaxRoomSize en cada eje. La sala se vuelve a comprobar cada 5 segundos mientras el dispositivo está encendido.
Recargar y validar
- Edita el bloque
gravityenconfig/dragonminez/general-server.json. - Valida la sintaxis del JSON.
- Ejecuta
/dmzreload config. - Prueba en un Dispositivo de Gravedad o en una dimensión de gravedad alta: revisa el ritmo de ganancia de TP, las penalizaciones al movimiento y al ataque, y el consumo.