PDA

Просмотр полной версии : Танкование на мангосе


Lightunit
28.05.2010, 16:47
Пробовал на мангосе танковать Рыцарем Смерти (блуд спек) в арена сете. Получается, практически, без особых усилий.
На офе, в арена сете дойти до боса уже проблема, а танкование не имеет смысла. (сам не пробывал)

Использовал сборку от rsa. Подземелья работают очень даже хорошо. Есть такие элементы, которые от оффа практически не отличаются.

Возник вопрос. Что именно позволяет танковать в арена сете без особых усилий? (на мангосе)
Может устойчивость работает и на боссов? Или не правильно работает калькуляция статов? Или урон боссов не верный, хотя он приходит с кеша?

LordJZ
28.05.2010, 17:23
Причина - диминишинг на авойденс, точнее его отсутствие.

P.S. Устойчивость и на офе работает на боссов (крит компонента), а урон "с кеша" не приходит.

Lightunit
28.05.2010, 17:52
Причина - диминишинг на авойденс, точнее его отсутствие.

P.S. Устойчивость и на офе работает на боссов (крит компонента), а урон "с кеша" не приходит.Спасибо за интересную информацию.

А реально ли это реализовать? На сколько мне известно, кап брони реализован. Может использовать такой же принцип, но на убывание?=)))

YuruY
28.05.2010, 18:03
Или урон боссов не верный, хотя он приходит с кеша?
С кеша нет, с комбат-лога, да.

PSZ
30.05.2010, 10:26
Еще причина в том, что сейчас при бое с мобами учитывается ресайленс. Ресайленс должен учитываться только при бое с игроками. Точно так же, как дефенс должен учитываться только при бое с мобами, но не при бое с игроками.
Хотел как раз написать такой патч...

VBB
30.05.2010, 12:27
Очень хотелось бы видеть такой патчик. К сожалению, сам в кодинге не силен.

LordJZ
30.05.2010, 13:08
Еще причина в том, что сейчас при бое с мобами учитывается ресайленс. Ресайленс должен учитываться только при бое с игроками. Точно так же, как дефенс должен учитываться только при бое с мобами, но не при бое с игроками.
Хотел как раз написать такой патч...В каком месте он учитывается-то?

При мили/рендж атаке вот этот код вызывается для босса на pVictim - игрока. Проверка есть.
void Unit::CalculateMeleeDamage(Unit *pVictim, uint32 damage, CalcDamageInfo *damageInfo, WeaponAttackType attackType)
{
...
// only from players
if (GetTypeId() == TYPEID_PLAYER)
{
uint32 redunction_affected_damage = CalcNotIgnoreDamageRedunction(damageInfo->damage,damageInfo->damageSchoolMask);
uint32 resilienceReduction;
if (attackType != RANGED_ATTACK)
resilienceReduction = pVictim->GetMeleeDamageReduction(redunction_affected_damage );
else
resilienceReduction = pVictim->GetRangedDamageReduction(redunction_affected_damag e);
damageInfo->damage -= resilienceReduction;
damageInfo->cleanDamage += resilienceReduction;
}А вот этот код для спеллов. Проверка есть.void Unit::CalculateSpellDamage(SpellNonMeleeDamage *damageInfo, int32 damage, SpellEntry const *spellInfo, WeaponAttackType attackType)
{
...
// only from players
if (GetTypeId() == TYPEID_PLAYER)
{
uint32 redunction_affected_damage = CalcNotIgnoreDamageRedunction(damage,damageSchoolM ask);
damage -= pVictim->GetSpellDamageReduction(redunction_affected_damage );
}Далее для дотов и лич эффектов, с проверками.void Aura::PeriodicTick()
...
case SPELL_AURA_PERIODIC_DAMAGE:
case SPELL_AURA_PERIODIC_DAMAGE_PERCENT:
...
// only from players
// FIXME: need use SpellDamageBonus instead?
if (IS_PLAYER_GUID(m_caster_guid))
pdamage -= m_target->GetSpellDamageReduction(pdamage);
...
case SPELL_AURA_PERIODIC_LEECH:
// only from players
// FIXME: need use SpellDamageBonus instead?
if (IS_PLAYER_GUID(m_caster_guid))
pdamage -= m_target->GetSpellDamageReduction(pdamage);