Ru-MaNGOS

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

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

Патчи на рассмотрении Рассматриваемые к принятию патчи

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 20.12.2010, 09:27   #1
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию [patch] Savage Combat

http://www.wowhead.com/spell=51682
http://www.wowhead.com/spell=58413
Заброшенный талант, а точнее его вторая часть работы.
Когда на цель налаживаются такие яды как - Mind-numbing Poison, Deadly Poison, Wound Poison, Crippling Poison, а проще говоря когда цель AURA_STATE_DEADLY_POISON , на неё должен налаживатся дебаф.

патч для удаление дебафа когда c цели сняты эффекты ядов:

PHP код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index f5cc0c7
..27b7666 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -8609,+8609,30 @@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
             break;
         }
         case 
SPELLFAMILY_ROGUE:
+        {
+            
// remove debuf savage combat
+            if (GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE && GetSpellProto()->SpellFamilyFlags UI64LIT(0x0008000010014000))
+            {
+                
// search poison
+                bool found false;
+                
Unit::SpellAuraHolderMap const& auras m_target->GetSpellAuraHolderMap();
+                for(
Unit::SpellAuraHolderMap::const_iterator itr auras.begin(); itr!=auras.end(); ++itr)
+                {
+                    if(
itr->second->GetSpellProto()->Dispel == DISPEL_POISON)
+                    {
+                        
found true;
+                        break;
+                    }
+                }
+
+                if(!
found)
+                {
+                    
m_target->RemoveAurasDueToSpell(58684);      // Savage Combat rank 1
+                    m_target->RemoveAurasDueToSpell(58683);      // Savage Combat rank 2
+                }
+            }
             
// Sprint (skip non player casted spells by category)
-            if (GetSpellProto()->SpellFamilyFlags UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
+            else if (
GetSpellProto()->SpellFamilyFlags UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
             {
                 if(!
apply || m_target->HasAura(58039))      // Glyph of Blurred Speed
                     
spellId1 61922;                       // Sprint (waterwalk)
@@ -8620,+8642,@@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
             else
                 return;
             break;
+        }    
         case 
SPELLFAMILY_HUNTER:
         {
             
// The Beast Within and Bestial Wrath - immunity 
sql для наложение дебафа:

Код:
DELETE FROM `spell_proc_event` WHERE `entry` IN (51682, 58413);
INSERT INTO `spell_proc_event` VALUES
(51682, 0x00,  8, 0x10014000, 0x10014000, 0x10014000, 0x00080000, 0x00080000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000,  0),
(58413, 0x00,  8, 0x10014000, 0x10014000, 0x10014000, 0x00080000, 0x00080000, 0x00080000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0x00000000, 0.000000, 0.000000,  0);

Последний раз редактировалось Den; 20.12.2010 в 09:32.
Den вне форума   Ответить с цитированием
Старый 20.12.2010, 11:32   #2
zergtmn
MaNGOS Dev
 
Аватар для zergtmn
 
Регистрация: 07.03.2010
Сообщений: 314
Сказал(а) спасибо: 30
Поблагодарили 153 раз(а) в 83 сообщениях
zergtmn Обладатель прекрасной аурыzergtmn Обладатель прекрасной ауры
По умолчанию

Цитата:
GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE
дважды проверяешь
Цитата:
if(itr->second->GetSpellProto()->Dispel == DISPEL_POISON)
Здесь надо проверять SpellFamilyName == SPELLFAMILY_ROGUE и flags1 & 0x80000
zergtmn вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (09.03.2011)
Старый 09.03.2011, 20:47   #3
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Выходит вот так ?

PHP код:
diff --git a/src/game/SpellAuras.cpp b/src/game/SpellAuras.cpp
index 67fe692
..9911b3d 100644
--- a/src/game/SpellAuras.cpp
+++ b/src/game/SpellAuras.cpp
@@ -9008,+9008,31 @@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
             break;
         }
         case 
SPELLFAMILY_ROGUE:
+        {
+            
// remove debuf savage combat
+            if (GetSpellProto()->SpellFamilyFlags UI64LIT(0x0008000010014000))
+            {
+                
// search poison
+                bool found false;
+                
Unit::SpellAuraHolderMap const& auras m_target->GetSpellAuraHolderMap();
+                for (
Unit::SpellAuraHolderMap::const_iterator itr auras.begin(); itr != auras.end(); ++itr)
+                {
+                    
uint32 flags1 m_target->HasAuraState(AURA_STATE_DEADLY_POISON);
+                    if (
itr->second->GetSpellProto()->SpellFamilyName == SPELLFAMILY_ROGUE && (flags1 & (0x80000)))
+                    {
+                        
found true;
+                        break;
+                    }
+                }
+
+                if (!
found)
+                {
+                    
m_target->RemoveAurasDueToSpell(58684); // Savage Combat rank 1
+                    m_target->RemoveAurasDueToSpell(58683); // Savage Combat rank 2
+                }
+            }
             
// Sprint (skip non player casted spells by category)
-            if (GetSpellProto()->SpellFamilyFlags UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
+            else if (
GetSpellProto()->SpellFamilyFlags UI64LIT(0x0000000000000040) && GetSpellProto()->Category == 44)
             {
                 if(!
apply || m_target->HasAura(58039))      // Glyph of Blurred Speed
                     
spellId1 61922;                       // Sprint (waterwalk)
@@ -9019,+9042,@@ void SpellAuraHolder::HandleSpellSpecificBoosts(bool apply)
             else
                 return;
             break;
+        }
         case 
SPELLFAMILY_HUNTER:
         {
             switch (
GetId()) 
Den вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Старый 29.07.2011, 21:58   #4
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Примерно в последних 50-ти - 60-ти коммитах, случилось нечто такое магическое , что привело к нерабочему состоянию таланта Жар битвы, а точнее он не стал прокать. Будет время просмотрю, или я отстал от чего-то? О_о Потому что на 11692 ревизии проблем с проком этого таланта нету.
Den вне форума   Ответить с цитированием
Старый 29.07.2011, 22:12   #5
Laise
MaNGOS Dev
 
Аватар для Laise
 
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
Laise На верном пути
По умолчанию

на 11760 тоже не должно быть проблем
Laise вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (30.07.2011)
Старый 29.07.2011, 23:45   #6
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Laise Посмотреть сообщение
на 11760 тоже не должно быть проблем
после 11737 с проками полная и откровенная задница, по крайней мере стаки модификаторов сниматься перестали вообще. 11760 выглядит логично, но судя по коду после него все подобные проки надо прописывать вручную...
rsa вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
KiriX (30.07.2011)
Старый 30.07.2011, 07:42   #7
Laise
MaNGOS Dev
 
Аватар для Laise
 
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
Laise На верном пути
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
после 11737 с проками полная и откровенная задница, по крайней мере стаки модификаторов сниматься перестали вообще. 11760 выглядит логично, но судя по коду после него все подобные проки надо прописывать вручную...
проки для спеллов с зарядами и имеющие SPELL_AURA_ADD_FLAT_MODIFIER, SPELL_AURA_ADD_PCT_MODIFIER, SPELL_AURA_MOD_DAMAGE_PERCENT_DONE должны сниматься без каких либо изменений в базе(после 11761). Все остальные спеллы которые работали ранее тоже без изменений. Надо вручную прописывать только те спеллы которым обязателен прок в конце каста и без зарядов или modifier аур.Ну и если какие то из этих спеллов надо перенести на on-hit.

Последний раз редактировалось Laise; 30.07.2011 в 09:41.
Laise вне форума   Ответить с цитированием
Старый 30.07.2011, 15:41   #8
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Цитата:
Сообщение от Laise Посмотреть сообщение
должны сниматься без каких либо изменений в базе(после 11761). Все остальные спеллы которые работали ранее тоже без изменений.
однако ж не снимаются. проверялось на проке от Огненного шара (сломался четко в 11737) - глыбы можно кидать очередью. да и вообще коммит без подпрыгиваний не компилится, почему - я в бранче отписал...

Последний раз редактировалось rsa; 30.07.2011 в 15:46.
rsa вне форума   Ответить с цитированием
Старый 30.07.2011, 16:58   #9
Laise
MaNGOS Dev
 
Аватар для Laise
 
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
Laise На верном пути
По умолчанию

48108 вообще не имеет ни прок флага(надо добавить в базу) ни зарядов(в коде ему потом заряд добавили).. Кроме этого и еще 2х спеллов, ауры этих 3 типов с зарядами все имеют прок флаги, так что там вряд ли придется добавлять в базу очень много
---
после 11762 должно компилиться
Laise вне форума   Ответить с цитированием
Старый 30.07.2011, 17:43   #10
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

по issues в R2 таких спеллов явно больше десятка, а по моим прикидкам - штук 40. я еще сделал вручную Shadow Trance - но так мы до ручки докатимся. "работало же!"
rsa вне форума   Ответить с цитированием
Старый 30.07.2011, 18:01   #11
Laise
MaNGOS Dev
 
Аватар для Laise
 
Регистрация: 09.03.2010
Сообщений: 33
Сказал(а) спасибо: 27
Поблагодарили 26 раз(а) в 11 сообщениях
Laise На верном пути
По умолчанию

Цитата:
Сообщение от rsa Посмотреть сообщение
по issues в R2 таких спеллов явно больше десятка, а по моим прикидкам - штук 40. я еще сделал вручную Shadow Trance - но так мы до ручки докатимся. "работало же!"
в Aura::HandleAddModifier вроде список, там где заряды добавили, остальное надо по 1 отлавливать..и как бы да, неплохо бы id того что туда не входит подкинуть((откуда там 40?)
edit: в 11764 добавлено из Aura::HandleAddModifier
---
можно переехать в приват/комменты к коммитам? а то тут немного не по теме..

Последний раз редактировалось Laise; 30.07.2011 в 18:22.
Laise вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[10767] Show value in combat logs. newsbot CMaNGOS Commits 0 21.11.2010 11:11
[10651] Fixed combat log being bugged by pets without name newsbot CMaNGOS Commits 0 26.10.2010 20:40
[10336] Server side checks for casting non-combat spells in combat. newsbot CMaNGOS Commits 0 10.08.2010 06:11
[9867] Prevent another potion drink until combat end. newsbot CMaNGOS Commits 0 11.05.2010 10:50
[9774] Fix periodic damage combat log displaying newsbot CMaNGOS Commits 0 22.04.2010 11:10


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


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