feat(Core/Creature): Add new config option for npc speeds (#20617)
This commit is contained in:
@@ -2045,11 +2045,18 @@ WaterBreath.Timer = 180000
|
|||||||
EnableLowLevelRegenBoost = 1
|
EnableLowLevelRegenBoost = 1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rate.MoveSpeed
|
# Rate.MoveSpeed.Player
|
||||||
# Description: Movement speed rate.
|
# Description: Movement speed rate for players.
|
||||||
# Default: 1
|
# Default: 1
|
||||||
|
|
||||||
Rate.MoveSpeed = 1
|
Rate.MoveSpeed.Player = 1
|
||||||
|
|
||||||
|
#
|
||||||
|
# Rate.MoveSpeed.NPC
|
||||||
|
# Description: Movement speed rate for NPCs.
|
||||||
|
# Default: 1
|
||||||
|
|
||||||
|
Rate.MoveSpeed.NPC = 1
|
||||||
|
|
||||||
#
|
#
|
||||||
# Rate.Damage.Fall
|
# Rate.Damage.Fall
|
||||||
|
|||||||
@@ -517,7 +517,8 @@ enum Rates
|
|||||||
RATE_DURABILITY_LOSS_PARRY,
|
RATE_DURABILITY_LOSS_PARRY,
|
||||||
RATE_DURABILITY_LOSS_ABSORB,
|
RATE_DURABILITY_LOSS_ABSORB,
|
||||||
RATE_DURABILITY_LOSS_BLOCK,
|
RATE_DURABILITY_LOSS_BLOCK,
|
||||||
RATE_MOVESPEED,
|
RATE_MOVESPEED_PLAYER,
|
||||||
|
RATE_MOVESPEED_NPC,
|
||||||
RATE_MISS_CHANCE_MULTIPLIER_TARGET_CREATURE,
|
RATE_MISS_CHANCE_MULTIPLIER_TARGET_CREATURE,
|
||||||
RATE_MISS_CHANCE_MULTIPLIER_TARGET_PLAYER,
|
RATE_MISS_CHANCE_MULTIPLIER_TARGET_PLAYER,
|
||||||
MAX_RATES
|
MAX_RATES
|
||||||
|
|||||||
@@ -575,13 +575,24 @@ void World::LoadConfigSettings(bool reload)
|
|||||||
LOG_ERROR("server.loading", "Rate.Talent.Pet ({}) must be > 0. Using 1 instead.", _rate_values[RATE_TALENT_PET]);
|
LOG_ERROR("server.loading", "Rate.Talent.Pet ({}) must be > 0. Using 1 instead.", _rate_values[RATE_TALENT_PET]);
|
||||||
_rate_values[RATE_TALENT_PET] = 1.0f;
|
_rate_values[RATE_TALENT_PET] = 1.0f;
|
||||||
}
|
}
|
||||||
_rate_values[RATE_MOVESPEED] = sConfigMgr->GetOption<float>("Rate.MoveSpeed", 1.0f);
|
// Controls Player movespeed rate.
|
||||||
if (_rate_values[RATE_MOVESPEED] < 0)
|
_rate_values[RATE_MOVESPEED_PLAYER] = sConfigMgr->GetOption<float>("Rate.MoveSpeed.Player", 1.0f);
|
||||||
|
if (_rate_values[RATE_MOVESPEED_PLAYER] < 0)
|
||||||
{
|
{
|
||||||
LOG_ERROR("server.loading", "Rate.MoveSpeed ({}) must be > 0. Using 1 instead.", _rate_values[RATE_MOVESPEED]);
|
LOG_ERROR("server.loading", "Rate.MoveSpeed.Player ({}) must be > 0. Using 1 instead.", _rate_values[RATE_MOVESPEED_PLAYER]);
|
||||||
_rate_values[RATE_MOVESPEED] = 1.0f;
|
_rate_values[RATE_MOVESPEED_PLAYER] = 1.0f;
|
||||||
}
|
}
|
||||||
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) playerBaseMoveSpeed[i] = baseMoveSpeed[i] * _rate_values[RATE_MOVESPEED];
|
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) playerBaseMoveSpeed[i] = baseMoveSpeed[i] * _rate_values[RATE_MOVESPEED_PLAYER];
|
||||||
|
|
||||||
|
// Controls all npc movespeed rate.
|
||||||
|
_rate_values[RATE_MOVESPEED_NPC] = sConfigMgr->GetOption<float>("Rate.MoveSpeed.NPC", 1.0f);
|
||||||
|
if (_rate_values[RATE_MOVESPEED_NPC] < 0)
|
||||||
|
{
|
||||||
|
LOG_ERROR("server.loading", "Rate.MoveSpeed.NPC ({}) must be > 0. Using 1 instead.", _rate_values[RATE_MOVESPEED_NPC]);
|
||||||
|
_rate_values[RATE_MOVESPEED_NPC] = 1.0f;
|
||||||
|
}
|
||||||
|
for (uint8 i = 0; i < MAX_MOVE_TYPE; ++i) baseMoveSpeed[i] *= _rate_values[RATE_MOVESPEED_NPC];
|
||||||
|
|
||||||
_rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfigMgr->GetOption<float>("Rate.Corpse.Decay.Looted", 0.5f);
|
_rate_values[RATE_CORPSE_DECAY_LOOTED] = sConfigMgr->GetOption<float>("Rate.Corpse.Decay.Looted", 0.5f);
|
||||||
|
|
||||||
_rate_values[RATE_DURABILITY_LOSS_ON_DEATH] = sConfigMgr->GetOption<float>("DurabilityLoss.OnDeath", 10.0f);
|
_rate_values[RATE_DURABILITY_LOSS_ON_DEATH] = sConfigMgr->GetOption<float>("DurabilityLoss.OnDeath", 10.0f);
|
||||||
|
|||||||
Reference in New Issue
Block a user