mirror of
https://github.com/mod-playerbots/azerothcore-wotlk.git
synced 2026-01-18 11:25:42 +00:00
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
|
||||
|
||||
#
|
||||
# Rate.MoveSpeed
|
||||
# Description: Movement speed rate.
|
||||
# Rate.MoveSpeed.Player
|
||||
# Description: Movement speed rate for players.
|
||||
# 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
|
||||
|
||||
@@ -517,7 +517,8 @@ enum Rates
|
||||
RATE_DURABILITY_LOSS_PARRY,
|
||||
RATE_DURABILITY_LOSS_ABSORB,
|
||||
RATE_DURABILITY_LOSS_BLOCK,
|
||||
RATE_MOVESPEED,
|
||||
RATE_MOVESPEED_PLAYER,
|
||||
RATE_MOVESPEED_NPC,
|
||||
RATE_MISS_CHANCE_MULTIPLIER_TARGET_CREATURE,
|
||||
RATE_MISS_CHANCE_MULTIPLIER_TARGET_PLAYER,
|
||||
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]);
|
||||
_rate_values[RATE_TALENT_PET] = 1.0f;
|
||||
}
|
||||
_rate_values[RATE_MOVESPEED] = sConfigMgr->GetOption<float>("Rate.MoveSpeed", 1.0f);
|
||||
if (_rate_values[RATE_MOVESPEED] < 0)
|
||||
// Controls Player movespeed rate.
|
||||
_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]);
|
||||
_rate_values[RATE_MOVESPEED] = 1.0f;
|
||||
LOG_ERROR("server.loading", "Rate.MoveSpeed.Player ({}) must be > 0. Using 1 instead.", _rate_values[RATE_MOVESPEED_PLAYER]);
|
||||
_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_DURABILITY_LOSS_ON_DEATH] = sConfigMgr->GetOption<float>("DurabilityLoss.OnDeath", 10.0f);
|
||||
|
||||
Reference in New Issue
Block a user