Я никогда и не говорил, что Vitriolic Blast не промахивается, он просто при попадании игнорирует мантлы и спеллрезист, больше ничего он не игнорирует.
После проверки уровня урона бласта, который будет, проводится:
1.Проверка на форму заклинания (цепи там)
2.Проверка тач атаки
3.Проверка консилмента
4.Проверка всего остального, включая проверку на рефлекс спас (с условием конуса или дума)
5.Идет определение, что было сколдовано, включая нерабочую проверку на 2 эффекта
Внутри того, что было сколдовано, идут возможные проверки- спеллрезист, спасы (воля, стойкость), просчитывается резист цели (кислота -x), а потом при условии пройденной проверки резиста (мантлы, ср) идет дмг, после него проверка спасов, если да, то накладывается еще и эффект. У витриолика отсутствует проверка на резист, он проходит тач, консилмент, отбивание (только в поле зрения) либо рефлекс (если варлок без моска), потом попадает, наносит дмг кислотой (с расчетом редукшна), после чего накладывается эффект "заражения кислотой", который описан в другом скрипте, он либо наносит 2д6, либо нет (рефлекс).
Т.е. эффект заражения накладывается только при получении урона. Урон спеллрезист не проходит.
Вот пример действия спеллрезиста.
int DoEssenceFrightfulBlast(object oCaster, object oTarget, int bCalledFromShape, int bDoTouchTest, int nAllowReflexSave, int nHalfDmg)
{
// First, do Base Effects:
if ( DoEldritchBlast(oCaster, oTarget, bCalledFromShape, bDoTouchTest, DAMAGE_TYPE_MAGICAL, nAllowReflexSave, FALSE, nHalfDmg, VFX_INVOCATION_FRIGHTFUL_RAY) )
{
// Additional Effects: (Cause Fear Effect)
if ((GetHitDice(oTarget) < 6) && GetObjectType(oTarget) == OBJECT_TYPE_CREATURE)
{
if(!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_FEAR))
{
float fDuration = RoundsToSeconds(10);
effect eScare = EffectFrightened();
effect eSave = EffectSavingThrowDecrease(SAVING_THROW_WILL, 2, SAVING_THROW_TYPE_MIND_SPELLS);
effect eMind = EffectVisualEffect( VFX_DUR_SPELL_FEAR );
//effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); // handled by VFX_DUR_SPELL_FEAR
effect eDamagePenalty = EffectDamageDecrease(2);
effect eAttackPenalty = EffectAttackDecrease(2);
effect eLink = EffectLinkEffects(eMind, eScare);
effect eLink2 = EffectLinkEffects(eSave, eDamagePenalty);
eLink2 = EffectLinkEffects(eLink2, eAttackPenalty);
//eLink2 = EffectLinkEffects(eLink2, );
//Apply linked effects and VFX impact
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink2, oTarget, fDuration);
return TRUE;
}
}
}
return FALSE;
}
Здесь в условии стоит GetSpellSaveDC, при непрохождении которого бласт вообще уходит в false. У витриолика этой проверки нету, значит в false он не уйдет никак. Сейчас смогу заслать скрин (2 экземпляра).
Добавлено (19.01.2008, 14:59)
---------------------------------------------
Первая, пример с пробиванием резиста варлока (100%) false. Следующая- витриолик, 100%- true, ср как будто нет: