Insider42
24.09.2010, 17:16
У данной способность есть 2 проблемы:
1) способность предотвращает автоатаку, а не должна.
2) война невозможно обезоружить во время действия способности
Пока придумал решение только для 1ой проблемы
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 0ed25a0..1b9e888 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -7875,29 +7875,10 @@ void Aura::HandleAuraModAllCritChance(bool apply, bool Real)
((Player*)target)->UpdateAllSpellCritChances();
}
-void Aura::HandleAllowOnlyAbility(bool apply, bool Real)
+void Aura::HandleAllowOnlyAbility(bool /*apply*/, bool Real)
{
if(!Real)
return;
-
- Unit *target = GetTarget();
-
- if(apply)
- {
- target->setAttackTimer(BASE_ATTACK,m_duration);
- target->setAttackTimer(RANGED_ATTACK,m_duration);
- target->setAttackTimer(OFF_ATTACK,m_duration);
- }
- else
- {
- target->resetAttackTimer(BASE_ATTACK);
- target->resetAttackTimer(RANGED_ATTACK);
- target->resetAttackTimer(OFF_ATTACK);
- }
-
- target->UpdateDamagePhysical(BASE_ATTACK);
- target->UpdateDamagePhysical(RANGED_ATTACK);
- target->UpdateDamagePhysical(OFF_ATTACK);
}
void Aura::SetAuraMaxDuration( int32 duration )
оно же патчем http://paste2.org/p/1002472
Т.е. проблема будет решена удалением лишнего кода.
1) способность предотвращает автоатаку, а не должна.
2) война невозможно обезоружить во время действия способности
Пока придумал решение только для 1ой проблемы
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 0ed25a0..1b9e888 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -7875,29 +7875,10 @@ void Aura::HandleAuraModAllCritChance(bool apply, bool Real)
((Player*)target)->UpdateAllSpellCritChances();
}
-void Aura::HandleAllowOnlyAbility(bool apply, bool Real)
+void Aura::HandleAllowOnlyAbility(bool /*apply*/, bool Real)
{
if(!Real)
return;
-
- Unit *target = GetTarget();
-
- if(apply)
- {
- target->setAttackTimer(BASE_ATTACK,m_duration);
- target->setAttackTimer(RANGED_ATTACK,m_duration);
- target->setAttackTimer(OFF_ATTACK,m_duration);
- }
- else
- {
- target->resetAttackTimer(BASE_ATTACK);
- target->resetAttackTimer(RANGED_ATTACK);
- target->resetAttackTimer(OFF_ATTACK);
- }
-
- target->UpdateDamagePhysical(BASE_ATTACK);
- target->UpdateDamagePhysical(RANGED_ATTACK);
- target->UpdateDamagePhysical(OFF_ATTACK);
}
void Aura::SetAuraMaxDuration( int32 duration )
оно же патчем http://paste2.org/p/1002472
Т.е. проблема будет решена удалением лишнего кода.