Transcription ArgusCore lot 6 : fondations engine
- Aura 373 (MOD_SPEED_NO_CONTROL) implementee dans UpdateSpeed : vitesse verrouillee des dash (Roulade moine x2.75/x3.75, Fel Rush) au lieu d un comportement non cape [aa54261d] - AuraScript::_Validate accepte SPELL_EFFECT_APPLY_AURA_ON_PET dans les 7 verifications d effets d aura [d308bf0b] Methodologie : 7 commits engine analyses, 5 N/A justifies (systemes absents ou deja presents chez nous).
This commit is contained in:
@@ -8783,8 +8783,16 @@ void Unit::UpdateSpeed(UnitMoveType mtype)
|
||||
|
||||
if (mtype == MOVE_RUN)
|
||||
{
|
||||
// aura 373 SPELL_AURA_MOD_SPEED_NO_CONTROL : deplacement force (charge/dash),
|
||||
// remplace entierement la vitesse dirigee par le joueur (ne fait pas que la plancher).
|
||||
// Montant en POURCENTAGE (cf. Roll moine 107427/109131 : 175/275 -> x2.75/x3.75),
|
||||
// contrairement a l aura 437 dont le montant est une valeur absolue en yards/s.
|
||||
// Prioritaire sur le plancher 437 (sinon rien ne capait l acceleration joueur
|
||||
// pendant un dash type Fel Rush). [porte d ArgusCore aa54261d]
|
||||
if (int32 lockedSpeedMod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_SPEED_NO_CONTROL))
|
||||
speed = 1.0f + lockedSpeedMod / 100.0f;
|
||||
// force minimum speed rate @ aura 437 SPELL_AURA_MOD_MINIMUM_SPEED_RATE
|
||||
if (int32 minSpeedMod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_MINIMUM_SPEED_RATE))
|
||||
else if (int32 minSpeedMod = GetMaxPositiveAuraModifier(SPELL_AURA_MOD_MINIMUM_SPEED_RATE))
|
||||
{
|
||||
float minSpeed = minSpeedMod / (IsControlledByPlayer() ? playerBaseMoveSpeed[mtype] : baseMoveSpeed[mtype]);
|
||||
if (speed < minSpeed)
|
||||
|
||||
@@ -449,7 +449,7 @@ enum AuraType : uint32
|
||||
SPELL_AURA_SET_FAIR_FAR_CLIP = 370, // Overrides client's View Distance setting to max("Fair", current_setting)
|
||||
SPELL_AURA_371 = 371,
|
||||
SPELL_AURA_MOUNTED_VISUAL = 372,
|
||||
SPELL_AURA_MOD_SPEED_NO_CONTROL = 373, // NYI
|
||||
SPELL_AURA_MOD_SPEED_NO_CONTROL = 373,
|
||||
SPELL_AURA_MODIFY_FALL_DAMAGE_PCT = 374,
|
||||
SPELL_AURA_375 = 375, // Not used in 7.3.5
|
||||
SPELL_AURA_MOD_CURRENCY_GAIN_FROM_SOURCE = 376, // Not used in 7.3.5
|
||||
|
||||
@@ -754,15 +754,15 @@ SpellEffectInfo const* SpellScript::GetEffectInfo(SpellEffIndex effIndex) const
|
||||
bool AuraScript::_Validate(SpellInfo const* entry)
|
||||
{
|
||||
for (auto itr = DoCheckAreaTarget.begin(); itr != DoCheckAreaTarget.end(); ++itr)
|
||||
if (!entry->HasAreaAuraEffect() && !entry->HasEffect(SPELL_EFFECT_PERSISTENT_AREA_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA))
|
||||
if (!entry->HasAreaAuraEffect() && !entry->HasEffect(SPELL_EFFECT_PERSISTENT_AREA_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET))
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `DoCheckAreaTarget` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = OnDispel.begin(); itr != OnDispel.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `OnDispel` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = AfterDispel.begin(); itr != AfterDispel.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `AfterDispel` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = OnEffectApply.begin(); itr != OnEffectApply.end(); ++itr)
|
||||
@@ -826,7 +826,7 @@ bool AuraScript::_Validate(SpellInfo const* entry)
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` Effect `%s` of script `%s` did not match dbc effect data - handler bound to hook `OnEffectSplit` of AuraScript won't be executed", entry->Id, itr->ToString().c_str(), m_scriptName->c_str());
|
||||
|
||||
for (auto itr = DoCheckProc.begin(); itr != DoCheckProc.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `DoCheckProc` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = DoCheckEffectProc.begin(); itr != DoCheckEffectProc.end(); ++itr)
|
||||
@@ -834,15 +834,15 @@ bool AuraScript::_Validate(SpellInfo const* entry)
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` Effect `%s` of script `%s` did not match dbc effect data - handler bound to hook `DoCheckEffectProc` of AuraScript won't be executed", entry->Id, itr->ToString().c_str(), m_scriptName->c_str());
|
||||
|
||||
for (auto itr = DoPrepareProc.begin(); itr != DoPrepareProc.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `DoPrepareProc` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = OnProc.begin(); itr != OnProc.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `OnProc` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = AfterProc.begin(); itr != AfterProc.end(); ++itr)
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasAreaAuraEffect())
|
||||
if (!entry->HasEffect(SPELL_EFFECT_APPLY_AURA) && !entry->HasEffect(SPELL_EFFECT_APPLY_AURA_ON_PET) && !entry->HasAreaAuraEffect())
|
||||
TC_LOG_ERROR("scripts", "Spell `%u` of script `%s` does not have apply aura effect - handler bound to hook `AfterProc` of AuraScript won't be executed", entry->Id, m_scriptName->c_str());
|
||||
|
||||
for (auto itr = OnEffectProc.begin(); itr != OnEffectProc.end(); ++itr)
|
||||
|
||||
Reference in New Issue
Block a user