Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

Важная информация

Баг-репорты Описываем проблемы и ошибки работы ядра

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.12.2010, 10:50   #1
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию Алгоритм проверки 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;
- требуемая по DBC аура висит не на первичной цели, а на реальной цели из spell_script_target. А проверка идет до выборки реальной цели.

Точно такая же ситуация (в теории, примеров я пока не нашел) и с целями с ограничением
TargetAuraStateNot.
Решение:
https://github.com/rsa/mangos/commit...d0ce1a87924362
Сразу говорю, решение не очень красивое, и достаточно слабо отттестировано. Если кто предложит лучше - буду рад.
rsa вне форума   Ответить с цитированием
2 пользователя(ей) сказали cпасибо:
KiriX (21.12.2010), Konctantin (24.12.2010)
 


Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Алгоритм DistributeArenaPoints() xmolex Прочая документация 1 16.10.2010 14:48
Bash скрипт проверки сервера на зависание deadangel Tools 11 06.06.2010 13:26


Текущее время: 18:32. Часовой пояс GMT +3.


ru-mangos.ru - Русское сообщество MaNGOS
Главная цель проекта MaNGOS - обучающая, поэтому разрешается использовать исходный код и собранную программу только для образовательных целей.
Вы не можете использовать MaNGOS в коммерческих целях, а также не разрешается устанавливать публичные серверы на базе MaNGOS.
Любое копирование материалов, информации в любом виде без указания источника - форума Ru-MaNGOS будет считаться нарушением авторских прав и нарушением Уголовного Кодекса РФ, ст. 146 ст. 147.
Перевод vBulletin: zCarot