|
Отвергнутые патчи Патчи, отвергнутые от приёма в GIT |
|
Опции темы | Поиск в этой теме | Опции просмотра |
23.10.2010, 22:06 | #1 |
Администратор
|
[patch]Эффект страха Острокола[51343]
Спелл 51343 не должен кастоваться на игроков и их петов, только на враждебных нпц:
Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index c59658e..6ae146a 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -1789,15 +1789,32 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList& break; case TARGET_AREAEFFECT_INSTANT: { - SpellTargets targetB = SPELL_TARGETS_AOE_DAMAGE; - // Select friendly targets for positive effect - if (IsPositiveEffect(m_spellInfo->Id, effIndex)) - targetB = SPELL_TARGETS_FRIENDLY; + // Razorpine's Fear Effect + if (m_spellInfo->Id == 51343) + { + targetUnitMap.clear(); + std::list<Creature*> tempTargetUnitMap; + MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck u_check(m_caster, m_caster, radius); + MaNGOS::CreatureListSearcher<MaNGOS::AnyUnfriendlyUnitInObjectRangeCheck> searcher(tempTargetUnitMap, u_check); + Cell::VisitAllObjects(m_caster, searcher, radius); + for(std::list<Creature*>::iterator iter = tempTargetUnitMap.begin(); iter != tempTargetUnitMap.end(); ++iter) + { + if (!((*iter)->IsPet() && (*iter)->GetOwner()->GetTypeId() == TYPEID_PLAYER)) + targetUnitMap.push_back((*iter)); + } + } + else + { + SpellTargets targetB = SPELL_TARGETS_AOE_DAMAGE; + // Select friendly targets for positive effect + if (IsPositiveEffect(m_spellInfo->Id, effIndex)) + targetB = SPELL_TARGETS_FRIENDLY; - FillAreaTargets(targetUnitMap, m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_DEST_CENTER, targetB); + FillAreaTargets(targetUnitMap, m_caster->GetPositionX(), m_caster->GetPositionY(), radius, PUSH_DEST_CENTER, targetB); - // exclude caster - targetUnitMap.remove(m_caster); + // exclude caster + targetUnitMap.remove(m_caster); + } break; } case TARGET_AREAEFFECT_CUSTOM: |
23.10.2010, 23:16 | #2 |
MaNGOS Dev
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
|
Чтобы не хачить десятки таких спеллов лучше сразу сделать поддержку spell_script_target для этого таргета.
Кстати, уже обсуждалось. |
13.12.2010, 19:59 | #3 |
Администратор
|
Патч больше не нужен, достаточно:
Код:
DELETE FROM `spell_script_target` WHERE `entry`=51343; INSERT INTO `spell_script_target` VALUES (51343, 1, 28077), (51343, 1, 28095); |