Fixed ruleset.2da

Fixed ruleset.2da.  Updated release archive.
This commit is contained in:
Jaysyn904 2025-02-05 12:16:04 -05:00
parent e641b42f84
commit 1cd36e19f3
8 changed files with 652 additions and 523 deletions

BIN
Release/PRC8_20250205.7z Normal file

Binary file not shown.

File diff suppressed because it is too large Load Diff

View File

@ -557,6 +557,7 @@ scripts\ft_dw_armor.nss \
scripts\ft_dw_weap.nss \
scripts\ft_epicvigor.nss \
scripts\ft_fistiron.nss \
scripts\ft_hidntalent_ft.nss \
scripts\ft_invokwrath.nss \
scripts\ft_lingdmg.nss \
scripts\ft_lipsrap.nss \
@ -3171,6 +3172,7 @@ objs\ft_dw_armor.ncs \
objs\ft_dw_weap.ncs \
objs\ft_epicvigor.ncs \
objs\ft_fistiron.ncs \
objs\ft_hidntalent_ft.ncs \
objs\ft_invokwrath.ncs \
objs\ft_lingdmg.ncs \
objs\ft_lipsrap.ncs \
@ -28504,6 +28506,8 @@ objs\ft_epicvigor.ncs: scripts\ft_epicvigor.nss include\prc_inc_spells.nss inclu
objs\ft_fistiron.ncs: scripts\ft_fistiron.nss include\prc_feat_const.nss
objs\ft_hidntalent_ft.ncs: scripts\ft_hidntalent_ft.nss include\inc_dynconv.nss include\prc_inc_function.nss include\inc_persist_loca.nss include\prc_inc_array.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_util.nss include\prc_inc_spells.nss include\prc_inc_stunfist.nss include\inc_nwnx_funcs.nss include\prc_template_con.nss include\prc_alterations.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_sb_const.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss
objs\ft_invokwrath.ncs: scripts\ft_invokwrath.nss include\prc_alterations.nss include\prc_feat_const.nss include\prc_spell_const.nss include\inc_abil_damage.nss include\prc_inc_damage.nss include\prc_effect_inc.nss include\inc_item_props.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_utility.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_misc_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_prc_npc.nss
objs\ft_lingdmg.ncs: scripts\ft_lingdmg.nss include\prc_inc_combat.nss include\prc_inc_unarmed.nss include\prc_inc_onhit.nss include\prc_misc_const.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss include\inc_utility.nss include\prc_inc_spells.nss include\prc_inc_nwscript.nss include\prc_class_const.nss include\inc_target_list.nss include\inc_logmessage.nss include\inc_threads.nss include\prc_inc_actions.nss include\inc_time.nss include\inc_draw_prc.nss include\inc_eventhook.nss include\inc_metalocation.nss include\inc_array_sort.nss include\inc_uniqueid.nss include\inc_set.nss include\prc_spell_const.nss include\inv_invoc_const.nss include\psi_power_const.nss include\prc_inc_racial.nss include\prc_inc_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.nss include\prc_feat_const.nss include\prc_racial_const.nss include\inc_debug.nss include\prc_inc_switch.nss include\inc_persist_loca.nss include\prc_inc_skin.nss include\inc_persistsql.nss include\inc_draw.nss include\inc_draw_tools.nss include\inc_pers_array.nss include\inc_area.nss include\inc_heap.nss include\inc_newspellbook.nss include\inc_vfx_const.nss include\spinc_necro_cyst.nss include\true_utter_const.nss include\prc_inc_sneak.nss include\prcsp_engine.nss include\inc_item_props.nss include\prc_inc_core.nss include\inc_sp_gain_mem.nss include\lookup_2da_spell.nss include\inc_lookups.nss include\prc_inc_damage.nss include\prc_inc_sb_const.nss include\prc_effect_inc.nss include\prc_inc_castlvl.nss include\prc_inc_newip.nss include\prc_inc_descrptr.nss include\prc_x2_itemprop.nss include\prc_ipfeat_const.nss include\inc_prc_npc.nss include\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss include\inc_abil_damage.nss

View File

