|
Патчи Если кто-то хочет выложить не свой готовый патч - не забудьте указать автора и источник.
Если кто-то хочет задать вопрос по патчу - велкам. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
28.05.2010, 13:59 | #1 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
[patch/dev] Heart of the Phoenix (Сердце Феникса)
Суть проблемы:
1) спел кастуется даже если пет живой, такого быть не должно 2) спел не кастуется когда пет мертв 3) спел не вызывает второй эффект, который как раз и должен воскрешать 4) эффект SPELL_EFFECT_SUMMON_DEAD_PET с режимом TARGET_DUELVSPLAYER_COORDINATES имеет проблему с неверной выборкой цели. Возможно её нужно задавать принудительно, где именно пока я не разобрался. Эта проблема не актуальна если всё таки окажеться что верный вариант патча Часть 2 вариант Б. 5) панель мертвого пета полностью заблокирована что препятствует использованию спонобности, я пока не отследил откуда это :/ может быть SetFlag(UNIT_FIELD_FLAGS, UNIT_FLAG_STUNNED); так влияет Часть 1. Реализация необходимого нам флага Код:
diff --git a/src/game/Spell.cpp b/src/game/Spell.cpp index 5b105ee..a8c8a7a 100644 --- a/src/game/Spell.cpp +++ b/src/game/Spell.cpp @@ -5317,9 +5317,12 @@ SpellCastResult Spell::CheckCast(bool strict) SpellCastResult Spell::CheckPetCast(Unit* target) { - if(!m_caster->isAlive()) + if(!m_caster->isAlive() && !(m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_DEAD)) return SPELL_FAILED_CASTER_DEAD; + if (m_caster->isAlive() && (m_spellInfo->Attributes & SPELL_ATTR_CASTABLE_WHILE_DEAD)) + return SPELL_FAILED_TARGET_NOT_DEAD; + if(m_caster->IsNonMeleeSpellCasted(false)) //prevent spellcast interruption by another spellcast return SPELL_FAILED_SPELL_IN_PROGRESS; if(m_caster->isInCombat() && IsNonCombatSpell(m_spellInfo)) Код:
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 4ef16e1..d7ddd91 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -6362,6 +6364,14 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->CastSpell(unitTarget, 62305, true); return; } + case 55709: // Heart of the Phoenix + { + if (!unitTarget && unitTarget->isAlive()) + return; + + unitTarget->CastSpell(unitTarget, 54114, true); + return; + } default: break; } Возможно это неверная реализация, например я незнаю кто же всё таки должен кастовать способность - хозяин или пет сам на себя? Получается какой-то бред если хозяин, т.к. появляется полоска каста, которую может заменить любой другой кастуемый спел. Зато в этом случае надобность вправлять П4 (пункт 4) отпадает Часть 2 вариант Б. Колдуем от лица самого охотника Код:
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index 9c8373f..955f8de 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -6395,6 +6395,18 @@ void Spell::EffectScriptEffect(SpellEffectIndex eff_idx) unitTarget->CastSpell(unitTarget, 62305, true); return; } + case 55709: // Heart of the Phoenix + { + if (!unitTarget) + return; + + Unit *owner = unitTarget->GetOwner(); + if (!owner) + return; + + owner->CastSpell(owner, 54114, true); + return; + } default: break; } Последний раз редактировалось Insider42; 28.05.2010 в 14:14. |
31.05.2010, 02:47 | #2 |
Пользователь
Регистрация: 11.03.2010
Адрес: Спб
Сообщений: 35
Сказал(а) спасибо: 5
Поблагодарили 10 раз(а) в 8 сообщениях
|
|
26.04.2013, 13:50 | #3 |
Ученый
Регистрация: 10.03.2010
Адрес: Бобруйск
Сообщений: 284
Сказал(а) спасибо: 213
Поблагодарили 98 раз(а) в 84 сообщениях
|
Полоски каста для спела 54114 не должно быть, в дбц неверное значение. Вспоминая оф сервер, ее там не было и нету.
|
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[patch/dev]Heart of the Wild | virusav | Патчи | 21 | 18.07.2010 22:21 |
Heart of the Wild | xmolex | Новичкам | 14 | 14.04.2010 20:22 |
[patch] Реализация бонуса к Death Coil от Sigil of the Vengeful Heart | Warlord123 | Патчи на рассмотрении | 0 | 15.03.2010 14:01 |