Показать сообщение отдельно
Старый 27.09.2010, 20:04   #1
Insider42
Ученый
 
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
Insider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранитаInsider42 Как самоцвет среди гранита
По умолчанию [patch/dev] Bloodworms (Кровочерви)

Суть проблемы: Черви нанося урон не исцеляют рыцаря смерти

Тут присутствует 2 проблемы:
1) не реализован сам спелл, который должен лечить
2) спелл не наложен на кровочервей

Решение пункта №1
Код:
diff --git a/src/game/UnitAuraProcHandler.cpp b/src/game/UnitAuraProcHandler.cpp
index 5fcaa17..8079f2a 100644
--- a/src/game/UnitAuraProcHandler.cpp
+++ b/src/game/UnitAuraProcHandler.cpp
@@ -929,6 +929,18 @@ SpellAuraProcResult Unit::HandleDummyAuraProc(Unit *pVictim, uint32 damage, Aura
                     target = this;
                     break;
                 }
+                // Health Leech (used by Bloodworms)
+                case 50453:
+                {
+                    Unit *owner = GetOwner();
+                    if (!owner)
+                        return SPELL_AURA_PROC_FAILED;
+
+                    triggered_spell_id = 50454;
+                    basepoints[0] = int32(damage*1.69);
+                    target = owner;
+                    break;
+                }
                 // Vampiric Touch (generic, used by some boss)
                 case 52723:
                 case 60501:
Решение пункта №2 (на данный момент хаковое - лучше не придумал)
Код:
diff --git a/src/game/Pet.cpp b/src/game/Pet.cpp
index 06d048a..2e5bc0a 100644
--- a/src/game/Pet.cpp
+++ b/src/game/Pet.cpp
@@ -1871,6 +1871,10 @@ bool Pet::Create(uint32 guidlow, Map *map, uint32 phaseMask, uint32 Entry, uint3
     if(getPetType() == MINI_PET)                            // always non-attackable
         SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_NON_ATTACKABLE);
 
+    // Bloodworms
+    if (GetEntry() == 28017)
+        CastSpell(this, 50453, true);
+
     return true;
 }
По поводу пункта №1 - брал данные с вовхеда, желательно найти более точный источник, т.к. там же написали что не 169%, а 150%

По поводу пункта №2 - хак чистой воды, нуждается в создании более корректного места в коде где можно нахардкодить наложение аур, т.к. это не единственный случай (например Дух дикого волка у шаманов). Если вы знаете таковое - тыкайте носом.

Последний раз редактировалось Insider42; 27.09.2010 в 20:32.
Insider42 вне форума   Ответить с цитированием
3 пользователя(ей) сказали cпасибо:
Den (09.01.2011), rsa (28.09.2010), xex (30.09.2010)