@ -0,0 +1,125 @@
//:://////////////////////////////////////////////////////////////////
//:: Hidden Talen
//:: ft_hidntalent_ft
//:://////////////////////////////////////////////////////////////////
/** @file
THis allows you to pick a hidden talent @ 1st level
@original author Fencas
@date Created - 2025-01-12
@revised by Jaysyn (for Hidden Talent)
@date Revised - 2025-01-30 07:42:03
*/
//:://////////////////////////////////////////////////////////////////
#include "inc_dynconv"
#include "prc_inc_function"
#include "NW_I0_GENERIC"
#include "inc_persist_loca"
//////////////////////////////////////////////////
// Constant Definitions
//////////////////////////////////////////////////
const int STAGE_SELECT_ABIL = 0;
//////////////////////////////////////////////////
// Main Function
//////////////////////////////////////////////////
void main()
{
object oPC = GetPCSpeaker();
object oSkin = GetPCSkin(oPC);
int nRow;
int nValue = GetLocalInt(oPC, DYNCONV_VARIABLE);
int nStage = GetStage(oPC);
int nLevel = GetPersistantLocalInt(oPC, "HiddenTalentCheck");
// Abort if DynConv_Var is not set properly
if (nValue == 0)
{
if (DEBUG) DoDebug("ft_hidntalent_ft: Aborting due to error.");
return;
}
// Conversation Setup Stage
if (nValue == DYNCONV_SETUP_STAGE)
{
if (!GetIsStageSetUp(nStage, oPC))
{
if (nStage == STAGE_SELECT_ABIL)
{
// --- Step 1: Mark Already Selected Hidden Talents ---
int nStartFeat = 25901;
int nTotalRows = FEAT_HIDDEN_TALENT_BIOFEEDBACK - FEAT_HIDDEN_TALENT_GRIP_IRON;
int nEndFeat = nStartFeat + nTotalRows;
string sFeat = Get2DAString("feats", "LABEL", nRow);
effect eEffect = GetFirstEffect(oPC);
while (GetIsEffectValid(eEffect))
{
if (GetEffectTag(eEffect) == "HiddenTalent_" + sFeat)
{
SetLocalInt(oPC, "HiddenTalent_" + IntToString(nRow), 1);
}
eEffect = GetNextEffect(oPC);
}
// --- Step 2: Display Available Feats ---
SetHeader("Choose a Hidden Talent:");
for (nRow = nStartFeat; nRow <= nEndFeat; nRow++)
{
string sName = Get2DAString("feats", "LABEL", nRow);
int nFeat = StringToInt(Get2DAString("feats", "FEAT", nRow));
if (!GetHasFeat(nRow, oPC) && !GetLocalInt(oPC, "HiddenTalent_" + IntToString(nRow)))
{
AddChoice(sName, nRow, oPC);
}
}
SetDefaultTokens();
MarkStageSetUp(STAGE_SELECT_ABIL, oPC);
}
}
// Token Setup
SetupTokens();
}
else if (nValue == DYNCONV_EXITED)
{
if (DEBUG) DoDebug("ft_hidntalent_ft: Running exit handler");
}
else if (nValue == DYNCONV_ABORTED)
{
if (DEBUG) DoDebug("ft_hidntalent_ft: ERROR: Conversation abort section run");
}
// --- Stage Selection & Feat Application ---
else
{
int nChoice = GetChoice(oPC);
int nLevel = GetHitDice(oPC);
if (nStage == STAGE_SELECT_ABIL)
{
SetPersistantLocalInt(oPC, "HiddenTalent_" + IntToString(nLevel), 1);
if (nChoice > 0)
{
effect eBonusFeat = EffectBonusFeat(nChoice);
eBonusFeat = UnyieldingEffect(eBonusFeat);
eBonusFeat = TagEffect(eBonusFeat, "HiddenTalent_" + IntToString(nChoice));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eBonusFeat, oPC);
}
DeletePersistantLocalInt(oPC, "HiddenTalentCheck");
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
}
if (DEBUG) DoDebug("ft_hidntalent_ft: New stage: " + IntToString(nStage));
SetStage(nStage, oPC);
}
}

View File

@ -73532,4 +73532,4 @@ Specifics: You gain a +4 perfection bonus on Will saving throws against charm an
<entry id="213330" lang="en" sex="m">Type of Feat: Exalted
Prerequisite: Wis 13+
Specifics: You gain a +2 bonus on saving throws to resist any fear effect, despair effect (such as the crushing despair spell), or similar mind-affecting condition, but not charms or compulsions (such as the charm person and dominate person spells)</entry>
</tlk>
</tlk>