MMD_PRC8/_module/nss/rnd_addhit.nss
Jaysyn904 adeff59f82 Initial commit
Initial commit.
2024-08-02 23:18:00 -04:00

75 lines
7.7 KiB
Plaintext

void main()
{
int iEnchLvl = (GetLocalInt(OBJECT_SELF,"lvl")+d4(1));
itemproperty ipAdd;
switch(iEnchLvl)
{
case 1: ipAdd=ItemPropertyAttackBonus(1); break; //impossible result
case 2: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 3: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DAZE,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 4: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DEAFNESS,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 5: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_HOLD,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 6: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_KNOCK,IP_CONST_ONHIT_SAVEDC_14); break;
case 7: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_CONFUSION,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 8: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLOW,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 9: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DOOM,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 10: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_BLINDNESS,IP_CONST_ONHIT_SAVEDC_14,IP_CONST_ONHIT_DURATION_75_PERCENT_1_ROUND); break;
case 11: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_STUN,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 12: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DAZE,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 13: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DEAFNESS,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 14: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_HOLD,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 15: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DISEASE,IP_CONST_ONHIT_SAVEDC_16); break;
case 16: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_CONFUSION,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 17: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLOW,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 18: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DOOM,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 19: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_BLINDNESS,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 20: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_ITEMPOISON,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_POISON_1D2_CONDAMAGE); break;
case 21: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_INFLICT_LIGHT_WOUNDS,1); break;
case 22: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ACID_SPLASH,1); break;
case 23: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DOOM,2); break;
case 24: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_FEAR,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 25: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLEEP,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ONHIT_DURATION_50_PERCENT_2_ROUNDS); break;
case 26: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_WOUNDING,IP_CONST_ONHIT_SAVEDC_16,2); break;
case 27: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_ABILITYDRAIN,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ABILITY_STR); break;
case 28: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_ABILITYDRAIN,IP_CONST_ONHIT_SAVEDC_16,IP_CONST_ABILITY_CON); break;
case 29: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_DISMISSAL,3); break;
case 30: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_BALAGARNSIRONHORN,4); break;
case 31: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_INFLICT_SERIOUS_WOUNDS,4); break;
case 32: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_MAGIC_MISSILE,5); break;
case 33: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_MELFS_ACID_ARROW,5); break;
case 34: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_FIREBALL,5); break;
case 35: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_FLAME_LASH,5); break;
case 36: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_HAMMER_OF_THE_GODS,5); break;
case 37: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_DISPELMAGIC,IP_CONST_ONHIT_SAVEDC_18); break;
case 38: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_HUMANOID_ORC); break;
case 39: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_HUMANOID_REPTILIAN); break;
case 40: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_UNDEAD); break;
case 41: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_HUMANOID_GOBLINOID); break;
case 42: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_ABERRATION); break;
case 43: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYRACE,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_RACIALTYPE_OUTSIDER); break;
case 44: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_CHAIN_LIGHTNING,5); break;
case 45: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_BALL_LIGHTNING,5); break;
case 46: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ISAACS_LESSER_MISSILE_STORM,5); break;
case 47: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_KNOCKDOWN,5); break;
case 48: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_INFLICT_CRITICAL_WOUNDS,6); break;
case 49: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_ISAACS_GREATER_MISSILE_STORM,6); break;
case 50: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_LEVELDRAIN,IP_CONST_ONHIT_SAVEDC_18,1); break;
case 51: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYALIGNMENTGROUP,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_ALIGNMENTGROUP_GOOD); break;
case 52: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYALIGNMENTGROUP,IP_CONST_ONHIT_SAVEDC_18,IP_CONST_ALIGNMENTGROUP_LAWFUL); break;
case 53: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYALIGNMENTGROUP,IP_CONST_ONHIT_SAVEDC_20,IP_CONST_ALIGNMENTGROUP_CHAOTIC); break;
case 54: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_SLAYALIGNMENTGROUP,IP_CONST_ONHIT_SAVEDC_20,IP_CONST_ALIGNMENTGROUP_EVIL); break;
case 55: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_POWER_WORD_STUN,7); break;
case 56: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_PHANTASMAL_KILLER,7); break;
case 57: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_HORRID_WILTING,7); break;
case 58: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_SLAY_LIVING,7); break;
case 59: ipAdd=ItemPropertyOnHitCastSpell(IP_CONST_ONHIT_CASTSPELL_FLESH_TO_STONE,7); break;
case 60: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_MORDSDISJUNCTION,IP_CONST_ONHIT_SAVEDC_22); break;
case 61: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_VORPAL,IP_CONST_ONHIT_SAVEDC_22); break;
case 62: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_VORPAL,IP_CONST_ONHIT_SAVEDC_24); break;
case 63: ipAdd=ItemPropertyOnHitProps(IP_CONST_ONHIT_VORPAL,IP_CONST_ONHIT_SAVEDC_26); break;
}
AddItemProperty(DURATION_TYPE_PERMANENT,ipAdd,OBJECT_SELF);
}