Показать сообщение отдельно
Старый 24.04.2010, 12:50   #7
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от wk23 Посмотреть сообщение
Вы хоть читали что обозначено под п.5. (Пункт 5)?
Я имею ввиду, что не получается заставить парировать атаки со спины (хотя это противоречит самому понятию парирования, но... близы...). Раньше (мой патч для 3.2.2 мангоса) с этим справлялся
Код:
-        canParry = false;
+        if (!pVictim->HasAura(19263))
+            canParry = false;
Но в данный момент не помагает.

Добавлено:

Судя по всему проблема в MeleeHitOutcome Unit::RollMeleeOutcomeAgainst
Код:
    // check if attack comes from behind, nobody can parry or block if attacker is behind
    if (!pVictim->HasInArc(M_PI_F,this))
    {
        DEBUG_LOG ("RollMeleeOutcomeAgainst: attack came from behind.");
    }
    else
    {
....
Исправляется так:
Код:
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp
index dbb8f3e..1b4ede0 100644
--- a/src/game/Unit.cpp
+++ b/src/game/Unit.cpp
@@ -2579,7 +2579,7 @@ MeleeHitOutcome Unit::RollMeleeOutcomeAgainst (const Unit *pVictim, WeaponAttack
     // parry & block chances
 
     // check if attack comes from behind, nobody can parry or block if attacker is behind
-    if (!pVictim->HasInArc(M_PI_F,this))
+    if (!pVictim->HasInArc(M_PI_F,this) && !pVictim->HasAura(19263))
     {
         DEBUG_LOG ("RollMeleeOutcomeAgainst: attack came from behind.");
     }
Но, это немного нарушает логику работы. Т.е. мы позволяем также и блокировать атаки если имеем ауру 19263, но ведь этот спелл доступен только охотникам, у которых нет блока, собственно не критично.

Обновлен первый пост, теперь парироваться будут атаки со всех сторон

Последний раз редактировалось Insider42; 12.05.2010 в 11:47.
Insider42 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
LordJZ (24.04.2010)