Sign in to follow this  
Todd Hellid

Make Rockets and Grenades more powerful

Recommended Posts

Hrm, I've never looked at grenades before, but it seems like their damage is handled by the script k_sup_grenade if I am understanding things correctly. For example, the first section deals with frag grenades:

    if((nSpell == 87) || (nSpell == 246)) //Fragmentation Grenade (Normal and Launched)
    {
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(1044),GetSpellTargetLocation());
        nVFX = 3003;
        nDamage = 20 + nFeat;
        nDC = 15;

        //oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 4.0, GetSpellTargetLocation(), FALSE, 65);
        oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 4.0, GetSpellTargetLocation(), FALSE);
        while(GetIsObjectValid(oTarget))
        {
            if(!GetIsNeutral(oTarget))
            {
                SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, GetSpellId(), SWFP_HARMFUL));
                nDCCheck = nDC;
                nDCCheck -= GR_GetGrenadeDC(oTarget);
                if(!ReflexSave(oTarget, nDCCheck, SAVING_THROW_TYPE_NONE))
                {
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nDamage, DAMAGE_TYPE_PIERCING), oTarget);
                }
                else
                {
                    int nApply;
                    // DJS-OEI 11/20/2003
                    // If the target has the Evasion feat, the damage on a successful
                    // Reflex save is 0. Otherwise, it's half the original damage.
                    if( GetHasFeat( FEAT_EVASION, oTarget ) ) {
                        nApply = 0;
                    }
                    else {
                        nApply = nDamage / 2;
                    }
                    ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(nApply, DAMAGE_TYPE_PIERCING), oTarget);
                }
            }
            //oTarget = GetNextObjectInShape(SHAPE_SPHERE, 4.0, GetSpellTargetLocation(), FALSE, 65);
            oTarget = GetNextObjectInShape(SHAPE_SPHERE, 4.0, GetSpellTargetLocation(), FALSE);
        }
    }
Where:

int nFeat = GetHasFeat(FEAT_WEAPON_SPECIALIZATION_GRENADE);
The description in the frag grenade's UTI (g_w_fraggren01) says:

Damage: Piercing, 20pts
Area of Effect: 4 meters
Range: Long
Save (Reflex):
DC15 for half damage

Fragmentation grenades are very basic. They explode when thrown, showering the enemy in shrapnel. It's not elegant, but it's definitely effective.
So you'd need someone to edit the script and, ideally, update all the UTIs with the revised values. It looks like Obsidian added a bunch of comments in their revision of the script, which is handy.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Sign in to follow this