Ru-MaNGOS

Вернуться   Ru-MaNGOS > Ядро > Баг-репорты

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

Баг-репорты Описываем проблемы и ошибки работы ядра

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
Старый 04.12.2010, 23:08   #1
VENOM
Новичок
 
Аватар для VENOM
 
Регистрация: 09.03.2010
Сообщений: 26
Сказал(а) спасибо: 18
Поблагодарили 3 раз(а) в 3 сообщениях
VENOM На верном пути
По умолчанию wrathful gladiator's libram of fortitude

mangos rev 10786

on wowhead its has diffrent stat

Your crusader strike ability also grants you 204 attack power for 10 sec.

http://www.wowhead.com/spell=60636

Yes it is working. but it also grants 204 attack power to the opponent. and agro mobs too.

it gives you 204 attack power and also it gives 204 attack power to the enemy you ar fighting with

Последний раз редактировалось VENOM; 04.12.2010 в 23:21.
VENOM вне форума   Ответить с цитированием
Старый 21.12.2010, 20:18   #2
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Касается не только паладина http://www.wowhead.com/spell=60555
Исправляет срабатывание прока на жертву...

Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 66d8c7d..c39708b 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -6431,6 +6431,9 @@ bool Spell::CheckTarget( Unit* target, SpellEffectIndex eff )
             return false;
     }
 
+   if (m_spellInfo->Id == 60555 && m_spellInfo->EffectImplicitTargetA[eff] != TARGET_SELF)
+        return false;
+
     // Check targets for LOS visibility (except spells without range limitations )
     switch(m_spellInfo->Effect[eff])
     {
add
Такая же беда и с Chains of Ice, срабатывает ещё и на себя.

Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index c77a070..6ba2d33 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -6430,7 +6430,11 @@ bool Spell::CheckTarget( Unit* target, SpellEffectIndex eff )
         if(((Player*)target)->isGameMaster() && !IsPositiveSpell(m_spellInfo->Id))
             return false;
     }
-
+
+    // prevent proc Chains of Ice on self
+    if (m_spellInfo->Id == 45524 && m_spellInfo->EffectImplicitTargetA[eff] == TARGET_SELF)
+        return false;
+
     // Check targets for LOS visibility (except spells without range limitations )
     switch(m_spellInfo->Effect[eff])
     {

Последний раз редактировалось Den; 21.12.2010 в 22:24.
Den вне форума   Ответить с цитированием
Старый 22.12.2010, 08:03   #3
Warlord123
Пользователь
 
Регистрация: 09.03.2010
Сообщений: 37
Сказал(а) спасибо: 4
Поблагодарили 63 раз(а) в 21 сообщениях
Warlord123 Скоро придёт к известности
По умолчанию

Таких заклинаний не так мало.
60544 Savage Aggression
60547 Hateful Aggression
60549 Deadly Aggression
60551 Furious Gladiator's Libram of Fortitude
60553 Relentless Aggression
60555 LK Arena 6 Aggression
60565 Savage Magic
60566 Hateful Magic
60567 Deadly Magic
60568 Furious Gladiator's Idol of Steadfastness
60569 Relentless Survival
60570 LK Arena 6 Magic
Warlord123 вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (22.12.2010)
Старый 22.12.2010, 09:31   #4
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index c77a070..9c9dd00 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -6430,7 +6430,33 @@ bool Spell::CheckTarget( Unit* target, SpellEffectIndex eff )
         if(((Player*)target)->isGameMaster() && !IsPositiveSpell(m_spellInfo->Id))
             return false;
     }
-		
+	 
+    // check proc target
+    switch(m_spellInfo->Id)
+    {
+        // on self
+        case 60544:    // Savage Aggression
+        case 60547:    // Hateful Aggression
+        case 60549:    // Deadly Aggression
+        case 60551:    // Furious Gladiator's Libram of Fortitude
+	 case 60553:    // Relentless Aggression
+	 case 60555:    // LK Arena 6 Aggression
+        case 60565:    // Savage Magic
+        case 60566:    // Hateful Magic
+        case 60567:    // Deadly Magic
+        case 60568:    // Furious Gladiator's Idol of Steadfastness
+        case 60569:    // Relentless Survival
+        case 60570:    // LK Arena 6 Magic
+            if(m_spellInfo->EffectImplicitTargetA[eff] != TARGET_SELF)
+                return false;
+	      break;
+         // on victim
+	  case 45524:    // Chains of Ice
+             if(m_spellInfo->EffectImplicitTargetA[eff] == TARGET_SELF)
+                 return false;
+	  break;
+    }
+	
     // Check targets for LOS visibility (except spells without range limitations )
     switch(m_spellInfo->Effect[eff])
     {

Последний раз редактировалось Den; 22.12.2010 в 09:37.
Den вне форума   Ответить с цитированием
Старый 22.12.2010, 10:44   #5
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

У этих спеллов AttributesEx4: 0x00100000 (SPELL_ATTR_EX4_UNK20).
ADD: как оказалось, не у всех, значит, с атрибутом промах.
virusav вне форума   Ответить с цитированием
Пользователь сказал cпасибо:
Den (22.12.2010)
Старый 22.12.2010, 11:34   #6
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

Правильнее будет вот так ?

Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index c77a070..75beb49 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -6430,7 +6430,15 @@ bool Spell::CheckTarget( Unit* target, SpellEffectIndex eff )
         if(((Player*)target)->isGameMaster() && !IsPositiveSpell(m_spellInfo->Id))
             return false;
     }
