Author Topic: Script EffectDamageIncrease more than 20 / 2d12, how?  (Read 463 times)

Legacy_Devling

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« on: March 07, 2014, 07:43:18 pm »


               

I am trying to change the Divine Might feat, so if my conditions are met, it will increase Divine damage by more than 20 damage, maybe 3d12 or 6d6.


Does anyone know if this is possible, if so, how is it done?


Thanks in advance



               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #1 on: March 07, 2014, 07:59:10 pm »


               

2da edits. I'll post ours when I get home.


 


Funky



               
               

               
            

Legacy_Devling

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #2 on: March 08, 2014, 02:36:59 pm »


               


2da edits. I'll post ours when I get home.


 


Funky




Thanks would be great


               
               

               
            

Legacy_Devling

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #3 on: March 09, 2014, 07:13:18 pm »


               

lf help



               
               

               
            

Legacy_Devling

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #4 on: March 11, 2014, 06:32:12 pm »


               

can anyone help?



               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #5 on: March 12, 2014, 08:11:32 am »


               

Sorry it took so long to get back to you. Here is the 2da:


2da download


 


I think it's also used in CEP 2.3 and 2.4, now, but I can't remember.


 


LMK if you have any questions.


 


Funky



               
               

               
            

Legacy_Devling

  • Newbie
  • *
  • Posts: 30
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #6 on: March 13, 2014, 10:08:58 am »


               


Sorry it took so long to get back to you. Here is the 2da:


2da download


 


I think it's also used in CEP 2.3 and 2.4, now, but I can't remember.


 


LMK if you have any questions.


 


Funky




How do i call these functions in the scripts?


 


Tried to write the game string ingame, eg. 5093 for 10d10 dmg, didnt work.


Also tried DAMAGE_BONUS_10d10, didnt work either. 


anyone can help?



               
               

               
            

Legacy_FunkySwerve

  • Hero Member
  • *****
  • Posts: 2325
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #7 on: March 14, 2014, 12:17:21 am »


               

You use the 2da line number (the leftmost number), as all consts do. Take a look at the nwscript core include to see the default consts and compare them to 2da values. I suggest you add new consts in a different file, though, if you want to use them (for, say, ease of readability).


 


For an example of how to declare your own consts, here's an example file from the legendary leveler showing both const strings and const ints. You'll be using const ints for your damage types:



// This lists all of the constant ints that are to be used for LL

// This is the path to your servervault. It must be set correctly for Letoscript to work.

//const string NWNPATH = "C:/NeverwinterNights/NWN/servervault/";//windows sample

const string NWNPATH = "/home/funkyswerve/nwn/servervault/";//linux sample

const string NWNPATHDEV = "/home/funkyswerve/nwn-dev/servervault/";

const int ALSO_USING_DAR = TRUE;//set this to true if also using DAR subrace system



const int DEBUG = FALSE;//set this to TRUE to enable debugging



const int DEV_CRIT_DISABLED = FALSE;//set this to TRUE to disable devastating critical feat selection on levelup



// Experience Requirements for Legendary Levels

// Adjust as desired. These were set by increasing the additional amount required for the

// previous level by 25%. Level 40 required 39000 experience points, so Level 41 was set

// to require 39000 x 1.25 = 48800 experience points under the old system. This will be ALOT on some worlds,

// and not enough on others, so adjust to suit your needs. Under the new system the progression is a linear

// rather than an exponential increase in the additional amount needed per level.

const int BASE_XP_LVL_40 = 780000;//220   //780000

const int XP_REQ_LVL41 = 1000000;//240  //828800;    //48800

const int XP_REQ_LVL42 = 1240000;//280  //889700;    //60900

const int XP_REQ_LVL43 = 1520000;//320  //965900;    //76200

const int XP_REQ_LVL44 = 1840000;//360  //1061100;    //95200

const int XP_REQ_LVL45 = 2200000;//400  //1180100;   //119000

const int XP_REQ_LVL46 = 2600000;//440  //1328900;   //148800

const int XP_REQ_LVL47 = 3040000;//480  //1514900;   //186000

const int XP_REQ_LVL48 = 3520000;//520  //1747400;   //232500

const int XP_REQ_LVL49 = 4040000;//560  //2038000;   //290600

const int XP_REQ_LVL50 = 4600000;//600  //2401200;   //363200

const int XP_REQ_LVL51 = 5200000;//640  //2855200;   //454000

const int XP_REQ_LVL52 = 5840000;//680  //3422700;   //567500

const int XP_REQ_LVL53 = 6520000;//720  //4132100;   //709400

const int XP_REQ_LVL54 = 7240000;//760  //5018900;   //886800

const int XP_REQ_LVL55 = 8000000;//800  //6127300;  //1108400

const int XP_REQ_LVL56 = 8800000;//840  //7512900;  //1385600

const int XP_REQ_LVL57 = 9640000;//880  //9244800;  //1731900

const int XP_REQ_LVL58 = 10520000;//920  //11409700;  //2164900

const int XP_REQ_LVL59 = 11440000;//1060  //14115900;  //2706200

const int XP_REQ_LVL60 = 12500000;//17498600;  //3382700

Funky



               
               

               
            

Legacy_MagicalMaster

  • Hero Member
  • *****
  • Posts: 2712
  • Karma: +0/-0
Script EffectDamageIncrease more than 20 / 2d12, how?
« Reply #8 on: March 15, 2014, 05:56:29 am »


               

If you're fine with static numbers only (meaning Divine Shield could do 60 damage but not 6d20) and fine with it not displaying on the player sheet correctly (it functions correctly in the combat log) you could simply use the following function.  So EffectDamageIncreaseImproved(95, DAMAGE_TYPE_NEGATIVE) would cause the player to do 95 more Negative damage per hit -- subject to the same rules as EffectDamageIncrease as it still uses that as a base.



//// Returns a damage increase effect of the specified damage type, no limit (default function has a limit of 20)
effect EffectDamageIncreaseImproved(int nAmount, int nType)
{
    // Declare variables
    int nDam, nDone;
    effect eDam;

    // Loop until we've exhausted nAmount
    while (nAmount)
    {
        // Simple if nAmount is 1-5
        if (nAmount < 6)
        {
            nDam = nAmount;
            nAmount = 0;
        }
        // Adjust for nAmount being 6-20
        else if (nAmount < 21)
        {
            nDam = nAmount + 10;
            nAmount = 0;
        }
        // Make a damage increase of 20 and drop nAmount by 20
        else
        {
            nDam = 30;
            nAmount -= 20;
        }

        // Make the damage effect the first time through the loop
        if (!nDone)
        {
            eDam = EffectDamageIncrease(nDam, nType);
            nDone = 1;
        }
        // Link it for the second time and beyond
        else
        {
            eDam = EffectLinkEffects(eDam, EffectDamageIncrease(nDam, nType));
        }
    }

    // Return our effect
    return eDam;
}