Ru-MaNGOS

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

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

Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.

Повод для гордости.

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 07.05.2010, 08:58   #1
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию [9863][patch] SpellEffect SummonPhantasm

Реализация spell effect 93. Используется, например, в http://www.wowhead.com/spell=61851 , http://www.wowhead.com/spell=62196 и http://www.wowhead.com/spell=58836 .
Что должен делать этот эффект: сбрасывать кастера из выделения у всех игроков выделивших его. Эффект схож на уход в невидимость, только можно выделить вновь.
Автор идеи: я
Помощь в реализации: MaS0n

Код:
diff --git a/src/game/Spell.h b/src/game/Spell.h
index 85e8def..404da73 100644
--- a/src/game/Spell.h
+++ b/src/game/Spell.h
@@ -332,6 +332,7 @@ class Spell
         void EffectDispelMechanic(SpellEffectIndex eff_idx);
         void EffectSummonDeadPet(SpellEffectIndex eff_idx);
         void EffectSummonAllTotems(SpellEffectIndex eff_idx);
+        void EffectSummonPhantasm (SpellEffectIndex eff_idx);
         void EffectDestroyAllTotems(SpellEffectIndex eff_idx);
         void EffectDurabilityDamage(SpellEffectIndex eff_idx);
         void EffectSkill(SpellEffectIndex eff_idx);
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index a6e75c9..28640fd 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -153,7 +153,7 @@ pEffect SpellEffects[TOTAL_SPELL_EFFECTS]=
     &Spell::EffectKillCreditPersonal,                       // 90 SPELL_EFFECT_KILL_CREDIT              Kill credit but only for single person
     &Spell::EffectUnused,                                   // 91 SPELL_EFFECT_THREAT_ALL               one spell: zzOLDBrainwash
     &Spell::EffectEnchantHeldItem,                          // 92 SPELL_EFFECT_ENCHANT_HELD_ITEM
-    &Spell::EffectUnused,                                   // 93 SPELL_EFFECT_93 (old SPELL_EFFECT_SUMMON_PHANTASM)
+    &Spell::EffectSummonPhantasm,                           // 93 SPELL_EFFECT_93
     &Spell::EffectSelfResurrect,                            // 94 SPELL_EFFECT_SELF_RESURRECT
     &Spell::EffectSkinning,                                 // 95 SPELL_EFFECT_SKINNING
     &Spell::EffectCharge,                                   // 96 SPELL_EFFECT_CHARGE
@@ -7307,6 +7307,16 @@ void Spell::EffectDestroyAllTotems(SpellEffectIndex /*eff_idx*/)
         m_caster->CastCustomSpell(m_caster, 39104, &mana, NULL, NULL, true);
 }
 
+void Spell::EffectSummonPhantasm (SpellEffectIndex /* eff_idx */)
+{
+    if (m_caster->GetTypeId() != TYPEID_PLAYER)
+        return;
+
+    WorldPacket data(SMSG_CLEAR_TARGET, 8);
+    data << uint64(m_caster->GetGUID());
+    m_caster->SendMessageToSet(&data, false);
+}
+
 void Spell::EffectDurabilityDamage(SpellEffectIndex eff_idx)
 {
     if(!unitTarget || unitTarget->GetTypeId() != TYPEID_PLAYER)
либо качаем тут http://paste2.org/p/815458

Последний раз редактировалось Insider42; 07.05.2010 в 13:09.
Insider42 вне форума  
2 пользователя(ей) сказали cпасибо:
KiriX (07.05.2010), Vladimir (11.05.2010)
Старый 07.05.2010, 11:38   #2
MaS0n
Модератор
 
Регистрация: 09.03.2010
Адрес: dev/null
Сообщений: 126
Сказал(а) спасибо: 44
Поблагодарили 111 раз(а) в 47 сообщениях
MaS0n Скоро придёт к известностиMaS0n Скоро придёт к известности
Отправить сообщение для MaS0n с помощью ICQ
По умолчанию

У близов все куда проще
Код:
void Spell::EffectSummonPhantasm (SpellEffectIndex /* eff_idx */)
{
    if (m_caster->GetTypeId() != TYPEID_PLAYER)
        return;

    WorldPacket data(SMSG_CLEAR_TARGET, 8);
    data << uint64(m_caster->GetGUID());
    m_caster->SendMessageToSet(&data, false);
}
Тока что проверил - сбрасывает таргеты у всех, кто в радиусе видимости кастера

Правда для Зеркального Изображения например - нужно специальное добавление кастера в список целей, т.к в спелле таргетов нету)
ПС : а этот эффект только для игроков работает? вообще судя по пакету - можно сбрасывать выделение с любой цели, не только игроков

Последний раз редактировалось MaS0n; 07.05.2010 в 11:42.
MaS0n вне форума  
3 пользователя(ей) сказали cпасибо:
Insider42 (07.05.2010), KiriX (07.05.2010), Vladimir (11.05.2010)
Старый 11.05.2010, 06:43   #3
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Спел http://www.wowhead.com/spell=58836 имеет все 0 для выбора целей так что стоит еще добавить в switch для выбора кастера по эффекту

Ну и моглибы нормально назвать эффект - хотябы по аналогии с названием в wowhead.

Не вижу почему такой эффект не может кастаться мобом.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
Старый 11.05.2010, 07:10   #4
Vladimir
MaNGOS Dev
 
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
Vladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небесVladimir Как свет с небес
По умолчанию

Добавлено в [9863]. Спасибо.
__________________
Так как устал объяснять знайте ICQ не пользуюсь
Vladimir вне форума  
2 пользователя(ей) сказали cпасибо:
Insider42 (11.05.2010)
 


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[9863] Implement SPELL_EFFECT_BREAK_PLAYER_TARGETING (93) newsbot CMaNGOS Commits 0 11.05.2010 07:11


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


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