PDA

Просмотр полной версии : [patch] Mana Tide Totem (Тотем прилива маны)


Insider42
20.05.2010, 11:03
Суть проблемы:
Призываемый тотем не имеет 10% от жизни заклинателя

Покопавшись с помощью проги SpellWork в DBC разных версий клиента ОБНАРУЖИЛ:

патч 3.1.0
Effect: (028) SPELL_EFFECT_SUMMON
Base point = 5
Target A (TARGET_TOTEM_WATER), Target B (No target)
EffectMiscValue = 10467
EffectMiscValueB = 82

Effect: NO EFFECT

Effect: NO EFFECT
патч 3.2.0 (где как раз и введено данное изменение)
Effect: (028) SPELL_EFFECT_SUMMON
Base point = 5
Target A (TARGET_TOTEM_WATER), Target B (No target)
EffectMiscValue = 10467
EffectMiscValueB = 82

Effect: (000) No Effect
Base point = 10
Target A (No target), Target B (No target)

Effect: NO EFFECT

Вот что вышло
diff --git a/src/game/SpellEffects.cpp b/src/game/SpellEffects.cpp
index 4303e17..11db5c1 100644
--- a/src/game/SpellEffects.cpp
+++ b/src/game/SpellEffects.cpp
@@ -6797,6 +6802,9 @@ void Spell::DoSummonTotem(SpellEffectIndex eff_idx, uint8 slot_dbc)
modOwner->ApplySpellMod(m_spellInfo->Id, SPELLMOD_DURATION, duration);
pTotem->SetDuration(duration);

+ if (m_spellInfo->Id == 16190)
+ damage = m_caster->GetMaxHealth() * m_spellInfo->CalculateSimpleValue(EFFECT_INDEX_1) / 100;
+
if (damage) // if not spell info, DB values used
{
pTotem->SetMaxHealth(damage);

LordJZ
20.05.2010, 14:03
Логично было бы поставить фикс хп в Totem::Summon, но если мы хотим использовать m_spellInfo->CalculateSimpleValue, то только в Spell::DoSummonTotem (ф-я из патча)

Добавлено:
Хотя я смотрю хп тотема как раз ставится в DoSummonTotem, поэтому имхо выставлять там кастомное значение - нормально.

Insider42
29.05.2010, 12:06
Ну раз других идей нету - значит это и есть оптимальное решение. Переношу тему...