|
Принятые патчи Иногда выкладывают патчи, которые потом в итоге все-таки принимают в ядро.
Повод для гордости. |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
04.05.2010, 13:44 | #1 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
[9872][patch] Life Tap (Жизнеотвод)
Решил реализовать фичу последних патчей, формулы взяты с вовхеда, опрашивал игроков с оффа.
Как рассказал один из игроков с оффа: Получаем базовый урон+урон зависящий от духа Получаем базовую ману+ману зависящую от силы заклинаний Код:
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp index f8fcfea..65d4f06 100644 --- a/src/game/SpellEffects.cpp +++ b/src/game/SpellEffects.cpp @@ -1851,30 +1851,19 @@ void Spell::EffectDummy(SpellEffectIndex eff_idx) // Life Tap if (m_spellInfo->SpellFamilyFlags & UI64LIT(0x0000000000040000)) { + int32 damagebase = damage; // In 303 exist spirit depend uint32 spirit = uint32(m_caster->GetStat(STAT_SPIRIT)); - switch (m_spellInfo->Id) - { - case 1454: damage+=spirit; break; - case 1455: damage+=spirit*15/10; break; - case 1456: damage+=spirit*2; break; - case 11687: damage+=spirit*25/10; break; - case 11688: - case 11689: - case 27222: - case 57946: damage+=spirit*3; break; - default: - sLog.outError("Spell::EffectDummy: %u Life Tap need set spirit multipler", m_spellInfo->Id); - return; - } -// Think its not need (also need remove Life Tap from SpellDamageBonus or add new value) -// damage = m_caster->SpellDamageBonus(m_caster, m_spellInfo,uint32(damage > 0 ? damage : 0), SPELL_DIRECT_DAMAGE); + damage+= spirit*15/10; + if (unitTarget && (int32(unitTarget->GetHealth()) > damage)) { // Shouldn't Appear in Combat Log unitTarget->ModifyHealth(-damage); - int32 mana = damage; + int32 spell_power = m_caster->SpellBaseDamageBonusDone(GetSpellSchoolMask(m_spellInfo)); + int32 mana = damagebase + (spell_power * 5/10); + // Improved Life Tap mod Unit::AuraList const& auraDummy = m_caster->GetAurasByType(SPELL_AURA_DUMMY); for(Unit::AuraList::const_iterator itr = auraDummy.begin(); itr != auraDummy.end(); ++itr) Я совершенно не в курсе, нужно ли учитывать различные "штрафы" от ранга способности... если нужно то меняем Код:
int32 mana = damagebase + (spell_power * 5/10); Код:
int32 mana = damagebase + (spell_power * 5/10 * m_caster->CalculateLevelPenalty(m_spellInfo)); Код:
switch (m_spellInfo->Id) ЗЫ: патч не тестировался! Последний раз редактировалось Insider42; 04.05.2010 в 14:02. |
04.05.2010, 21:56 | #2 |
Новичок
Регистрация: 07.03.2010
Сообщений: 13
Сказал(а) спасибо: 27
Поблагодарили 7 раз(а) в 5 сообщениях
|
у меня в
Код:
switch (m_spellInfo->Id) Код:
case 1454: damage += int32(0 + 1.5*sp); break; case 1455: damage += int32(6 + 1.5*sp); break; case 1456: damage += int32(24 + 1.5*sp); break; case 11687: damage += int32(37 + 1.5*sp); break; case 11688: damage += int32(42 + 1.5*sp); break; case 11689: damage += int32(500 + 1.5*sp); break; case 27222: damage += int32(710 + 1.5*sp); break; case 57946: damage += int32(1490 + 1.5*sp); break; Код:
float sp = m_caster->SpellBaseDamageBonus(GetSpellSchoolMask(m_spellInfo));
__________________
С недавних времен TrinityCore User |
04.05.2010, 22:41 | #3 | |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
Цитата:
|
|
04.05.2010, 22:27 | #4 |
Ученый
Регистрация: 07.03.2010
Сообщений: 131
Сказал(а) спасибо: 9
Поблагодарили 10 раз(а) в 10 сообщениях
|
При таком решении мана становится бесконечной на начальных уровнях. Он практический не наносит урон, а маны дает значительное количество.
|
06.05.2010, 14:01 | #5 |
Новичок
Регистрация: 07.03.2010
Сообщений: 13
Сказал(а) спасибо: 27
Поблагодарили 7 раз(а) в 5 сообщениях
|
да вы правы, я что-то затупил
add можно еще так вместо всего Код:
switch (m_spellInfo->Id) Код:
damage+=spirit*15/10;
__________________
С недавних времен TrinityCore User Последний раз редактировалось Viste; 06.05.2010 в 18:22. |
06.05.2010, 19:42 | #6 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
|
08.05.2010, 12:46 | #7 |
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
Протестировал таки свой патч. C последним рангом способности работает четко. Единственное отличие, скорее даже "фича" мангоса - восстанавливает на 1 маны меньше и отнимает на 1 здоровья меньше
А вот с навыками пониже уровня странность - на способности пишет 701 маны например, но даёт 710. Причем разница на всех кроме последнего ранга составляет всего 9 маны. Врятли это какой-либо penalty для бонуса заклинаний, скорее всего формула для низких рангов чуть чуть иная, либо же косяк на стороне клиента. Последний раз редактировалось Insider42; 08.05.2010 в 12:57. |
08.05.2010, 15:55 | #8 |
Супер-модератор
Регистрация: 07.03.2010
Сообщений: 647
Сказал(а) спасибо: 100
Поблагодарили 252 раз(а) в 123 сообщениях
|
А ничего, что сами близзы сказали, что на способности неправильно написано?
|
11.05.2010, 13:25 | #9 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Patch 3.3.3: "This spell no longer scales with spirit, and instead scales with spell power."
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
11.05.2010, 13:41 | #10 | |||
Ученый
Регистрация: 15.03.2010
Сообщений: 261
Сказал(а) спасибо: 84
Поблагодарили 257 раз(а) в 96 сообщениях
|
Цитата:
Игроки с оффа тоже подтвердили, что наносимый по игроку урон всё ещё базируется на духе, а мана уже на силе заклинаний. Цитата:
Цитата:
Последний раз редактировалось Insider42; 11.05.2010 в 13:47. |
|||
11.05.2010, 13:49 | #11 |
MaNGOS Dev
Регистрация: 09.02.2010
Сообщений: 594
Сказал(а) спасибо: 315
Поблагодарили 438 раз(а) в 181 сообщениях
|
Я не увидел нигде в комментариях опровержений к изменениям в 3.3.3
Добавлено с удалением спирит-части в [9872]. Спасибо.
__________________
Так как устал объяснять знайте ICQ не пользуюсь |
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
[9872] Update damage/energize calculation for 1454 and ranks. | newsbot | CMaNGOS Commits | 0 | 11.05.2010 14:10 |
[9720] Implement Glyph of Siphon Life and fix Siphon Life proc | newsbot | CMaNGOS Commits | 0 | 10.04.2010 10:10 |