|
Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.
Если кто-то хочет задать вопрос по патчу - велкам. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
27.09.2010, 20:04 | #1 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
[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: Код:
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; } По поводу пункта №2 - хак чистой воды, нуждается в создании более корректного места в коде где можно нахардкодить наложение аур, т.к. это не единственный случай (например Дух дикого волка у шаманов). Если вы знаете таковое - тыкайте носом. Последний раз редактировалось Insider42; 27.09.2010 в 20:32. |