-		
+	 
+    // only proc spell on self
+    if (m_spellInfo->SpellIconID == 1962 && (m_spellInfo->AttributesEx4 & SPELL_ATTR_EX4_UNK20) ||      // spell: 60544, 60547, 60549, 60551, 60553, 60555
+	 (m_spellInfo->SpellIconID == 1961 && m_spellInfo->SpellVisual[0] == 5400))                      // spell: 60565, 60566, 60567, 60568, 60569, 60570
+    {
+        if(m_spellInfo->EffectImplicitTargetA[eff] != TARGET_SELF)
+            return false;
+    }
+	
     // Check targets for LOS visibility (except spells without range limitations )
     switch(m_spellInfo->Effect[eff])
     {
Den вне форума   Ответить с цитированием
Старый 22.12.2010, 11:59   #7
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Костыли это все... Систему выбоки таргетов надо сильно чинить. Лично мне непонятно зачем при паре TARGET_SELF, NO_TARGET заливать поле целей по типу TARGET_SELECT.
rsa вне форума   Ответить с цитированием
Старый 22.12.2010, 12:08   #8
virusav
Администратор
 
Аватар для virusav
 
Регистрация: 19.02.2010
Сообщений: 492
Сказал(а) спасибо: 55
Поблагодарили 341 раз(а) в 154 сообщениях
virusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человекvirusav Реально хороший человек
Отправить сообщение для virusav с помощью ICQ
По умолчанию

Код:
m_spellInfo->SpellIconID == 1962 && m_spellInfo->AttributesEx4 & SPELL_ATTR_EX4_UNK20
Effect 1: Id 6 (SPELL_EFFECT_APPLY_AURA), NO_TARGET, NO_TARGET:
60544
60547
60549
60551
60553
60555
60766 -?

m_spellInfo->SpellIconID == 1961 && m_spellInfo->SpellVisual[0] == 5400
43742 - ?
43749 - ?
48838 - ?
Effect 1: Id 6 (SPELL_EFFECT_APPLY_AURA), NO_TARGET, NO_TARGET:
60565
60566
60567
60568
60569
60570

SpellIconID=180
SpellVisual=12328
45524
66020
По указанным в посте 6 выборкам получается больше спеллов, чем в списке в предыдущих постах.

Интересное сочетание NO_TARGET, NO_TARGET.

Если не ошибаюсь, то условие написано неверно:
Код:
if (m_spellInfo->SpellIconID == 1962 && (m_spellInfo->AttributesEx4 & SPELL_ATTR_EX4_UNK20) ||      // spell: 60544, 60547, 60549, 60551, 60553, 60555
+	 (m_spellInfo->SpellIconID == 1961 && m_spellInfo->SpellVisual[0] == 5400))                      // spell: 60565, 60566, 60567, 60568, 60569, 60570
+    {
Видимо, должно быть:
Код:
if ((m_spellInfo->SpellIconID == 1962 && m_spellInfo->AttributesEx4 & SPELL_ATTR_EX4_UNK20) ||      // spell: 60544, 60547, 60549, 60551, 60553, 60555
+	 (m_spellInfo->SpellIconID == 1961 && m_spellInfo->SpellVisual[0] == 5400))                      // spell: 60565, 60566, 60567, 60568, 60569, 60570
+    {
virusav вне форума   Ответить с цитированием
Старый 23.12.2010, 11:19   #9
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Попробуйте так:
Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp
index 6b9fdd0..da497c1 100644
--- a/src/game/Spell.cpp
+++ b/src/game/Spell.cpp
@@ -2845,6 +2845,10 @@ void Spell::SetTargetMap(SpellEffectIndex effIndex, uint32 targetMode, UnitList&
                     {
                         case SPELL_AURA_ADD_FLAT_MODIFIER:  // some spell mods auras have 0 target modes instead expected TARGET_SELF(1) (and present for other ranks for same spell for example)
                         case SPELL_AURA_ADD_PCT_MODIFIER:
+                        case SPELL_AURA_MOD_RANGED_ATTACK_POWER:
+                        case SPELL_AURA_MOD_ATTACK_POWER:
+                        case SPELL_AURA_MOD_HEALING_DONE:
+                        case SPELL_AURA_MOD_DAMAGE_DONE:
                             targetUnitMap.push_back(m_caster);
                             break;
                         default:                            // apply to target in other case
тоже конечно костыль но хоть не такой кривой как приведенные выше...
rsa вне форума   Ответить с цитированием
Старый 23.12.2010, 12:24   #10
Den
Ученый
 
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
Den Скоро придёт к известностиDen Скоро придёт к известности
По умолчанию

А это случаем не затронет, проки спелов которые должны срабатывать, не только на себя но и на всю пати/рейд ?
Den вне форума   Ответить с цитированием
Старый 23.12.2010, 13:07   #11
rsa
Почетный флудер
Старожил
 
Аватар для rsa
 
Регистрация: 08.03.2010
Адрес: Мурманск, Россия
Сообщений: 788
Сказал(а) спасибо: 55
Поблагодарили 333 раз(а) в 151 сообщениях
Записей в дневнике: 1
rsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранитаrsa Как самоцвет среди гранита
По умолчанию

Я потому и написал "попробуйте". других пар с таргетом 0,0 действующих на врага вроде нет. а вот пары 18,0 или 0,18 подпадающие под это же условие могут быть (мне просто неизвестны). Если они найдутся - придется для пары 0,0 делать собственное case, не более того.
rsa вне форума   Ответить с цитированием
Ответ


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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[fix] Libram of Souls Redeemed Chipleo MaNGOS 0.12 (2.4.3) 1 24.06.2010 17:37


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


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