2025/05/02 Update

Updated Foresight to use EffectBonusFeat.
Updated PRCRemoveProtections to not dispel extraordinary & supernatural effects.
Expanded DAMAGE_BONUS cap to 50.
Expanded various functions to use new DAMAGE_BONUS cap.
This commit is contained in:
Jaysyn904 2025-05-02 14:38:26 -04:00
parent 9815ea91a1
commit 880d0e5527
14 changed files with 619 additions and 89 deletions

View File

@ -6,71 +6,101 @@
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
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

View File

@ -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.

View File

@ -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;

View File

@ -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;
}

View File

@ -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

View File

@ -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
{

View File

@ -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;

View File

@ -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
}

View File

@ -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.

View File

@ -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);
}

View File

@ -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();
}

View File

@ -73152,6 +73152,69 @@ Special Abilities:
<entry id="77209" lang="en" sex="m">Sorcerous Casting: Hobgoblin Warsoul's cast spells as a Sorcerer of their hit dice (10th level).</entry>
<entry id="77210" lang="en" sex="m">&lt;cÿÿÿ&gt;Pick a spellcasting feat (1st lvl)&lt;/c&gt;</entry>
<entry id="77211" lang="en" sex="m">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.</entry>
<entry id="79999" lang="en" sex="m">## iprp_damagecost.2da expansion ##</entry>
<entry id="80000" lang="en" sex="m">21 Damage</entry>
<entry id="80001" lang="en" sex="m">+21</entry>
<entry id="80002" lang="en" sex="m">22 Damage</entry>
<entry id="80003" lang="en" sex="m">+22</entry>
<entry id="80004" lang="en" sex="m">23 Damage</entry>
<entry id="80005" lang="en" sex="m">+23</entry>
<entry id="80006" lang="en" sex="m">24 Damage</entry>
<entry id="80007" lang="en" sex="m">+24
</entry>
<entry id="80008" lang="en" sex="m">25 Damage</entry>
<entry id="80009" lang="en" sex="m">+25</entry>
<entry id="80010" lang="en" sex="m">26 Damage</entry>
<entry id="80011" lang="en" sex="m">+26</entry>
<entry id="80012" lang="en" sex="m">27 Damage</entry>
<entry id="80013" lang="en" sex="m">+27</entry>
<entry id="80014" lang="en" sex="m">28 Damage</entry>
<entry id="80015" lang="en" sex="m">+28</entry>
<entry id="80016" lang="en" sex="m">29 Damage</entry>
<entry id="80017" lang="en" sex="m">+29</entry>
<entry id="80018" lang="en" sex="m">30 damage</entry>
<entry id="80019" lang="en" sex="m">+30</entry>
<entry id="80020" lang="en" sex="m">31 Damage</entry>
<entry id="80021" lang="en" sex="m">+31</entry>
<entry id="80022" lang="en" sex="m">32 Damage
</entry>
<entry id="80023" lang="en" sex="m">+32</entry>
<entry id="80024" lang="en" sex="m">33 Damage</entry>
<entry id="80025" lang="en" sex="m">+33</entry>
<entry id="80026" lang="en" sex="m">34 Damage</entry>
<entry id="80027" lang="en" sex="m">+34</entry>
<entry id="80028" lang="en" sex="m">35 Damage</entry>
<entry id="80029" lang="en" sex="m">+35</entry>
<entry id="80030" lang="en" sex="m">36 Damage</entry>
<entry id="80031" lang="en" sex="m">+36</entry>
<entry id="80032" lang="en" sex="m">37 Damage</entry>
<entry id="80033" lang="en" sex="m">+37</entry>
<entry id="80034" lang="en" sex="m">38 Damage</entry>
<entry id="80035" lang="en" sex="m">+38</entry>
<entry id="80036" lang="en" sex="m">39 Damage</entry>
<entry id="80037" lang="en" sex="m">+39</entry>
<entry id="80038" lang="en" sex="m">40 Damage</entry>
<entry id="80039" lang="en" sex="m">+40</entry>
<entry id="80040" lang="en" sex="m">41 Damage</entry>
<entry id="80041" lang="en" sex="m">+41</entry>
<entry id="80042" lang="en" sex="m">42 Damage</entry>
<entry id="80043" lang="en" sex="m">+42</entry>
<entry id="80044" lang="en" sex="m">43 Damage</entry>
<entry id="80045" lang="en" sex="m">+43</entry>
<entry id="80046" lang="en" sex="m">44 Damage</entry>
<entry id="80047" lang="en" sex="m">+44</entry>
<entry id="80048" lang="en" sex="m">45 Damage</entry>
<entry id="80049" lang="en" sex="m">+45</entry>
<entry id="80050" lang="en" sex="m">46 Damage</entry>
<entry id="80051" lang="en" sex="m">+46</entry>
<entry id="80052" lang="en" sex="m">47 Damage</entry>
<entry id="80053" lang="en" sex="m">+47</entry>
<entry id="80054" lang="en" sex="m">48 Damage</entry>
<entry id="80055" lang="en" sex="m">+48</entry>
<entry id="80056" lang="en" sex="m">49 Damage</entry>
<entry id="80057" lang="en" sex="m">+49</entry>
<entry id="80058" lang="en" sex="m">50 Damage</entry>
<entry id="80059" lang="en" sex="m">+50</entry>
<entry id="200000" lang="en" sex="m">#PRC8 RESERVED#</entry>
<entry id="200001" lang="en" sex="m">#START PRC8 MATERIAL RESERVE#</entry>
<entry id="200002" lang="en" sex="m">Paper</entry>