7 const string NWNX_SkillRanks =
"NWNX_SkillRanks";
147 NWNXCall(NWNX_SkillRanks,
"GetSkillFeatCountForSkill");
155 NWNXCall(NWNX_SkillRanks,
"GetSkillFeatForSkillByIndex");
158 skillFeat.iFeat = NWNXPopInt();
159 skillFeat.iModifier = NWNXPopInt();
160 skillFeat.iFocusFeat = NWNXPopInt();
161 skillFeat.sClasses = NWNXPopString();
162 skillFeat.fClassLevelMod = NWNXPopFloat();
163 skillFeat.iAreaFlagsRequired = NWNXPopInt();
164 skillFeat.iAreaFlagsForbidden = NWNXPopInt();
165 skillFeat.iDayOrNight = NWNXPopInt();
166 skillFeat.bBypassArmorCheckPenalty = NWNXPopInt();
167 skillFeat.iKeyAbilityMask = NWNXPopInt();
175 NWNXCall(NWNX_SkillRanks,
"GetSkillFeat");
178 skillFeat.iFeat =
iFeat;
179 skillFeat.iModifier = NWNXPopInt();
180 skillFeat.iFocusFeat = NWNXPopInt();
181 skillFeat.sClasses = NWNXPopString();
182 skillFeat.fClassLevelMod = NWNXPopFloat();
183 skillFeat.iAreaFlagsRequired = NWNXPopInt();
184 skillFeat.iAreaFlagsForbidden = NWNXPopInt();
185 skillFeat.iDayOrNight = NWNXPopInt();
186 skillFeat.bBypassArmorCheckPenalty = NWNXPopInt();
187 skillFeat.iKeyAbilityMask = NWNXPopInt();
193 NWNXPushInt(createIfNonExistent);
201 NWNXPushString(GetStringRight(skillFeat.
sClasses,GetStringLength(skillFeat.
sClasses)-FindSubString(skillFeat.
sClasses,
"1")));
204 NWNXPushInt(skillFeat.
iFeat);
205 NWNXPushInt(skillFeat.
iSkill);
206 NWNXCall(NWNX_SkillRanks,
"SetSkillFeat");
211 if (GetStringLength(skillFeat.sClasses) < 255)
215 for (i = 0; i < 255-GetStringLength(skillFeat.sClasses); i++) { sPad = sPad +
"0"; }
216 skillFeat.
sClasses = sPad + skillFeat.sClasses;
218 skillFeat.sClasses = GetStringLeft(skillFeat.sClasses, 254 - iClass) +
"1" + GetStringRight(skillFeat.sClasses, iClass);
224 NWNXPushInt(epicFocus);
225 NWNXPushInt(iModifier);
226 NWNXCall(NWNX_SkillRanks,
"SetSkillFeatFocusModifier");
231 NWNXCall(NWNX_SkillRanks,
"GetBlindnessPenalty");
237 NWNXPushInt(iModifier);
238 NWNXCall(NWNX_SkillRanks,
"SetBlindnessPenalty");
244 NWNXPushObject(oArea);
245 NWNXCall(NWNX_SkillRanks,
"GetAreaModifier");
251 NWNXPushInt(iModifier);
253 NWNXPushObject(oArea);
254 NWNXCall(NWNX_SkillRanks,
"SetAreaModifier");
const int NWNX_SKILLRANKS_KEY_ABILITY_INTELLIGENCE
Intelligence.
int NWNX_SkillRanks_GetBlindnessPenalty()
Gets the current penalty to Dexterity based skills when blind.
const int NWNX_SKILLRANKS_KEY_ABILITY_STRENGTH
Strength.
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeatForSkillByIndex(int iSkill, int iIndex)
Returns a skill feat by index.
const int NWNX_SKILLRANKS_KEY_ABILITY_DEXTERITY
Dexterity.
int NWNX_SkillRanks_GetAreaModifier(object oArea, int iSkill)
Get a skill modifier for an area.
const int NWNX_SKILLRANKS_KEY_ABILITY_WISDOM
Wisdom.
const int NWNX_SKILLRANKS_KEY_ABILITY_CALC_AVERAGE
Use the average value of the provided ability scores.
const int NWNX_SKILLRANKS_KEY_ABILITY_CALC_MIN
Use the minimum value of the provided ability scores.
void NWNX_SkillRanks_SetAreaModifier(object oArea, int iSkill, int iModifier)
Sets a skill modifier for the area.
const int NWNX_SKILLRANKS_KEY_ABILITY_CHARISMA
Charisma.
const int NWNX_SKILLRANKS_KEY_ABILITY_CALC_SUM
Use the sum of the provided ability scores.
int NWNX_SkillRanks_GetSkillFeatCountForSkill(int iSkill)
void NWNX_SkillRanks_SetSkillFeatFocusModifier(int iModifier, int iEpic=FALSE)
Change the modifier value for Skill Focus and Epic Skill Focus feats.
void NWNX_SkillRanks_SetSkillFeat(struct NWNX_SkillRanks_SkillFeat skillFeat, int createIfNonExistent=FALSE)
Modifies or creates a skill feat.
const int NWNX_SKILLRANKS_KEY_ABILITY_CONSTITUTION
Constitution.
const int NWNX_SKILLRANKS_KEY_ABILITY_CALC_MAX
Use the maximum value of the provided ability scores.
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_AddSkillFeatClass(struct NWNX_SkillRanks_SkillFeat skillFeat, int iClass)
Add classes to a skill feat instead of working with the NWNX_SkillRanks_SkillFeat::sClasses string.
void NWNX_SkillRanks_SetBlindnessPenalty(int iModifier)
Set the value the Dexterity based skills get decreased due to blindness.
struct NWNX_SkillRanks_SkillFeat NWNX_SkillRanks_GetSkillFeat(int iSkill, int iFeat)
Returns a skill feat.
A feat that manipulates skill ranks.
int iKeyAbilityMask
Bitmask of abilities and method to calculate the ability modifier for a skill.
int iAreaFlagsForbidden
Used for feats like Stonecunning or Trackless Step which restrict skill modifiers by area types.
int iSkill
The skill this feat impacts.
int bBypassArmorCheckPenalty
This allows for feats that bypass the armor check penalty on skill rank calculations.
string sClasses
255 char bitset string for skill ranks impacted by class levels (like Bardic Knowledge).
int iModifier
Skill feat bonus/penalty.
int iAreaFlagsRequired
Used for feats like Stonecunning or Trackless Step which restrict skill modifiers by area types.