Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Патчи > Отвергнутые патчи

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

Отвергнутые патчи Патчи, отвергнутые от приёма в GIT

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 23.10.2010, 22:06   #1
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию [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:
virusav вне форума   Ответить с цитированием
Старый 23.10.2010, 23:16   #2
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Чтобы не хачить десятки таких спеллов лучше сразу сделать поддержку spell_script_target для этого таргета.
Кстати, уже обсуждалось.
zergtmn вне форума   Ответить с цитированием
Старый 13.12.2010, 19:59   #3
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Патч больше не нужен, достаточно:
Код:
DELETE FROM `spell_script_target` WHERE `entry`=51343;
INSERT INTO `spell_script_target` VALUES
(51343, 1, 28077),
(51343, 1, 28095);
virusav вне форума   Ответить с цитированием
Ответ


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

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



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


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