Баг: с переходом на клиент 3.2.2а при использовании полётной
формы скороть передвижения на земле увеличивается, а скорость полёта нет
- остаётся дефолтной.
Причина/проблема: в том, что раньше
накладывании ауры полёта накладывалась невидимая аура ускорения
передвижения, в которой использовался тип ауры: SPELL_AURA_MOD_SPEED_FLIGHT
= 208, сейчас же в этих же спеллах используется другой тип ауры - SPELL_AURA_MOD_SPEED_MOUNTED
= 206. Собсна, я и переделал немного код под реалии последних
версий клиента...
Автор: KiriX
Под ревизию 8649.
Code
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 43f9e5a..e5fb51c 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -256,7 +256,7 @@ pAuraHandler AuraHandler[TOTAL_AURAS]=
&Aura::HandleNoImmediateEffect, //203 SPELL_AURA_MOD_ATTACKER_MELEE_CRIT_DAMAGE implemented in Unit::CalculateMeleeDamage and Unit::CalculateSpellDamage
&Aura::HandleNoImmediateEffect, //204 SPELL_AURA_MOD_ATTACKER_RANGED_CRIT_DAMAGE implemented in Unit::CalculateMeleeDamage and Unit::CalculateSpellDamage
&Aura::HandleNULL, //205 vulnerable to school dmg?
- &Aura::HandleNULL, //206 SPELL_AURA_MOD_SPEED_MOUNTED
+ &Aura::HandleAuraModIncreaseFlightSpeed, //206 SPELL_AURA_MOD_SPEED_MOUNTED
&Aura::HandleAuraModIncreaseFlightSpeed, //207 SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED
&Aura::HandleAuraModIncreaseFlightSpeed, //208 SPELL_AURA_MOD_SPEED_FLIGHT, used only in spell: Flight Form (Passive)
&Aura::HandleAuraModIncreaseFlightSpeed, //209 SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index 7e6f7f9..e3ce0a4 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -9950,7 +9950,7 @@ void Unit::UpdateSpeed(UnitMoveType mtype, bool forced)
if (IsMounted()) // Use on mount auras
main_speed_mod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_INCREASE_FLIGHT_SPEED);
else // Use not mount (shapeshift for example) auras (should stack)
- main_speed_mod = GetTotalAuraModifier(SPELL_AURA_MOD_SPEED_FLIGHT);
+ main_speed_mod = GetTotalAuraModifier(SPELL_AURA_MOD_SPEED_FLIGHT) + GetTotalAuraModifier(SPELL_AURA_MOD_SPEED_MOUNTED);
stack_bonus = GetTotalAuraMultiplier(SPELL_AURA_MOD_FLIGHT_SPEED_ALWAYS);
non_stack_bonus = (100.0 + GetMaxPositiveAuraModifier(SPELL_AURA_MOD_FLIGHT_SPEED_NOT_STACK))/100.0f;