[patch/dev] Deterrence
Я уже как-то занимался данным спеллом, но старый вариант моего патча стал некорректен из-за изменений в механике работы этого спелла.
то что было реализовано: 1. deflect не должен срабатывать на дальние атаки, вместо этого используется SPELL_AURA_MOD_ATTACKER_RANGED_HIT_CHANCE 2. должен также триггерить 67801, который реализует п.1. 3. вражеские спеллы должны отражаться с любой стороны 4. спеллы не должны заменять друг друга 5. с этой способностью должны парироваться атаки с тыла 6. спелл должен отражать даже _уже_ выпущенные в охотника заклинания Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp 1. Необходимо разобраться для чего нужна aura_288. Мы её не используем 2. Возможно не во всех случаях выдаются верные сообщения (судя по словам некоторых игроков с оффа в некоторых случаях пишет Уворот, хотя у нас выдает Отражение) 3. Также в п.6. реализованной части не проверяется наличие экспертизы у атакующего (а нужно ли?). Т.е. если вы уже выстрелили и охотник после этого включает Сдерживание, то он 100% отклонит вашу атаку, сколько бы у вас ни было экспертизы или прочей фигни. 4. Возможно не все спеллы (например АОЕ) должны отражаться |
Последний чанк кода (умножение на 100) неправилен, в ауре и так умноженные на 100 значения. Если нет паррирования, то либо персонаж стоит спиной, либо не выучен скилл паррирования, либо не максимален параметр дефа.
|
Цитата:
1) навык максимален 2) парирование изучено 3) оружие одето 4) не парирует как спереди так и сзади тут уж я предусмотрел все возможные варианты, парирования нет и всё :( |
Разобрался я с этим парированием, новая версия патча в первом посту
|
Как ни странно, но код для п.5. не выполняет то, что должен. Атаки всё также проходят с тыла :/ есть идеи?
|
Код:
- // only if in front |
Вы хоть читали что обозначено под п.5. (Пункт 5)?
Я имею ввиду, что не получается заставить парировать атаки со спины (хотя это противоречит самому понятию парирования, но... близы...). Раньше (мой патч для 3.2.2 мангоса) с этим справлялся Код:
- canParry = false; Добавлено: Судя по всему проблема в MeleeHitOutcome Unit::RollMeleeOutcomeAgainst Код:
// check if attack comes from behind, nobody can parry or block if attacker is behind Код:
diff --git a/src/game/Unit.cpp b/src/game/Unit.cpp Обновлен первый пост, теперь парироваться будут атаки со всех сторон |
Обновил патч, теперь будет корректно работать отражение уже запущенных спеллов после изменений ревизии 9784 (написал по памяти, мог и промахнуться)
|
Текущее время: 19:15. Часовой пояс GMT +3. |
ru-mangos.ru - Русское сообщество MaNGOS