diff --git a/nwn/nwnprc/trunk/2das/iprp_damagecost.2da b/nwn/nwnprc/trunk/2das/iprp_damagecost.2da index 32a47ee8..13417c33 100644 --- a/nwn/nwnprc/trunk/2das/iprp_damagecost.2da +++ b/nwn/nwnprc/trunk/2das/iprp_damagecost.2da @@ -1,76 +1,106 @@ 2DA V2.0 - Name Label Cost NumDice Die Rank GameString VFX -0 **** Random 0 **** **** **** **** 0 -1 1035 1 0.125 0 1 1 **** 0 -2 1036 2 0.25 0 2 2 **** 0 -3 1037 3 0.5 0 3 4 **** 0 -4 1038 4 0.75 0 4 6 **** 1 -5 1039 5 1 0 5 8 **** 1 -6 1040 1d4 0.375 1 4 3 58314 0 -7 1041 1d6 0.625 1 6 5 58315 1 -8 1042 1d8 0.875 1 8 7 58316 1 -9 1043 1d10 1.125 1 10 9 58317 1 -10 1044 2d6 1.5 2 6 14 58318 1 -11 83572 2d8 2 2 8 17 83571 1 -12 83592 2d4 1 2 4 10 83595 1 -13 83590 2d10 2.5 2 10 22 83594 1 -14 83591 1d12 1.375 1 12 12 83596 1 -15 83598 2d12 3 2 12 26 83597 1 -16 83585 6 1.25 0 6 11 84297 1 -17 83586 7 1.5 0 7 13 84298 1 -18 83587 8 1.75 0 8 16 84299 1 -19 83588 9 2 0 9 18 84300 1 -20 83589 10 2.25 0 10 20 84301 1 -21 84251 11 2.5 0 11 23 84302 1 -22 84252 12 2.75 0 12 24 84303 1 -23 84253 13 3 0 13 27 84304 1 -24 84254 14 3.25 0 14 30 84305 1 -25 84255 15 3.5 0 15 32 84306 1 -26 84256 16 3.75 0 16 33 84307 1 -27 84257 17 4 0 17 35 84308 1 -28 84258 18 4.25 0 18 39 84309 1 -29 84259 19 4.5 0 19 40 84310 1 -30 84260 20 4.75 0 20 43 84311 1 -31 5068 3d6 2.375 3 6 21 16825573 1 -32 5069 4d6 3.25 4 6 29 16825574 1 -33 5070 5d6 4.125 5 6 37 16825575 1 -34 5071 6d6 5 6 6 44 16825576 1 -35 5072 7d6 5.875 7 6 48 16825577 1 -36 5073 8d6 6.75 8 6 53 16825578 1 -37 16823558 3d4 1.625 3 4 15 16823562 1 -38 16823559 4d4 2.25 4 4 19 16823563 1 -39 16823560 5d4 2.875 5 4 25 16823564 1 -40 16823561 6d4 3.5 6 4 31 16823565 1 -41 5077 3d8 3.125 3 8 28 16826366 1 -42 5078 4d8 4.25 4 8 28 16826367 1 -43 5079 5d8 5.375 5 8 47 16826368 1 -44 5080 6d8 6.5 6 8 51 16826369 1 -45 5081 7d8 7.625 7 8 55 16826370 1 -46 5082 8d8 8.75 8 8 59 16826371 1 -47 5083 9d8 9.875 9 8 62 16826372 1 -48 5084 10d8 11 10 8 64 16826373 1 -49 16825739 7d4 4.125 7 4 39 16825738 1 -50 16825741 8d4 4.75 8 4 42 16825740 1 -51 16825743 9d4 5.375 9 4 46 16825742 1 -52 16825745 10d4 6 10 4 49 16825744 1 -53 16825747 9d6 7.625 9 6 54 16825746 1 -54 16825749 10d6 8.5 10 6 58 16825748 1 -55 16825751 3d10 3.875 3 10 41 16825750 1 -56 16825753 4d10 5.25 4 10 45 16825752 1 -57 16825755 5d10 6.625 5 10 52 16825754 1 -58 16825757 6d10 8 6 10 57 16825756 1 -59 16825759 7d10 9.375 7 10 60 16825758 1 -60 16825761 8d10 10.75 8 10 63 16825760 1 -61 16825763 9d10 12.125 9 10 66 16825762 1 -62 16825765 10d10 13.5 10 10 68 16825764 1 -63 16825767 3d12 4.625 3 12 37 16825766 1 -64 16825769 4d12 6.25 4 12 50 16825768 1 -65 16825771 5d12 7.875 5 12 56 16825770 1 -66 16825773 6d12 9.5 6 12 61 16825772 1 -67 16825775 7d12 11.125 7 12 65 16825774 1 -68 16825777 8d12 12.75 8 12 67 16825776 1 -69 16825779 9d12 14.375 9 12 69 16825778 1 -70 16825781 10d12 16 10 12 70 16825780 1 -71 16833095 1d3 0.25 1 3 71 16833128 0 -72 16833129 4d3 1.625 4 3 72 16833130 1 + Name Label Cost NumDice Die Rank GameString VFX +0 **** Random 0 **** **** **** **** 0 +1 1035 1 0.125 0 1 1 **** 0 +2 1036 2 0.25 0 2 2 **** 0 +3 1037 3 0.5 0 3 4 **** 0 +4 1038 4 0.75 0 4 6 **** 1 +5 1039 5 1 0 5 7 **** 1 +6 1040 1d4 0.375 1 4 5 58314 0 +7 1041 1d6 0.625 1 6 8 58315 1 +8 1042 1d8 0.875 1 8 12 58316 1 +9 1043 1d10 1.125 1 10 15 58317 1 +10 1044 2d6 1.5 2 6 20 58318 1 +11 83572 2d8 2 2 8 27 83571 1 +12 83592 2d4 1 2 4 11 83595 1 +13 83590 2d10 2.5 2 10 34 83594 1 +14 83591 1d12 1.375 1 12 21 83596 1 +15 83598 2d12 3 2 12 42 83597 1 +16 83585 6 1.25 0 6 9 84297 1 +17 83586 7 1.5 0 7 10 84298 1 +18 83587 8 1.75 0 8 13 84299 1 +19 83588 9 2 0 9 14 84300 1 +20 83589 10 2.25 0 10 16 84301 1 +21 84251 11 2.5 0 11 17 84302 1 +22 84252 12 2.75 0 12 22 84303 1 +23 84253 13 3 0 13 23 84304 1 +24 84254 14 3.25 0 14 24 84305 1 +25 84255 15 3.5 0 15 25 84306 1 +26 84256 16 3.75 0 16 28 84307 1 +27 84257 17 4 0 17 29 84308 1 +28 84258 18 4.25 0 18 31 84309 1 +29 84259 19 4.5 0 19 32 84310 1 +30 84260 20 4.75 0 20 35 84311 1 +31 5068 3d6 2.375 3 6 30 16825573 1 +32 5069 4d6 3.25 4 6 40 16825574 1 +33 5070 5d6 4.125 5 6 50 16825575 1 +34 5071 6d6 5 6 6 61 16825576 1 +35 5072 7d6 5.875 7 6 72 16825577 1 +36 5073 8d6 6.75 8 6 79 16825578 1 +37 16823558 3d4 1.625 3 4 19 16823562 1 +38 16823559 4d4 2.25 4 4 26 16823563 1 +39 16823560 5d4 2.875 5 4 33 16823564 1 +40 16823561 6d4 3.5 6 4 39 16823565 1 +41 5077 3d8 3.125 3 8 41 16826366 1 +42 5078 4d8 4.25 4 8 55 16826367 1 +43 5079 5d8 5.375 5 8 67 16826368 1 +44 5080 6d8 6.5 6 8 80 16826369 1 +45 5081 7d8 7.625 7 8 87 16826370 1 +46 5082 8d8 8.75 8 8 91 16826371 1 +47 5083 9d8 9.875 9 8 94 16826372 1 +48 5084 10d8 11 10 8 97 16826373 1 +49 16825739 7d4 4.125 7 4 47 16825738 1 +50 16825741 8d4 4.75 8 4 54 16825740 1 +51 16825743 9d4 5.375 9 4 60 16825742 1 +52 16825745 10d4 6 10 4 69 16825744 1 +53 16825747 9d6 7.625 9 6 86 16825746 1 +54 16825749 10d6 8.5 10 6 90 16825748 1 +55 16825751 3d10 3.875 3 10 51 16825750 1 +56 16825753 4d10 5.25 4 10 68 16825752 1 +57 16825755 5d10 6.625 5 10 84 16825754 1 +58 16825757 6d10 8 6 10 88 16825756 1 +59 16825759 7d10 9.375 7 10 93 16825758 1 +60 16825761 8d10 10.75 8 10 96 16825760 1 +61 16825763 9d10 12.125 9 10 99 16825762 1 +62 16825765 10d10 13.5 10 10 101 16825764 1 +63 16825767 3d12 4.625 3 12 62 16825766 1 +64 16825769 4d12 6.25 4 12 81 16825768 1 +65 16825771 5d12 7.875 5 12 89 16825770 1 +66 16825773 6d12 9.5 6 12 92 16825772 1 +67 16825775 7d12 11.125 7 12 95 16825774 1 +68 16825777 8d12 12.75 8 12 98 16825776 1 +69 16825779 9d12 14.375 9 12 100 16825778 1 +70 16825781 10d12 16 10 12 102 16825780 1 +71 16833095 1d3 0.25 1 3 3 16833128 0 +72 16833129 4d3 1.625 4 3 18 16833130 1 +73 16857216 21 5.25 0 21 36 16857217 1 +74 16857218 22 5.5 0 22 37 16857219 1 +75 16857220 23 5.75 0 23 38 16857221 1 +76 16857222 24 6 0 24 43 16857223 1 +77 16857224 25 6.25 0 25 44 16857225 1 +78 16857226 26 6.5 0 26 45 16857227 1 +79 16857228 27 6.75 0 27 46 16857229 1 +80 16857230 28 7 0 28 48 16857231 1 +81 16857232 29 7.25 0 29 49 16857233 1 +82 16857234 30 7.5 0 30 52 16857235 1 +83 16857236 31 7.75 0 31 53 16857237 1 +84 16857238 32 8 0 32 56 16857239 1 +85 16857240 33 8.25 0 33 57 16857241 1 +86 16857242 34 8.5 0 34 58 16857243 1 +87 16857244 35 8.75 0 35 59 16857245 1 +88 16857246 36 9 0 36 63 16857247 1 +89 16857248 37 9.25 0 37 64 16857249 1 +90 16857250 38 9.5 0 38 65 16857251 1 +91 16857252 39 9.75 0 39 66 16857253 1 +92 16857254 40 10 0 40 70 16857255 1 +93 16857256 41 10.25 0 41 71 16857257 1 +94 16857258 42 10.5 0 42 73 16857259 1 +95 16857260 43 10.75 0 43 74 16857261 1 +96 16857262 44 11 0 44 75 16857263 1 +97 16857264 45 11.25 0 45 76 16857265 1 +98 16857266 46 11.5 0 46 77 16857267 1 +99 16857268 47 11.75 0 47 78 16857269 1 +100 16857270 48 12 0 48 82 16857271 1 +101 16857272 49 12.25 0 49 83 16857273 1 +102 16857274 50 12.5 0 50 85 16857275 1 diff --git a/nwn/nwnprc/trunk/include/inc_dispel.nss b/nwn/nwnprc/trunk/include/inc_dispel.nss index 01886d43..6d09d8e2 100644 --- a/nwn/nwnprc/trunk/include/inc_dispel.nss +++ b/nwn/nwnprc/trunk/include/inc_dispel.nss @@ -194,9 +194,9 @@ void spellsDispelAoEMod(object oTargetAoE, object oCaster, int nCasterLevel) void DispelMagicBestMod(object oTarget, int nCasterLevel) { - /// I *really* want to rewrite this one so that it simply dispels the most useful effect - /// instead of just the one with the highest caster level. - /// Sure hate to dispel mage armor on somebody who's immune to necromancy. Difficult Decision, these. + // I *really* want to rewrite this one so that it simply dispels the most useful effect + // instead of just the one with the highest caster level. + // Sure hate to dispel mage armor on somebody who's immune to necromancy. Difficult Decision, these. //:: calls a function to determine whether infestation of maggots is in effect @@ -897,6 +897,47 @@ int PRCGetSpellBreachProtection(int nLastChecked) } int PRCRemoveProtections(int nSpell_ID, object oTarget, int nCount) +{ + // Declare major variables + effect eProtection; + int nCnt = 0; + + // Check if the target has any effects from the specified spell ID + if (GetHasSpellEffect(nSpell_ID, oTarget)) + { + // Start looping through all effects on the target + eProtection = GetFirstEffect(oTarget); + while (GetIsEffectValid(eProtection)) + { + // Only remove effects that: + // - Match the given spell ID + // - Are Magical (to comply with Breach spell behavior) + if (GetEffectSpellId(eProtection) == nSpell_ID && + GetEffectSubType(eProtection) == SUBTYPE_MAGICAL) + { + RemoveEffect(oTarget, eProtection); + nCnt++; + } + + // Move to the next effect + eProtection = GetNextEffect(oTarget); + } + } + + // Return 1 if any effects were removed, otherwise 0 + if (nCnt > 0) + { + return 1; + } + else + { + return 0; + } +} + +// This was dispelling Extraordinary, Supernatural & Unyielding effects -Jaysyn + +/* int PRCRemoveProtections(int nSpell_ID, object oTarget, int nCount) { //Declare major variables effect eProtection; @@ -926,7 +967,7 @@ int PRCRemoveProtections(int nSpell_ID, object oTarget, int nCount) { return 0; } -} +} */ //------------------------------------------------------------------------------ // Attempts a dispel on one target, with all safety checks put in. diff --git a/nwn/nwnprc/trunk/include/prc_inc_combat.nss b/nwn/nwnprc/trunk/include/prc_inc_combat.nss index cfff20f6..6bd22aca 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_combat.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_combat.nss @@ -4351,6 +4351,67 @@ int GetDamageByConstant(int iDamageConst, int iItemProp) return d3(1); case IP_CONST_DAMAGEBONUS_4d3: return d3(4); + case IP_CONST_DAMAGEBONUS_21: + return 21; + case IP_CONST_DAMAGEBONUS_22: + return 22; + case IP_CONST_DAMAGEBONUS_23: + return 23; + case IP_CONST_DAMAGEBONUS_24: + return 24; + case IP_CONST_DAMAGEBONUS_25: + return 25; + case IP_CONST_DAMAGEBONUS_26: + return 26; + case IP_CONST_DAMAGEBONUS_27: + return 27; + case IP_CONST_DAMAGEBONUS_28: + return 28; + case IP_CONST_DAMAGEBONUS_29: + return 29; + case IP_CONST_DAMAGEBONUS_30: + return 30; + case IP_CONST_DAMAGEBONUS_31: + return 31; + case IP_CONST_DAMAGEBONUS_32: + return 32; + case IP_CONST_DAMAGEBONUS_33: + return 33; + case IP_CONST_DAMAGEBONUS_34: + return 34; + case IP_CONST_DAMAGEBONUS_35: + return 35; + case IP_CONST_DAMAGEBONUS_36: + return 36; + case IP_CONST_DAMAGEBONUS_37: + return 37; + case IP_CONST_DAMAGEBONUS_38: + return 38; + case IP_CONST_DAMAGEBONUS_39: + return 39; + case IP_CONST_DAMAGEBONUS_40: + return 40; + case IP_CONST_DAMAGEBONUS_41: + return 41; + case IP_CONST_DAMAGEBONUS_42: + return 42; + case IP_CONST_DAMAGEBONUS_43: + return 43; + case IP_CONST_DAMAGEBONUS_44: + return 44; + case IP_CONST_DAMAGEBONUS_45: + return 45; + case IP_CONST_DAMAGEBONUS_46: + return 46; + case IP_CONST_DAMAGEBONUS_47: + return 47; + case IP_CONST_DAMAGEBONUS_48: + return 48; + case IP_CONST_DAMAGEBONUS_49: + return 49; + case IP_CONST_DAMAGEBONUS_50: + return 50; + } } else @@ -4417,6 +4478,66 @@ int GetDamageByConstant(int iDamageConst, int iItemProp) return d10(2); case DAMAGE_BONUS_2d12: return d12(2); + case DAMAGE_BONUS_21: + return 21; + case DAMAGE_BONUS_22: + return 22; + case DAMAGE_BONUS_23: + return 23; + case DAMAGE_BONUS_24: + return 24; + case DAMAGE_BONUS_25: + return 25; + case DAMAGE_BONUS_26: + return 26; + case DAMAGE_BONUS_27: + return 27; + case DAMAGE_BONUS_28: + return 28; + case DAMAGE_BONUS_29: + return 29; + case DAMAGE_BONUS_30: + return 30; + case DAMAGE_BONUS_31: + return 31; + case DAMAGE_BONUS_32: + return 32; + case DAMAGE_BONUS_33: + return 33; + case DAMAGE_BONUS_34: + return 34; + case DAMAGE_BONUS_35: + return 35; + case DAMAGE_BONUS_36: + return 36; + case DAMAGE_BONUS_37: + return 37; + case DAMAGE_BONUS_38: + return 38; + case DAMAGE_BONUS_39: + return 39; + case DAMAGE_BONUS_40: + return 40; + case DAMAGE_BONUS_41: + return 41; + case DAMAGE_BONUS_42: + return 42; + case DAMAGE_BONUS_43: + return 43; + case DAMAGE_BONUS_44: + return 44; + case DAMAGE_BONUS_45: + return 45; + case DAMAGE_BONUS_46: + return 46; + case DAMAGE_BONUS_47: + return 47; + case DAMAGE_BONUS_48: + return 48; + case DAMAGE_BONUS_49: + return 49; + case DAMAGE_BONUS_50: + return 50; } } return 0; diff --git a/nwn/nwnprc/trunk/include/prc_inc_combmove.nss b/nwn/nwnprc/trunk/include/prc_inc_combmove.nss index 97223faa..7e863924 100644 --- a/nwn/nwnprc/trunk/include/prc_inc_combmove.nss +++ b/nwn/nwnprc/trunk/include/prc_inc_combmove.nss @@ -123,10 +123,10 @@ void DoBullRush(object oPC, object oTarget, int nExtraBonus, int nGenerateAoO = int DoTrip(object oPC, object oTarget, int nExtraBonus, int nGenerateAoO = TRUE, int nCounterTrip = TRUE, int nSkipTouch = FALSE, int nAbi = 0); /** - * Will take an int and transform it into one of the DAMAGE_BONUS constants (From 1 to 20). + * Will take an int and transform it into one of the DAMAGE_BONUS constants (From 1 to 50). * * @param nCheck Int to convert - * @return DAMAGE_BONUS_1 to DAMAGE_BONUS_20 + * @return DAMAGE_BONUS_1 to DAMAGE_BONUS_50 */ int GetIntToDamage(int nCheck); @@ -1343,6 +1343,36 @@ int GetIntToDamage(int nCheck) case 18: return DAMAGE_BONUS_18; case 19: return DAMAGE_BONUS_19; case 20: return DAMAGE_BONUS_20; + case 21: return DAMAGE_BONUS_21; + case 22: return DAMAGE_BONUS_22; + case 23: return DAMAGE_BONUS_23; + case 24: return DAMAGE_BONUS_24; + case 25: return DAMAGE_BONUS_25; + case 26: return DAMAGE_BONUS_26; + case 27: return DAMAGE_BONUS_27; + case 28: return DAMAGE_BONUS_28; + case 29: return DAMAGE_BONUS_29; + case 30: return DAMAGE_BONUS_30; + case 31: return DAMAGE_BONUS_31; + case 32: return DAMAGE_BONUS_32; + case 33: return DAMAGE_BONUS_33; + case 34: return DAMAGE_BONUS_34; + case 35: return DAMAGE_BONUS_35; + case 36: return DAMAGE_BONUS_36; + case 37: return DAMAGE_BONUS_37; + case 38: return DAMAGE_BONUS_38; + case 39: return DAMAGE_BONUS_39; + case 40: return DAMAGE_BONUS_40; + case 41: return DAMAGE_BONUS_41; + case 42: return DAMAGE_BONUS_42; + case 43: return DAMAGE_BONUS_43; + case 44: return DAMAGE_BONUS_44; + case 45: return DAMAGE_BONUS_45; + case 46: return DAMAGE_BONUS_46; + case 47: return DAMAGE_BONUS_47; + case 48: return DAMAGE_BONUS_48; + case 49: return DAMAGE_BONUS_49; + case 50: return DAMAGE_BONUS_50; } return -1; } diff --git a/nwn/nwnprc/trunk/include/prc_ipfeat_const.nss b/nwn/nwnprc/trunk/include/prc_ipfeat_const.nss index f4aed584..2f5ed35f 100644 --- a/nwn/nwnprc/trunk/include/prc_ipfeat_const.nss +++ b/nwn/nwnprc/trunk/include/prc_ipfeat_const.nss @@ -713,8 +713,39 @@ const int IP_CONST_ONHIT_CASTSPELL_NIGHTSHADEPOISON = 201; const int IP_CONST_ONHIT_CASTSPELL_LINGDMG = 202; const int IP_CONST_CASTSPELL_ELDRITCH_GLAIVE_ONHIT = 205; -// IP_CONST_DAMAGEBONUS +//:: DAMAGE_BONUS_ +const int DAMAGE_BONUS_21 = 73; +const int DAMAGE_BONUS_22 = 74; +const int DAMAGE_BONUS_23 = 75; +const int DAMAGE_BONUS_24 = 76; +const int DAMAGE_BONUS_25 = 77; +const int DAMAGE_BONUS_26 = 78; +const int DAMAGE_BONUS_27 = 79; +const int DAMAGE_BONUS_28 = 80; +const int DAMAGE_BONUS_29 = 81; +const int DAMAGE_BONUS_30 = 82; +const int DAMAGE_BONUS_31 = 83; +const int DAMAGE_BONUS_32 = 84; +const int DAMAGE_BONUS_33 = 85; +const int DAMAGE_BONUS_34 = 86; +const int DAMAGE_BONUS_35 = 87; +const int DAMAGE_BONUS_36 = 88; +const int DAMAGE_BONUS_37 = 89; +const int DAMAGE_BONUS_38 = 90; +const int DAMAGE_BONUS_39 = 91; +const int DAMAGE_BONUS_40 = 92; +const int DAMAGE_BONUS_41 = 93; +const int DAMAGE_BONUS_42 = 94; +const int DAMAGE_BONUS_43 = 95; +const int DAMAGE_BONUS_44 = 96; +const int DAMAGE_BONUS_45 = 97; +const int DAMAGE_BONUS_46 = 98; +const int DAMAGE_BONUS_47 = 99; +const int DAMAGE_BONUS_48 = 100; +const int DAMAGE_BONUS_49 = 101; +const int DAMAGE_BONUS_50 = 102; +//:: IP_CONST_DAMAGEBONUS const int IP_CONST_DAMAGEBONUS_11 = 21; const int IP_CONST_DAMAGEBONUS_12 = 22; const int IP_CONST_DAMAGEBONUS_13 = 23; @@ -767,6 +798,37 @@ const int IP_CONST_DAMAGEBONUS_9d12 = 69; const int IP_CONST_DAMAGEBONUS_10d12 = 70; const int IP_CONST_DAMAGEBONUS_1d3 = 71; const int IP_CONST_DAMAGEBONUS_4d3 = 72; +const int IP_CONST_DAMAGEBONUS_21 = 73; +const int IP_CONST_DAMAGEBONUS_22 = 74; +const int IP_CONST_DAMAGEBONUS_23 = 75; +const int IP_CONST_DAMAGEBONUS_24 = 76; +const int IP_CONST_DAMAGEBONUS_25 = 77; +const int IP_CONST_DAMAGEBONUS_26 = 78; +const int IP_CONST_DAMAGEBONUS_27 = 79; +const int IP_CONST_DAMAGEBONUS_28 = 80; +const int IP_CONST_DAMAGEBONUS_29 = 81; +const int IP_CONST_DAMAGEBONUS_30 = 82; +const int IP_CONST_DAMAGEBONUS_31 = 83; +const int IP_CONST_DAMAGEBONUS_32 = 84; +const int IP_CONST_DAMAGEBONUS_33 = 85; +const int IP_CONST_DAMAGEBONUS_34 = 86; +const int IP_CONST_DAMAGEBONUS_35 = 87; +const int IP_CONST_DAMAGEBONUS_36 = 88; +const int IP_CONST_DAMAGEBONUS_37 = 89; +const int IP_CONST_DAMAGEBONUS_38 = 90; +const int IP_CONST_DAMAGEBONUS_39 = 91; +const int IP_CONST_DAMAGEBONUS_40 = 92; +const int IP_CONST_DAMAGEBONUS_41 = 93; +const int IP_CONST_DAMAGEBONUS_42 = 94; +const int IP_CONST_DAMAGEBONUS_43 = 95; +const int IP_CONST_DAMAGEBONUS_44 = 96; +const int IP_CONST_DAMAGEBONUS_45 = 97; +const int IP_CONST_DAMAGEBONUS_46 = 98; +const int IP_CONST_DAMAGEBONUS_47 = 99; +const int IP_CONST_DAMAGEBONUS_48 = 100; +const int IP_CONST_DAMAGEBONUS_49 = 101; +const int IP_CONST_DAMAGEBONUS_50 = 102; + // IP_CONST_IMMUNITYSPELL diff --git a/nwn/nwnprc/trunk/include/prc_x2_itemprop.nss b/nwn/nwnprc/trunk/include/prc_x2_itemprop.nss index 424ed0e6..e69f65ba 100644 --- a/nwn/nwnprc/trunk/include/prc_x2_itemprop.nss +++ b/nwn/nwnprc/trunk/include/prc_x2_itemprop.nss @@ -1564,11 +1564,42 @@ int IPGetDamageBonusConstantFromNumber(int nNumber) case 18: return DAMAGE_BONUS_18; case 19: return DAMAGE_BONUS_19; case 20: return DAMAGE_BONUS_20; + case 21: return DAMAGE_BONUS_21; + case 22: return DAMAGE_BONUS_22; + case 23: return DAMAGE_BONUS_23; + case 24: return DAMAGE_BONUS_24; + case 25: return DAMAGE_BONUS_25; + case 26: return DAMAGE_BONUS_26; + case 27: return DAMAGE_BONUS_27; + case 28: return DAMAGE_BONUS_28; + case 29: return DAMAGE_BONUS_29; + case 30: return DAMAGE_BONUS_30; + case 31: return DAMAGE_BONUS_31; + case 32: return DAMAGE_BONUS_32; + case 33: return DAMAGE_BONUS_33; + case 34: return DAMAGE_BONUS_34; + case 35: return DAMAGE_BONUS_35; + case 36: return DAMAGE_BONUS_36; + case 37: return DAMAGE_BONUS_37; + case 38: return DAMAGE_BONUS_38; + case 39: return DAMAGE_BONUS_39; + case 40: return DAMAGE_BONUS_40; + case 41: return DAMAGE_BONUS_41; + case 42: return DAMAGE_BONUS_42; + case 43: return DAMAGE_BONUS_43; + case 44: return DAMAGE_BONUS_44; + case 45: return DAMAGE_BONUS_45; + case 46: return DAMAGE_BONUS_46; + case 47: return DAMAGE_BONUS_47; + case 48: return DAMAGE_BONUS_48; + case 49: return DAMAGE_BONUS_49; + case 50: return DAMAGE_BONUS_50; + } - if (nNumber>20) + if (nNumber>50) { - return DAMAGE_BONUS_20; + return DAMAGE_BONUS_50; } else { diff --git a/nwn/nwnprc/trunk/psionics/psi_pow_ctrlobj.nss b/nwn/nwnprc/trunk/psionics/psi_pow_ctrlobj.nss index 3f5ffd80..cf164f3f 100644 --- a/nwn/nwnprc/trunk/psionics/psi_pow_ctrlobj.nss +++ b/nwn/nwnprc/trunk/psionics/psi_pow_ctrlobj.nss @@ -75,7 +75,37 @@ void ControlObject(object oManifester, object oItem, float fDuration) int nInt = GetAbilityModifier(ABILITY_INTELLIGENCE, oManifester); // Work around for the damage bonus int nDam; - if (nInt >= 20) nDam = DAMAGE_BONUS_20; + if (nInt >= 50) nDam = DAMAGE_BONUS_50; + else if (nInt == 49) nDam = DAMAGE_BONUS_49; + else if (nInt == 48) nDam = DAMAGE_BONUS_48; + else if (nInt == 47) nDam = DAMAGE_BONUS_47; + else if (nInt == 46) nDam = DAMAGE_BONUS_46; + else if (nInt == 45) nDam = DAMAGE_BONUS_45; + else if (nInt == 44) nDam = DAMAGE_BONUS_44; + else if (nInt == 43) nDam = DAMAGE_BONUS_43; + else if (nInt == 42) nDam = DAMAGE_BONUS_42; + else if (nInt == 41) nDam = DAMAGE_BONUS_41; + else if (nInt == 40) nDam = DAMAGE_BONUS_40; + else if (nInt == 39) nDam = DAMAGE_BONUS_39; + else if (nInt == 38) nDam = DAMAGE_BONUS_38; + else if (nInt == 37) nDam = DAMAGE_BONUS_37; + else if (nInt == 36) nDam = DAMAGE_BONUS_36; + else if (nInt == 35) nDam = DAMAGE_BONUS_35; + else if (nInt == 34) nDam = DAMAGE_BONUS_34; + else if (nInt == 33) nDam = DAMAGE_BONUS_33; + else if (nInt == 32) nDam = DAMAGE_BONUS_32; + else if (nInt == 31) nDam = DAMAGE_BONUS_31; + else if (nInt == 30) nDam = DAMAGE_BONUS_30; + else if (nInt == 29) nDam = DAMAGE_BONUS_29; + else if (nInt == 28) nDam = DAMAGE_BONUS_28; + else if (nInt == 27) nDam = DAMAGE_BONUS_27; + else if (nInt == 26) nDam = DAMAGE_BONUS_26; + else if (nInt == 25) nDam = DAMAGE_BONUS_25; + else if (nInt == 24) nDam = DAMAGE_BONUS_24; + else if (nInt == 23) nDam = DAMAGE_BONUS_23; + else if (nInt == 22) nDam = DAMAGE_BONUS_22; + else if (nInt == 21) nDam = DAMAGE_BONUS_21; + else if (nInt >= 20) nDam = DAMAGE_BONUS_20; else if (nInt == 19) nDam = DAMAGE_BONUS_19; else if (nInt == 18) nDam = DAMAGE_BONUS_18; else if (nInt == 17) nDam = DAMAGE_BONUS_17; diff --git a/nwn/nwnprc/trunk/scripts/ft_poweratk.nss b/nwn/nwnprc/trunk/scripts/ft_poweratk.nss index 284d248b..1510c3d2 100644 --- a/nwn/nwnprc/trunk/scripts/ft_poweratk.nss +++ b/nwn/nwnprc/trunk/scripts/ft_poweratk.nss @@ -58,8 +58,38 @@ int BonusAtk(int nDmg) case 18: return DAMAGE_BONUS_18; case 19: return DAMAGE_BONUS_19; case 20: return DAMAGE_BONUS_20; + case 21: return DAMAGE_BONUS_21; + case 22: return DAMAGE_BONUS_22; + case 23: return DAMAGE_BONUS_23; + case 24: return DAMAGE_BONUS_24; + case 25: return DAMAGE_BONUS_25; + case 26: return DAMAGE_BONUS_26; + case 27: return DAMAGE_BONUS_27; + case 28: return DAMAGE_BONUS_28; + case 29: return DAMAGE_BONUS_29; + case 30: return DAMAGE_BONUS_30; + case 31: return DAMAGE_BONUS_31; + case 32: return DAMAGE_BONUS_32; + case 33: return DAMAGE_BONUS_33; + case 34: return DAMAGE_BONUS_34; + case 35: return DAMAGE_BONUS_35; + case 36: return DAMAGE_BONUS_36; + case 37: return DAMAGE_BONUS_37; + case 38: return DAMAGE_BONUS_38; + case 39: return DAMAGE_BONUS_39; + case 40: return DAMAGE_BONUS_40; + case 41: return DAMAGE_BONUS_41; + case 42: return DAMAGE_BONUS_42; + case 43: return DAMAGE_BONUS_43; + case 44: return DAMAGE_BONUS_44; + case 45: return DAMAGE_BONUS_45; + case 46: return DAMAGE_BONUS_46; + case 47: return DAMAGE_BONUS_47; + case 48: return DAMAGE_BONUS_48; + case 49: return DAMAGE_BONUS_49; + case 50: return DAMAGE_BONUS_50; } - if(nDmg > 20) return DAMAGE_BONUS_20; + if(nDmg > 50) return DAMAGE_BONUS_50; return -1; // Invalid value received } diff --git a/nwn/nwnprc/trunk/scripts/prc_knght_fight.nss b/nwn/nwnprc/trunk/scripts/prc_knght_fight.nss index 9630ac0d..b2c3bd0a 100644 --- a/nwn/nwnprc/trunk/scripts/prc_knght_fight.nss +++ b/nwn/nwnprc/trunk/scripts/prc_knght_fight.nss @@ -13,6 +13,66 @@ #include "prc_class_const" int GetIntToDamage(int nCheck) +{ + int nDam; + + if (nCheck >= 50) nDam = DAMAGE_BONUS_50; + else if (nCheck == 49) nDam = DAMAGE_BONUS_49; + else if (nCheck == 48) nDam = DAMAGE_BONUS_48; + else if (nCheck == 47) nDam = DAMAGE_BONUS_47; + else if (nCheck == 46) nDam = DAMAGE_BONUS_46; + else if (nCheck == 45) nDam = DAMAGE_BONUS_45; + else if (nCheck == 44) nDam = DAMAGE_BONUS_44; + else if (nCheck == 43) nDam = DAMAGE_BONUS_43; + else if (nCheck == 42) nDam = DAMAGE_BONUS_42; + else if (nCheck == 41) nDam = DAMAGE_BONUS_41; + else if (nCheck == 40) nDam = DAMAGE_BONUS_40; + else if (nCheck == 39) nDam = DAMAGE_BONUS_39; + else if (nCheck == 38) nDam = DAMAGE_BONUS_38; + else if (nCheck == 37) nDam = DAMAGE_BONUS_37; + else if (nCheck == 36) nDam = DAMAGE_BONUS_36; + else if (nCheck == 35) nDam = DAMAGE_BONUS_35; + else if (nCheck == 34) nDam = DAMAGE_BONUS_34; + else if (nCheck == 33) nDam = DAMAGE_BONUS_33; + else if (nCheck == 32) nDam = DAMAGE_BONUS_32; + else if (nCheck == 31) nDam = DAMAGE_BONUS_31; + else if (nCheck == 30) nDam = DAMAGE_BONUS_30; + else if (nCheck == 29) nDam = DAMAGE_BONUS_29; + else if (nCheck == 28) nDam = DAMAGE_BONUS_28; + else if (nCheck == 27) nDam = DAMAGE_BONUS_27; + else if (nCheck == 26) nDam = DAMAGE_BONUS_26; + else if (nCheck == 25) nDam = DAMAGE_BONUS_25; + else if (nCheck == 24) nDam = DAMAGE_BONUS_24; + else if (nCheck == 23) nDam = DAMAGE_BONUS_23; + else if (nCheck == 22) nDam = DAMAGE_BONUS_22; + else if (nCheck == 21) nDam = DAMAGE_BONUS_21; + else if (nCheck >= 20) nDam = DAMAGE_BONUS_20; + else if (nCheck == 19) nDam = DAMAGE_BONUS_19; + else if (nCheck == 18) nDam = DAMAGE_BONUS_18; + else if (nCheck == 17) nDam = DAMAGE_BONUS_17; + else if (nCheck == 16) nDam = DAMAGE_BONUS_16; + else if (nCheck == 15) nDam = DAMAGE_BONUS_15; + else if (nCheck == 14) nDam = DAMAGE_BONUS_14; + else if (nCheck == 13) nDam = DAMAGE_BONUS_13; + else if (nCheck == 12) nDam = DAMAGE_BONUS_12; + else if (nCheck == 11) nDam = DAMAGE_BONUS_11; + else if (nCheck == 10) nDam = DAMAGE_BONUS_10; + else if (nCheck == 9) nDam = DAMAGE_BONUS_9; + else if (nCheck == 8) nDam = DAMAGE_BONUS_8; + else if (nCheck == 7) nDam = DAMAGE_BONUS_7; + else if (nCheck == 6) nDam = DAMAGE_BONUS_6; + else if (nCheck == 5) nDam = DAMAGE_BONUS_5; + else if (nCheck == 4) nDam = DAMAGE_BONUS_4; + else if (nCheck == 3) nDam = DAMAGE_BONUS_3; + else if (nCheck == 2) nDam = DAMAGE_BONUS_2; + else if (nCheck == 1) nDam = DAMAGE_BONUS_1; + // Null line in the 2da + else nDam = 0; + + return nDam; +} + +/* int GetIntToDamage(int nCheck) { int IntToDam = -1; @@ -99,7 +159,7 @@ int GetIntToDamage(int nCheck) return IntToDam; } - + */ void main() { //Declare main variables. diff --git a/nwn/nwnprc/trunk/scripts/prc_shft_effap.nss b/nwn/nwnprc/trunk/scripts/prc_shft_effap.nss index 1f00c163..84ceb0b5 100644 --- a/nwn/nwnprc/trunk/scripts/prc_shft_effap.nss +++ b/nwn/nwnprc/trunk/scripts/prc_shft_effap.nss @@ -111,7 +111,37 @@ void main() case 17: nDamageBonusConstant = DAMAGE_BONUS_17; break; case 18: nDamageBonusConstant = DAMAGE_BONUS_18; break; case 19: nDamageBonusConstant = DAMAGE_BONUS_19; break; - default: nDamageBonusConstant = DAMAGE_BONUS_20; // The value is >= 20, the bonus limit is +20 + case 20: nDamageBonusConstant = DAMAGE_BONUS_20; break; + case 21: nDamageBonusConstant = DAMAGE_BONUS_21; break; + case 22: nDamageBonusConstant = DAMAGE_BONUS_22; break; + case 23: nDamageBonusConstant = DAMAGE_BONUS_23; break; + case 24: nDamageBonusConstant = DAMAGE_BONUS_24; break; + case 25: nDamageBonusConstant = DAMAGE_BONUS_25; break; + case 26: nDamageBonusConstant = DAMAGE_BONUS_26; break; + case 27: nDamageBonusConstant = DAMAGE_BONUS_27; break; + case 28: nDamageBonusConstant = DAMAGE_BONUS_28; break; + case 29: nDamageBonusConstant = DAMAGE_BONUS_29; break; + case 30: nDamageBonusConstant = DAMAGE_BONUS_30; break; + case 31: nDamageBonusConstant = DAMAGE_BONUS_31; break; + case 32: nDamageBonusConstant = DAMAGE_BONUS_32; break; + case 33: nDamageBonusConstant = DAMAGE_BONUS_33; break; + case 34: nDamageBonusConstant = DAMAGE_BONUS_34; break; + case 35: nDamageBonusConstant = DAMAGE_BONUS_35; break; + case 36: nDamageBonusConstant = DAMAGE_BONUS_36; break; + case 37: nDamageBonusConstant = DAMAGE_BONUS_37; break; + case 38: nDamageBonusConstant = DAMAGE_BONUS_38; break; + case 39: nDamageBonusConstant = DAMAGE_BONUS_39; break; + case 40: nDamageBonusConstant = DAMAGE_BONUS_40; break; + case 41: nDamageBonusConstant = DAMAGE_BONUS_41; break; + case 42: nDamageBonusConstant = DAMAGE_BONUS_42; break; + case 43: nDamageBonusConstant = DAMAGE_BONUS_43; break; + case 44: nDamageBonusConstant = DAMAGE_BONUS_44; break; + case 45: nDamageBonusConstant = DAMAGE_BONUS_45; break; + case 46: nDamageBonusConstant = DAMAGE_BONUS_46; break; + case 47: nDamageBonusConstant = DAMAGE_BONUS_47; break; + case 48: nDamageBonusConstant = DAMAGE_BONUS_48; break; + case 49: nDamageBonusConstant = DAMAGE_BONUS_49; break; + default: nDamageBonusConstant = DAMAGE_BONUS_50; // The value is >= 50 } DelayApplyEffectToObject(0.0f, PRC_Shifter_ApplyEffects_Generation, DURATION_TYPE_PERMANENT, SupernaturalEffect(EffectDamageIncrease(nDamageBonusConstant, nSTR_DamageType)), oShifter); } diff --git a/nwn/nwnprc/trunk/spells/sp_foresight.nss b/nwn/nwnprc/trunk/spells/sp_foresight.nss index 592bc821..2c789ce9 100644 --- a/nwn/nwnprc/trunk/spells/sp_foresight.nss +++ b/nwn/nwnprc/trunk/spells/sp_foresight.nss @@ -46,13 +46,15 @@ void main() fDur += fDur; } - itemproperty iDodge = PRCItemPropertyBonusFeat(FEAT_UNCANNY_DODGE_1); + //itemproperty iDodge = PRCItemPropertyBonusFeat(FEAT_UNCANNY_DODGE_1); + effect eDodge = EffectBonusFeat(FEAT_UNCANNY_DODGE_1); effect eLink = EffectLinkEffects(EffectImmunity(IMMUNITY_TYPE_SNEAK_ATTACK), EffectACIncrease(2, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL)); eLink = EffectLinkEffects(eLink, EffectSavingThrowIncrease(SAVING_THROW_REFLEX, 2, SAVING_THROW_TYPE_ALL)); + eLink = EffectLinkEffects(eLink, eDodge); object oArmor = GetItemInSlot(INVENTORY_SLOT_CHEST, oPC); SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oPC, fDur); - IPSafeAddItemProperty(oArmor, iDodge, fDur); + //IPSafeAddItemProperty(oArmor, iDodge, fDur); PRCSetSchool(); } diff --git a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk index 55be67a6..d8d9dd4f 100644 Binary files a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk and b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk differ diff --git a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml index 6ad18b4e..de40e900 100644 --- a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml +++ b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml @@ -73152,6 +73152,69 @@ Special Abilities: Sorcerous Casting: Hobgoblin Warsoul's cast spells as a Sorcerer of their hit dice (10th level). <cÿÿÿ>Pick a spellcasting feat (1st lvl)</c> Choose which spellcasting class to advance with the currently selected Prestige Class. If you try take a marker feat after 1st class level, you will be releveled. + ## iprp_damagecost.2da expansion ## + 21 Damage + +21 + 22 Damage + +22 + 23 Damage + +23 + 24 Damage + +24 + + 25 Damage + +25 + 26 Damage + +26 + 27 Damage + +27 + 28 Damage + +28 + 29 Damage + +29 + 30 damage + +30 + 31 Damage + +31 + 32 Damage + + +32 + 33 Damage + +33 + 34 Damage + +34 + 35 Damage + +35 + 36 Damage + +36 + 37 Damage + +37 + 38 Damage + +38 + 39 Damage + +39 + 40 Damage + +40 + 41 Damage + +41 + 42 Damage + +42 + 43 Damage + +43 + 44 Damage + +44 + 45 Damage + +45 + 46 Damage + +46 + 47 Damage + +47 + 48 Damage + +48 + 49 Damage + +49 + 50 Damage + +50 #PRC8 RESERVED# #START PRC8 MATERIAL RESERVE# Paper diff --git a/nwn/nwnprc/trunk/tlk/prc_consortium.tlk b/nwn/nwnprc/trunk/tlk/prc_consortium.tlk index 55be67a6..d8d9dd4f 100644 Binary files a/nwn/nwnprc/trunk/tlk/prc_consortium.tlk and b/nwn/nwnprc/trunk/tlk/prc_consortium.tlk differ