Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Запросы (http://mangos.ytdb.ru/forumdisplay.php?f=7)
-   -   [Spell 1038] Длань спасения (http://mangos.ytdb.ru/showthread.php?t=427)

Nordway 23.03.2010 19:19

[Spell 1038] Длань спасения
 
Разбойники и друиды жалуются на этот спелл, т.к. он выводит их из стелса.

Есть у кого-нибудь временная затычка этой дыры?:)

selector 23.03.2010 20:28

Вот, пробуй. Также не дает вывод из стелса спелом http://ru.wowhead.com/?spell=51690

Код:

--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -1153,7 +1153,7 @@ void Spell::DoSpellHitOnUnit(Unit *unit, const uint32 effectMask)
            }
 
            // not break stealth by cast targeting
-            if (!(m_spellInfo->AttributesEx & SPELL_ATTR_EX_NOT_BREAK_STEALTH))
+            if (!(m_spellInfo->AttributesEx & SPELL_ATTR_EX_NOT_BREAK_STEALTH) && m_spellInfo->Id != 51690 && m_spellInfo->Id != 53055)
                unit->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);
 
            // can cause back attack (if detected), stealth removed at Spell::cast if spell break it


Laise 23.03.2010 20:47

&& m_spellInfo->Id != 3600
можно туда же

PSZ 13.04.2010 17:13

И еще
m_spellInfo->Id != 44416 && m_spellInfo->Id != 32835

Вообще, по-моему, все спеллы, у которых есть SPELL_EFFECT_MODIFY_THREAT_PERCENT выкидывают из инвиза (researched by Stoun).

evilstar 31.07.2010 00:02

Код:

            // not break stealth by cast targeting
            if (!(m_spellInfo->AttributesEx & SPELL_ATTR_EX_NOT_BREAK_STEALTH) && !(m_spellInfo->Effect &  SPELL_EFFECT_MODIFY_THREAT_PERCENT))
                unit->RemoveSpellsCausingAura(SPELL_AURA_MOD_STEALTH);

тогда может так?

MaS0n 31.07.2010 10:36

Не, не, не, так точно нельзя, даже по 2 причинам

1) в Effect используются индексы, поэтому корректна будет только запись Effect[i], где i = SpellEffectIndex(EFFECT_INDEX_0, EFFCT_INDEX_1, EFFECT_INDEX_2), т.е чтоб найти нужный эффект - обязательно надо делать цикл

2) & - битовая операция, а для конкретного номера эффекта это не требуется, т.е надо использовать ==

пример в кач-ве битового И
Код:

a = 12  // hex - 00001100
b = 8    // hex - 00001000

побитово начинаем применять
a & b = 1 AND 1 = 1, 1 AND 0 = 0, 0 AND 0 = 0, 0 AND 0 = 0, итог - 00001000 = 8



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

ru-mangos.ru - Русское сообщество MaNGOS