23.03.2010, 20:28 | #2 |
Пользователь
Регистрация: 12.03.2010
Сообщений: 64
Сказал(а) спасибо: 23
Поблагодарили 10 раз(а) в 5 сообщениях
|
Вот, пробуй. Также не дает вывод из стелса спелом 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 |
23.03.2010, 20:47 | #3 |
MaNGOS Dev
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
|
&& m_spellInfo->Id != 3600
можно туда же |
13.04.2010, 17:13 | #4 |
Ученый
Регистрация: 07.03.2010
Сообщений: 138
Сказал(а) спасибо: 200
Поблагодарили 143 раз(а) в 49 сообщениях
|
И еще
m_spellInfo->Id != 44416 && m_spellInfo->Id != 32835 Вообще, по-моему, все спеллы, у которых есть SPELL_EFFECT_MODIFY_THREAT_PERCENT выкидывают из инвиза (researched by Stoun). |
31.07.2010, 00:02 | #5 |
Супер-модератор
|
Код:
// 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);
__________________
Теперь и в Бете Warlords of Draenor & HotS ! |
31.07.2010, 10:36 | #6 |
Модератор
|
Не, не, не, так точно нельзя, даже по 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 |
Пользователь сказал cпасибо: | evilstar (01.08.2010) |