|
Баг-репорты Описываем проблемы и ошибки работы ядра |
|
Опции темы | Поиск в этой теме | Опции просмотра |
21.12.2010, 10:50 | #1 |
Почетный флудер
Старожил
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
|
Алгоритм проверки TargetAuraState в CheckCast()
В соответствии с проведенными разборками, в настоящее время алгоритм проверки
на TargetAuraStateNot и targetAuraSpell в функции CheckCast() неверен. Там еще и ошибка в возвращаемом коде, но это к делу не относится. Рассмотрим на примере спеллов 72176 - 72202 - 72178 (спеллы Саурфанга и его кровавых бестий). В соответствии с имеющимся сниффом, на Саурфанге висит 72178, на бестиях 72176. 72176 при успешной атаке (требует записи в spell_proc_event, но это другой вопрос) триггерит 72202, который имеет имеет 1й думмиэффект с целью TARGET_SCRIPT и требование TargetAura 72178 В соответствии с текущим кодом, первичной целью спелла будет this (см. код Unit::HandleProcTriggerSpellAuraProc) Реальная цель думмиэффекта - Саурфанг и он нормально выбирается (при наличии записи в spell_script_target). Но до момента выбора Саурфанга в качестве цели мы в функции CheckCast() не добираемся, поскольку обламываемся на Код:
// Target aura req check if need if(m_spellInfo->targetAuraSpell && !target->HasAura(m_spellInfo->targetAuraSpell)) return SPELL_FAILED_CASTER_AURASTATE; Точно такая же ситуация (в теории, примеров я пока не нашел) и с целями с ограничением TargetAuraStateNot. Решение: https://github.com/rsa/mangos/commit...d0ce1a87924362 Сразу говорю, решение не очень красивое, и достаточно слабо отттестировано. Если кто предложит лучше - буду рад. |
2 пользователя(ей) сказали cпасибо: | KiriX (21.12.2010), Konctantin (24.12.2010) |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Алгоритм DistributeArenaPoints() | xmolex | Прочая документация | 1 | 16.10.2010 14:48 |
Bash скрипт проверки сервера на зависание | deadangel | Tools | 11 | 06.06.2010 13:26 |