Player Resource Consortium

Neverwinter Nights => Help => Topic started by: Dark_Ansem on May 29, 2012, 04:52:56 AM

Title: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on May 29, 2012, 04:52:56 AM
where does one modify the monster abilities (listed under the "monster ability" tab) in order to make them more similar to the PnP?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: DM Heatstroke on May 29, 2012, 10:51:05 AM
where does one modify the monster abilities (listed under the "monster ability" tab) in order to make them more similar to the PnP?

Find their scripts in the spells.2da.  The NWN Wiki (http://nwn.wikia.com/wiki/Main_Page) is also a good place to find out.
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on May 29, 2012, 11:44:01 AM
ah those abilities (like Bodak's death gaze or cockatrice's petrify touch) are considered as spells?

apparently, an example is that it should work already

Quote
//::///////////////////////////////////////////////
//:: Dragon Breath Fire
//:: NW_S1_DragFire
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
    Calculates the proper damage and DC Save for the
    breath weapon based on the HD of the dragon.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: May 9, 2001
//:://////////////////////////////////////////////

const string DRAGBREATHLOCK = "DragonBreathLock";


//modified to use the breath include - Fox
#include "prc_alterations"
#include "prc_inc_breath"

void main()
{
    // Check the dragon breath delay lock
    if(GetLocalInt(OBJECT_SELF, DRAGBREATHLOCK))
    {
        SendMessageToPC(OBJECT_SELF, "You cannot use your breath weapon again so soon");
        return;
    }

    //Declare major variables
    int nAge = GetHitDice(OBJECT_SELF);
    int nDCBoost = nAge / 2;
    int nDamageDice;
    struct breath FireBreath;

    //Use the HD of the creature to determine damage and save DC
    if (nAge <= 6) //Wyrmling
    {
        nDamageDice = 2;
    }
    else if (nAge >= 7 && nAge <= 9) //Very Young
    {
        nDamageDice = 4;
    }
    else if (nAge >= 10 && nAge <= 12) //Young
    {
        nDamageDice = 6;
    }
    else if (nAge >= 13 && nAge <= 15) //Juvenile
    {
        nDamageDice = 8;
    }
    else if (nAge >= 16 && nAge <= 18) //Young Adult
    {
        nDamageDice = 10;
    }
    else if (nAge >= 19 && nAge <= 21) //Adult
    {
        nDamageDice = 12;
    }
    else if (nAge >= 22 && nAge <= 24) //Mature Adult
    {
        nDamageDice = 14;
    }
    else if (nAge >= 25 && nAge <= 27) //Old
    {
        nDamageDice = 16;
    }
    else if (nAge >= 28 && nAge <= 30) //Very Old
    {
        nDamageDice = 18;
    }
    else if (nAge >= 31 && nAge <= 33) //Ancient
    {
        nDamageDice = 20;
    }
    else if (nAge >= 34 && nAge <= 37) //Wyrm
    {
        nDamageDice = 22;
    }
    else if (nAge > 37) //Great Wyrm
    {
        nDamageDice = 24;
    }

    //create the breath - 40' ~ 14m? - should set it based on size later
    FireBreath = CreateBreath(OBJECT_SELF, FALSE, 40.0, DAMAGE_TYPE_FIRE, 10, nDamageDice, ABILITY_CONSTITUTION, nDCBoost);

    //Apply the breath
    PRCPlayDragonBattleCry();
    ApplyBreath(FireBreath, GetSpellTargetLocation());

    //Apply the recharge lock
    SetLocalInt(OBJECT_SELF, DRAGBREATHLOCK, TRUE);

    // Schedule opening the delay lock
    float fDelay = RoundsToSeconds(FireBreath.nRoundsUntilRecharge);
    SendMessageToPC(OBJECT_SELF, "Your breath weapon will be ready again in " + IntToString(FireBreath.nRoundsUntilRecharge) + " rounds.");

    DelayCommand(fDelay, DeleteLocalInt(OBJECT_SELF, DRAGBREATHLOCK));
    DelayCommand(fDelay, SendMessageToPC(OBJECT_SELF, "Your breath weapon is ready now"));
}

but when opening it in the toolset, it says that those 2
#include "prc_alterations"
#include "prc_inc_breath"
are not found. is that normal?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: xwarren on May 29, 2012, 03:23:02 PM
but when opening it in the toolset, it says that those 2
#include "prc_alterations"
#include "prc_inc_breath"
are not found. is that normal?
By default prc_include.hak is not added to mod during installation. It's only needed to compile prc scripts, and we don't recommend doing that in Toolset (use prc script compiler or advanced script compiler).
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on May 29, 2012, 04:46:22 PM
so breath weapon is still vanilla.. right?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: xwarren on May 30, 2012, 03:05:48 AM
so breath weapon is still vanilla.. right?
It's chocolate ;p
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on May 30, 2012, 03:12:09 AM
it works with recharge time already?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on June 19, 2012, 09:06:57 AM
It's chocolate ;p
so it already implements a recharge time, even for dragons?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: DM Heatstroke on June 19, 2012, 10:33:18 AM
so it already implements a recharge time, even for dragons?

I doubt it.  The "recharge time" you are talking about would be part of the creatures AI, not the breath weapon itself.
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: xwarren on June 19, 2012, 10:51:36 AM
I doubt it.  The "recharge time" you are talking about would be part of the creatures AI, not the breath weapon itself.
Actually the code for dragon breath weapons does contain recharge counter, but I imagine this will only work if the dragon has unlimited uses of breath weapon. I haven't noticed any AI conflicts, but I haven't really payed any attention for this aspect of the game.
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on June 19, 2012, 02:20:19 PM
how could I set unlimited breath weapon?
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: xwarren on June 19, 2012, 02:27:57 PM
how could I set unlimited breath weapon?
Appearently it's not possible - I'm starting to think that there's a bug in PRC code. Reacharged breath works for shifters with unlimited breath uses, but it probably breaks 'regular' dragons. I'll have to check that in game.
Title: Re: Turn monster abilities to have a recharge time and to scale appropriately
Post by: Dark_Ansem on June 19, 2012, 04:50:23 PM
thank you kind sir :D