Ru-MaNGOS

Ru-MaNGOS (http://mangos.ytdb.ru/index.php)
-   Баг-репорты (http://mangos.ytdb.ru/forumdisplay.php?f=27)
-   -   wrathful gladiator's libram of fortitude (http://mangos.ytdb.ru/showthread.php?t=3112)

VENOM 04.12.2010 23:08

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

Den 21.12.2010 20:18

Касается не только паладина 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])
    {


Warlord123 22.12.2010 08:03

Таких заклинаний не так мало.
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

Den 22.12.2010 09:31

Код:

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])
    {


virusav 22.12.2010 10:44

У этих спеллов AttributesEx4: 0x00100000 (SPELL_ATTR_EX4_UNK20).
ADD: как оказалось, не у всех, значит, с атрибутом промах.

Den 22.12.2010 11:34

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

Код:

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])
    {


rsa 22.12.2010 11:59

Костыли это все... Систему выбоки таргетов надо сильно чинить. Лично мне непонятно зачем при паре TARGET_SELF, NO_TARGET заливать поле целей по типу TARGET_SELECT.

virusav 22.12.2010 12:08

Код:

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
+    {


rsa 23.12.2010 11:19

Попробуйте так:
Код:

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

тоже конечно костыль но хоть не такой кривой как приведенные выше...

Den 23.12.2010 12:24

А это случаем не затронет, проки спелов которые должны срабатывать, не только на себя но и на всю пати/рейд ?

rsa 23.12.2010 13:07

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


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

ru-mangos.ru - Русское сообщество MaNGOS