Ru-MaNGOS  

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

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

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

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 11.10.2011, 19:52   #1
Den
Ученый
 
Регистрация: 10.03.2010
Сообщений: 282
Сказал(а) спасибо: 211
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию effect_confused

Вообщем как получается, если цель находится под SPELL_AURA_MOD_CONFUSE , то после применения маговской абилки Взрывная волна - моб перестает атакавать , а еще после одной Взрывной волны он вообще ходит сам по себе и не атакует цель, но агро держится и его можно бить, и при этом он тупо стоит.

Решение есть:

Код:
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 40c9709..ac0331b 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -8625,10 +8625,13 @@ void Spell::DoSummonCritter(SpellEffectIndex eff_idx, uint32 forceFaction)
 
 void Spell::EffectKnockBack(SpellEffectIndex eff_idx)
 {
-    if(!unitTarget)
+    if (!unitTarget)
         return;
 
-    unitTarget->KnockBackFrom(m_caster,float(m_spellInfo->EffectMiscValue[eff_idx])/10,float(damage)/10);
+    if (unitTarget->HasAuraType(SPELL_AURA_MOD_CONFUSE))
+        unitTarget->RemoveSpellsCausingAura(SPELL_AURA_MOD_CONFUSE);
+
+    unitTarget->KnockBackFrom(m_caster, float(m_spellInfo->EffectMiscValue[eff_idx]) / 10, float(damage) / 10);
 }
 
 void Spell::EffectSendTaxi(SpellEffectIndex eff_idx)
Может есть какое доказательство , что так и было на офе в 3.3.5 версии ?

зы тему не правильно назвал...
Den вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Mayss (11.10.2011)
Старый 12.10.2011, 08:28   #2
MaxXx2021
Ученый
 
Аватар для MaxXx2021
 
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
MaxXx2021 Скоро придёт к известности
По умолчанию

Если память мне не изменяет на оффе после применения волны или еще чего конфуз спадает как после аттаки. А разве взрывная волна не наносит урона?
MaxXx2021 вне форума   Ответить с цитированием
Старый 12.10.2011, 12:44   #3
Den
Ученый
 
Регистрация: 10.03.2010
Сообщений: 282
Сказал(а) спасибо: 211
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Наносит, но не отбрасывает, если цель под конфузом и соответственно получаем баг описанный выше.
Den вне форума   Ответить с цитированием
Старый 12.10.2011, 14:52   #4
MaxXx2021
Ученый
 
Аватар для MaxXx2021
 
Регистрация: 09.03.2010
Адрес: Кыргызстан
Сообщений: 266
Сказал(а) спасибо: 41
Поблагодарили 115 раз(а) в 34 сообщениях
MaxXx2021 Скоро придёт к известности
По умолчанию

Цитата:
Сообщение от Den Посмотреть сообщение
Наносит, но не отбрасывает, если цель под конфузом и соответственно получаем баг описанный выше.
Ну это хак вы сделали... Скорее всего при использовании волны на цель конфуза слетает Движение. Нужно править в movement.
MaxXx2021 вне форума   Ответить с цитированием
Старый 12.10.2011, 17:29   #5
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

Здесь моб не атакует при ауре конфьюза

Код:
void Unit::AttackerStateUpdate (Unit *pVictim, WeaponAttackType attType, bool extra )
{
    if(hasUnitState(UNIT_STAT_CAN_NOT_REACT) || HasFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_PACIFIED) )
        return;
.................................
Не знаю насчет текущего бага, но был баг что после спадания ауры конфьюза, не снимался UNIT_STAT_CONFUSED - который входит в UNIT_STAT_CAN_NOT_REACT

Не срабатывал Finalize в ConfusedMovementGenerator

Код:
template<>
void ConfusedMovementGenerator<Creature>::Finalize(Creature &unit)
{
    unit.clearUnitState(UNIT_STAT_CONFUSED|UNIT_STAT_CONFUSED_MOVE);
}
MaS0n вне форума   Ответить с цитированием
Старый 13.10.2011, 20:50   #6
SilverIce
MaNGOS Dev
 
Регистрация: 14.03.2010
Сообщений: 37
Сказал(а) спасибо: 23
Поблагодарили 49 раз(а) в 16 сообщениях
SilverIce Скоро придёт к известности
По умолчанию

Все происходит благодаря корявости MotionMaster кода.
При снятии конфуз эффекта снимается не ConfusedMovementGenerator, а текущий эффект - EffectMovementGenerator(прыжок).

немного работал над этим, несколько месяцев назад - https://github.com/SilverIce/mangos/tree/ustm_2
SilverIce вне форума   Ответить с цитированием
Старый 14.10.2011, 09:53   #7
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 57
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

"эта... ты не умничай, ты пальцем покажи!"

PS что-то я исходный глюк повторить не могу...
rsa вне форума   Ответить с цитированием
Старый 14.10.2011, 11:26   #8
Den
Ученый
 
Регистрация: 10.03.2010
Сообщений: 282
Сказал(а) спасибо: 211
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Юзаем на моба Дыхание дракона (маг) или Ослепление (Разбойник) , далее маговской абилкой Взрывной волной бьём моба, и вот глюк.
Den вне форума   Ответить с цитированием
Старый 14.10.2011, 18:53   #9
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 57
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

проверил еще раз, глюка не нашел. видать у меня кем-то когда-то починено... но кода вроде вашего в r2 нет.
rsa вне форума   Ответить с цитированием
Старый 14.10.2011, 23:30   #10
Forgotten
Новичок
 
Регистрация: 07.04.2010
Сообщений: 25
Сказал(а) спасибо: 1
Поблагодарили 2 раз(а) в 2 сообщениях
Forgotten На верном пути
По умолчанию

может у вас сначала наносится дамаг(снимается конфьюз) и затем прыжок. тогда проблемы не будет
Forgotten вне форума   Ответить с цитированием
Ответ

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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



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


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