Skip to content

Do touch attacks do critical damge?

Hi everyone.

Lately, I was testing out the inflict series of spells from the cleric spell list.
While the game says that you make an attack roll, and you can crit, it doesn't seem as though any extra damage is done on the critical hit but I'm not sure.
I've tried to test this on a persistent world server and in the HoTu campaign and I don't have a clear answer. Is there a way to test this? Can anyone confirm this?

Comments

  • ProlericProleric Member Posts: 1,281
    See Wiki.
  • LordPasLordPas Member Posts: 47
    edited April 2020
    Hi. I have checked the wiki, thanks.
    I need to be clearer here on what I've done so far.
    I tried to test this on a persistent world. It did not seem as though the critical damage was applied. I'll be going back to test it again. I think I need a larger sample size. The problem is that damage comes in a range determined by randomness and I haven't bypassed the normal damage range in the few tests I did.
    Post edited by LordPas on
  • DazDaz Member Posts: 125
    edited April 2020
    Looking at the spell script of the inflict x wounds spells, a critical hit does not inflict extra damage.
  • LordPasLordPas Member Posts: 47
    Thank for the help Daz. I just spent a frustrating 2 hours testing this out.
    Someone else pointed this out to me from the wiki under the critical hits section...

    Touch attacks
    Touch attack critical hits prove an exception. They are not blocked by immunity to critical hits, and instead of the standard damage and modifications, they use scripted commands. They are also not bound to deal more damage than a normal hit. Some, like inflict minor wounds, will be indistinguishable from a touch attack hit, while others, like the inflict wounds ray, will add a negative side effect.

    I'm confused here and have more questions.
    Does this mean some touch attacks can crit and some can't?
    Are ranged touch attacks scripted the same as melee touch attacks?
    Aren't inflict spells supposed to do Crit damage in 3.5 tabletop D&D?
    What's the point of making them not blocked by immunity to crits when they are not bound to do more damage than a normal hit?
  • ZaxaresZaxares Member Posts: 1,325
    NWN1 straddles a weird line between 3.0 and 3.5 rules. It was originally built for 3.0, and I think in that version touch attacks couldn't score critical hits. This got updated for 3.5, but I think 3.5 only came out near the very end of NWN1's active development, so while we got some new spells and prestige classes that came with 3.5, a lot of the new mechanics (such as damage reduction) still used the old 3.0 system.

    NWN2 does have the proper "double damage on criticals" for touch spells, both melee and ranged.
  • FreshLemonBunFreshLemonBun Member Posts: 909
    NWN uses 3.0 not 3.5 nor a blend of the two, however the differences between editions is fairly minor and often overblown. In regards to this issue there is no difference, touch attacks threaten critical hits in 3.0 which you can verify on page 125 of the Player's Handbook.

    You will find many small inconsistencies with NWN and the rules as written, likewise with NWN2. The reason is most likely because they never got around to it or because the implementation was close enough for most players. You can also sneak attack with spells that use a touch attack since they are considered attacks but neither NWN nor NWN2 implement this if I recall.

    There are probably several mods out there which remedy the situation in various ways.
  • LordPasLordPas Member Posts: 47
    Thanks for the info everyone. Is it hard coded like that? Can it be changed so they do Crits?
  • FreshLemonBunFreshLemonBun Member Posts: 909
    No it's not hard coded, spells are fully scripted. Here's a mockup, I haven't tested it but it's just for illustration and misses a lot of details and nuance but the general idea is there. You'll want the scripts for your spells to sort of look like this where they handle touch attacks.
        object oTarget = GetSpellTargetObject();
        object oCaster = OBJECT_SELF;
        int nDmg = d6(2);
        int iAttack = TouchAttackMelee(oTarget, TRUE);
        //Attack hits
        if (iAttack != 0)
        {
    	//Attack crits
            if (iAttack == 2 && GetIsImmune(oTarget, IMMUNITY_TYPE_CRITICAL_HIT) == FALSE)
            {
                nDmg = nDmg * 2;
            }
    	//oTarget can't see oCaster
            if (GetObjectSeen(oCaster, oTarget) == FALSE)
            {
                int nLevels = GetLevelByClass(CLASS_TYPE_ROGUE, oCaster);
                int nDice = (nLevels + 1) / 2;
                if (GetIsImmune(oTarget, IMMUNITY_TYPE_SNEAK_ATTACK) == FALSE && nDice > 0)
                {
                    nDmg = nDmg + d6(nDice);
                }
            }
            effect eDmg = EffectDamage(nDmg, DAMAGE_TYPE_MAGICAL);
            ApplyEffectToObject(DURATION_TYPE_INSTANT, eDmg, oTarget, 0.0f);
        }
    
Sign In or Register to comment.