City of Arabel
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Groups
    • Search
    • Register
    • Login

    evards dc incorrect

    Scheduled Pinned Locked Moved Closed Bugs
    8 Posts 5 Posters 92 Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • CadizC
      Cadiz
      last edited by Cadiz

      68f0ddf6-43b7-4778-bd9b-318c89e18d68-image.png

      the dc for evards doesnt seem to be being calculated correctly.

      see screenie! dc should be 10+5(int)+2 (sf) +4 (level) = 21

      (frustrating as i died cos the spawns weren’t incapacitated by the spell)

      Zool's rule - don't be a dick.

      Mr.MolochM 1 Reply Last reply Reply Quote
      • Mr.MolochM
        Mr.Moloch @Cadiz
        last edited by

        @Cadiz DC is correct. Its not based on the function you think it is based on. Its based on a grapple check.

        //::///////////////////////////////////////////////
        //:: Evards Black Tentacles: Heartbeat
        //:: NW_S0_EvardsB
        //:: Copyright (c) 2001 Bioware Corp.
        //:://////////////////////////////////////////////
        /*
            Upon remaining within the mass of rubbery tentacles the
            target is struck by 1d4 + 1/lvl tentacles.  Each
            makes a grapple check. If it succeeds then
            it does 1d6+4 damage and the target must make
            a Fortitude Save versus paralysis or be paralyzed
            for 1 round.
        */
        //:://////////////////////////////////////////////
        //:: Created By: Preston Watamaniuk
        //:: Created On: Nov 23, 2001
        //:://////////////////////////////////////////////
        //:: GZ: Removed SR, its not there by the book
        
        
        #include "X0_I0_SPELLS"
        #include "x2_inc_spellhook"
        
        void main() {
            object oTarget;
            effect eParal = EffectParalyze();
            effect eDur = EffectVisualEffect(VFX_DUR_PARALYZED);
            effect eLink = EffectLinkEffects(eDur, eParal);
            effect eDam;
            effect eFail = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
            int nMetaMagic = GetMetaMagicFeat();
            int nDamage;
            int nDieDam;
            float fDelay;
            int nNumberTargets = 0;
            int nTargetSize;
            int nTentacleGrappleCheck;
            int nOpposedGrappleCheck;
            int nOppossedGrappleCheckModifiers;
            int nHits;
            int nMinimumTargets = 2;
            int nTentaclesPerTarget;
            int nCasterLevel = GetAdjustedCasterLevel(OBJECT_SELF);
        
            if ( nCasterLevel > 20 ) {
                nCasterLevel = 20;
            }
        
            nTentaclesPerTarget = d4();
        
            if (nMetaMagic == METAMAGIC_MAXIMIZE) {
                nTentaclesPerTarget = 4;
            }
        
            nTentaclesPerTarget = nTentaclesPerTarget + nCasterLevel;
        
            if (nMetaMagic == METAMAGIC_EMPOWER) {
                nTentaclesPerTarget = nTentaclesPerTarget + (nTentaclesPerTarget / 2); //Number of variable tentacles is +50%
            }
        
            oTarget = GetFirstInPersistentObject();
        
            while(GetIsObjectValid(oTarget)) {
               // if ( GetCreatureSize(oTarget) >= CREATURE_SIZE_MEDIUM ) {
                    if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) {
                        nNumberTargets++;
                   // }
                } else {
                    // Some visual feedback that the spell doesn't affect creatures of this type.
                    fDelay = GetRandomDelay(0.75, 1.5);
                    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eFail, oTarget, fDelay);
                }
        
                oTarget = GetNextInPersistentObject();
            }
        
            if ( nNumberTargets > 0 ) {
                // Distribute the tentacle between all valid targets.
                if ( nNumberTargets < nMinimumTargets ) {
                    // If there is only one target in the area, then only a portion of the tentacles should be able to reach them.
                    nTentaclesPerTarget = nTentaclesPerTarget / nMinimumTargets;
                } else {
                    nTentaclesPerTarget = nTentaclesPerTarget / nNumberTargets;
                }
        
                oTarget = GetFirstInPersistentObject();
        
                while(GetIsObjectValid(oTarget)) {
                    nDamage = 0;
                    nTargetSize = GetCreatureSize(oTarget);
        
                    if ( nTargetSize >= CREATURE_SIZE_SMALL ) {
                        if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, GetAreaOfEffectCreator())) {
                            //Fire cast spell at event for the specified target
                            SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_EVARDS_BLACK_TENTACLES));
                            **nOppossedGrappleCheckModifiers = GetBaseAttackBonus(oTarget) + GetAbilityModifier(ABILITY_STRENGTH, oTarget);**
        
                            if (nTargetSize == CREATURE_SIZE_LARGE ) {
                                nOppossedGrappleCheckModifiers = nOppossedGrappleCheckModifiers + 4;
                            } else if ( nTargetSize = CREATURE_SIZE_HUGE ) {
                                nOppossedGrappleCheckModifiers = nOppossedGrappleCheckModifiers + 8;
                            }
        
                            for (nHits = nTentaclesPerTarget; nHits > 0; nHits--) {
                                // Grapple Check.
                                nTentacleGrappleCheck = d20() + nCasterLevel + 8; // Str(4) + Large Tentacle(4)
                                nOpposedGrappleCheck = d20() + nOppossedGrappleCheckModifiers;
        
                                if(nTentacleGrappleCheck >= nOpposedGrappleCheck) {
                                    nDieDam = d6() + 4;
        
                                    //Enter Metamagic conditions
                                    if (nMetaMagic == METAMAGIC_MAXIMIZE) {
                                        nDieDam = 10;//Damage is at max 6+4=10
                                    }
        
                                    if (nMetaMagic == METAMAGIC_EMPOWER) {
                                        nDieDam = nDieDam + (nDieDam / 2); //Damage/Healing is +50%
                                    }
        
                                    nDamage = nDamage + nDieDam;
                                    eDam = EffectDamage(nDieDam, DAMAGE_TYPE_BLUDGEONING, DAMAGE_POWER_PLUS_ONE);
                                    fDelay = GetRandomDelay(0.75, 1.5);
                                    DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
                                }
                            }
                        }
                    }
        
                    if(nDamage > 0) {
                        if(!MySavingThrow(SAVING_THROW_FORT, oTarget, GetSpellSaveDCCustom(), SAVING_THROW_TYPE_NONE, OBJECT_SELF, fDelay)) {
                            DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(1)));
                        }
                    }
        
                    oTarget = GetNextInPersistentObject();
                }
            }
        }
        

        In the future, there are two simple rules to remember:

        NO SPITTING.

        DO NOT CROSS MISTER MOLOCH.

        https://youtu.be/dQw4w9WgXcQ?si=uHdfqTMS7FMTWREf

        1 Reply Last reply Reply Quote
        • R
          Richord
          last edited by

          If Evard's DC calculation followed the logic of other spells it'd be horrendously overpowered.

          CadizC 1 Reply Last reply Reply Quote
          • Mr.MolochM Mr.Moloch moved this topic from Bug Reports
          • CadizC
            Cadiz @Richord
            last edited by

            I am sure that it has been changed. probably when it was altered to stop small creatures from being immune.

            I know that we used it with very good effect with the blackwheel hin we had. immobilised a room full of ftrs with those best Fort saves. that would not happen with dc 14.

            if this is the new improved version it has gone from being the go to spell for small chars to pointless for everyone pretty much

            Zool's rule - don't be a dick.

            Mr.MolochM 1 Reply Last reply Reply Quote
            • Mr.MolochM
              Mr.Moloch @Cadiz
              last edited by

              @Cadiz Save was always this way actually. Wasn't changed at all.

              In the future, there are two simple rules to remember:

              NO SPITTING.

              DO NOT CROSS MISTER MOLOCH.

              https://youtu.be/dQw4w9WgXcQ?si=uHdfqTMS7FMTWREf

              1 Reply Last reply Reply Quote
              • ZoolZ
                Zool
                last edited by

                Save looks like it may be a bug.

                Spell is weird and has an odd grapple check which confuses things. Will try look at the save.

                What class did you cast it with?

                > !!!MOLES for the MOLE GOD!!!

                L CadizC 2 Replies Last reply Reply Quote
                • L
                  listen4silence @Zool
                  last edited by

                  @Zool

                  1000066509.jpg

                  This picture is one of my Wizards casting it, grabbed it from a video I made for Echo approx 2 years ago.

                  1 Reply Last reply Reply Quote
                  • CadizC
                    Cadiz @Zool
                    last edited by

                    @Zool pure wiz level 10

                    Zool's rule - don't be a dick.

                    1 Reply Last reply Reply Quote
                    • 1 / 1
                    • First post
                      Last post