Суть проблемы: Черви нанося урон не исцеляют рыцаря смерти
Тут присутствует 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 - хак чистой воды, нуждается в создании более корректного места в коде где можно нахардкодить наложение аур, т.к. это не единственный случай (например Дух дикого волка у шаманов). Если вы знаете таковое - тыкайте носом.