Vow of Poverty long filename fix
Vow of Poverty long filename fix. Fixed some Saint abilities only working after equipping gear. Updated release archive.
This commit is contained in:
parent
7a4dc4dffc
commit
ec23674128
BIN
Release/PRC8_20241231.7z
Normal file
BIN
Release/PRC8_20241231.7z
Normal file
Binary file not shown.
@ -572,7 +572,7 @@ scripts\ft_smiteraziel.nss \
|
||||
scripts\ft_spontsummon.nss \
|
||||
scripts\ft_tears_ever.nss \
|
||||
scripts\ft_vowofpoverty.nss \
|
||||
scripts\ft_vowofpoverty_abil.nss \
|
||||
scripts\ft_vowpoverty_ab.nss \
|
||||
scripts\gen_sptouchice.nss \
|
||||
scripts\gensp_holyrad.nss \
|
||||
scripts\gensp_holyrada.nss \
|
||||
@ -3185,7 +3185,7 @@ objs\ft_smiteraziel.ncs \
|
||||
objs\ft_spontsummon.ncs \
|
||||
objs\ft_tears_ever.ncs \
|
||||
objs\ft_vowofpoverty.ncs \
|
||||
objs\ft_vowofpoverty_abil.ncs \
|
||||
objs\ft_vowpoverty_ab.ncs \
|
||||
objs\gen_sptouchice.ncs \
|
||||
objs\gensp_holyrad.ncs \
|
||||
objs\gensp_holyrada.ncs \
|
||||
@ -28527,7 +28527,7 @@ objs\ft_tears_ever.ncs: scripts\ft_tears_ever.nss
|
||||
|
||||
objs\ft_vowofpoverty.ncs: scripts\ft_vowofpoverty.nss include\prc_inc_combat.nss include\inc_dynconv.nss include\prc_class_const.nss include\prc_inc_clsfunc.nss include\prc_alterations.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\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
|
||||
|
||||
objs\ft_vowofpoverty_abil.ncs: scripts\ft_vowofpoverty_abil.nss include\inc_dynconv.nss include\prc_inc_function.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\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 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_vowpoverty_ab.ncs: scripts\ft_vowpoverty_ab.nss include\inc_dynconv.nss include\prc_inc_function.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\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 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\gen_sptouchice.ncs: scripts\gen_sptouchice.nss include\prc_alterations.nss include\prc_inc_spells.nss include\inc_poison.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\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_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
|
||||
|
||||
|
@ -75,7 +75,7 @@ void main()
|
||||
//Call stat boost dialogue for level 7 and each 4 levels after that
|
||||
AssignCommand(oPC, ClearAllActions(TRUE));
|
||||
SetPersistantLocalInt(oPC,"VoPBoostCheck",nLevelCheck);
|
||||
StartDynamicConversation("ft_vowofpoverty_abil", oPC, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oPC);
|
||||
StartDynamicConversation("ft_vowpoverty_ab", oPC, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oPC);
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:: Vow of Poverty Ability Boost Conversation
|
||||
//:: ft_vowofpoverty_abil
|
||||
//:: ft_vowpoverty_ab
|
||||
//:://////////////////////////////////////////////
|
||||
/** @file
|
||||
This allows you to choose ability to boost.
|
||||
@ -38,7 +38,7 @@ void main()
|
||||
// Check which of the conversation scripts called the scripts
|
||||
if(nValue == 0) // All of them set the DynConv_Var to non-zero value, so something is wrong -> abort
|
||||
{
|
||||
if(DEBUG) DoDebug("ft_vowofpoverty_abil: Aborting due to error.");
|
||||
if(DEBUG) DoDebug("ft_vowpoverty_ab: Aborting due to error.");
|
||||
return;
|
||||
}
|
||||
|
||||
@ -82,14 +82,14 @@ void main()
|
||||
}
|
||||
else if(nValue == DYNCONV_EXITED)
|
||||
{
|
||||
if(DEBUG) DoDebug("ft_vowofpoverty_abil: Running exit handler");
|
||||
if(DEBUG) DoDebug("ft_vowpoverty_ab: Running exit handler");
|
||||
}
|
||||
else if(nValue == DYNCONV_ABORTED)
|
||||
{
|
||||
// This section should never be run, since aborting this conversation should
|
||||
// always be forbidden and as such, any attempts to abort the conversation
|
||||
// should be handled transparently by the system
|
||||
if(DEBUG) DoDebug("ft_vowofpoverty_abil: ERROR: Conversation abort section run");
|
||||
if(DEBUG) DoDebug("ft_vowpoverty_ab: ERROR: Conversation abort section run");
|
||||
}
|
||||
// Handle PC response
|
||||
else
|
||||
@ -118,7 +118,7 @@ void main()
|
||||
AllowExit(DYNCONV_EXIT_FORCE_EXIT);
|
||||
}
|
||||
|
||||
if(DEBUG) DoDebug("ft_vowofpoverty_abil: New stage: " + IntToString(nStage));
|
||||
if(DEBUG) DoDebug("ft_vowpoverty_ab: New stage: " + IntToString(nStage));
|
||||
|
||||
// Store the stage value. If it has been changed, this clears out the choices
|
||||
SetStage(nStage, oPC);
|
@ -64,9 +64,8 @@ void main()
|
||||
object oPC;
|
||||
switch(nEvent)
|
||||
{
|
||||
case EVENT_ONHIT: oPC = OBJECT_SELF; break;
|
||||
//case EVENT_ONPLAYEREQUIPITEM: oPC = GetItemLastEquippedBy(); break;
|
||||
//case EVENT_ONPLAYERUNEQUIPITEM: oPC = GetItemLastUnequippedBy(); break;
|
||||
case EVENT_ONHIT: oPC = OBJECT_SELF; break;
|
||||
case EVENT_ONHEARTBEAT: oPC = OBJECT_SELF; break;
|
||||
|
||||
default:
|
||||
oPC = OBJECT_SELF;
|
||||
@ -74,21 +73,31 @@ void main()
|
||||
|
||||
//:: Declare major variables
|
||||
int iHD = GetHitDice(oPC);
|
||||
int iWISb = GetAbilityModifier(4, oPC);
|
||||
int iWISb = GetAbilityModifier(ABILITY_WISDOM, oPC);
|
||||
object oItem;
|
||||
object oSkin = GetPCSkin(oPC);
|
||||
itemproperty ipIP;
|
||||
|
||||
//:: Setup HD based Fast Healing
|
||||
int nFastHealing = iHD/2;
|
||||
if (nFastHealing > 10) {nFastHealing == 10;}
|
||||
|
||||
//:: Not being called from an event but from EvalPRCFeats. No non-good Saints.
|
||||
if(nEvent == FALSE && GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
|
||||
{
|
||||
//:: Any living creature of good alignment that is not an or an elemental (removed outsider check as Saints are outsiders)
|
||||
//:: Any living creature of good alignment (removed outsider check as Saints are outsiders)
|
||||
int nRace = MyPRCGetRacialType(oPC);
|
||||
if(!(nRace == RACIAL_TYPE_CONSTRUCT ||
|
||||
nRace == RACIAL_TYPE_ELEMENTAL ||
|
||||
nRace == RACIAL_TYPE_OOZE ||
|
||||
nRace == RACIAL_TYPE_UNDEAD))
|
||||
{
|
||||
//:: Set ability bonuses
|
||||
SetCompositeBonus(oSkin, "Template_Saint_con", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_int", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_wis", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_cha", 4, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
|
||||
|
||||
//:: Add Darkvision
|
||||
ipIP = ItemPropertyDarkvision();
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
@ -97,9 +106,6 @@ void main()
|
||||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_LOWLIGHT_VISION);
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
|
||||
//:: Wisdom based AC bonus
|
||||
SetCompositeBonus(oSkin, "Template_Saint_AC", iWISb, ITEM_PROPERTY_AC_BONUS);
|
||||
|
||||
//:: Hit Die based Damage Reduction
|
||||
if (iHD >= 12)
|
||||
{
|
||||
@ -121,12 +127,6 @@ void main()
|
||||
|
||||
else if (iHD <= 3) {/*:: you get nothing! */}
|
||||
|
||||
//:: Set HD based Fast Healing
|
||||
//ebonfowl: I think this is supposed to be HD/2 to a max of 10
|
||||
int nFastHealing = iHD/2;
|
||||
if (nFastHealing > 10) {nFastHealing == 10;}
|
||||
SetCompositeBonus(oSkin, "Template_Saint_FastHealing", nFastHealing, ITEM_PROPERTY_REGENERATION);
|
||||
|
||||
//:: Set racial type to Outsider (Native)
|
||||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_OUTSIDER_RACIAL_TYPE);
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
@ -183,12 +183,6 @@ void main()
|
||||
ipIP = PRCItemPropertyBonusFeat(FEAT_IMMUNE_PETRIFICATION);
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
|
||||
//:: Set Ability Score Bonuses
|
||||
SetCompositeBonus(oSkin, "Template_Saint_con", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_int", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_wis", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_cha", 4, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
|
||||
|
||||
//:: Setup Spell-like abilities & Holy Power marker feat
|
||||
ipIP = PRCItemPropertyBonusFeat(IP_CONST_FEAT_TEMPLATE_SAINT_SLA_BLESS);
|
||||
IPSafeAddItemProperty(oSkin, ipIP, 0.0, X2_IP_ADDPROP_POLICY_KEEP_EXISTING, FALSE, FALSE);
|
||||
@ -263,13 +257,40 @@ void main()
|
||||
if(DEBUG) DoDebug("tmp_m_saint: Adding eventhooks");
|
||||
//AddEventScript(oPC, EVENT_ONPLAYEREQUIPITEM, "tmp_m_saint", TRUE, FALSE);
|
||||
//AddEventScript(oPC, EVENT_ONPLAYERUNEQUIPITEM, "tmp_m_saint", TRUE, FALSE);
|
||||
AddEventScript(oPC, EVENT_ONHIT, "tmp_m_saint", TRUE, FALSE);
|
||||
AddEventScript(oPC, EVENT_ONHIT, "tmp_m_saint", TRUE, FALSE);
|
||||
AddEventScript(oPC, EVENT_ONHEARTBEAT, "tmp_m_saint", TRUE, FALSE);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//:: We're being called from the OnHeartbeat eventhook, so check or skip
|
||||
if(nEvent == EVENT_ONHEARTBEAT)
|
||||
{
|
||||
//:: No non-good Saints
|
||||
if(GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD)
|
||||
{
|
||||
SetCompositeBonus(oSkin, "Template_Saint_AC", iWISb, ITEM_PROPERTY_AC_BONUS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_FastHealing", nFastHealing, ITEM_PROPERTY_REGENERATION);
|
||||
|
||||
SetCompositeBonus(oSkin, "Template_Saint_con", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_int", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_wis", 2, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_cha", 4, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
|
||||
}
|
||||
else
|
||||
{
|
||||
SetCompositeBonus(oSkin, "Template_Saint_AC", 0, ITEM_PROPERTY_AC_BONUS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_FastHealing", 0, ITEM_PROPERTY_REGENERATION);
|
||||
|
||||
SetCompositeBonus(oSkin, "Template_Saint_con", 0, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CON);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_int", 0, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_INT);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_wis", 0, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_WIS);
|
||||
SetCompositeBonus(oSkin, "Template_Saint_cha", 0, ITEM_PROPERTY_ABILITY_BONUS, IP_CONST_ABILITY_CHA);
|
||||
}
|
||||
} //:: end if - Running OnHeart event
|
||||
|
||||
//:: We're being called from the OnHit eventhook
|
||||
else if(nEvent == EVENT_ONHIT)
|
||||
if(nEvent == EVENT_ONHIT)
|
||||
{
|
||||
oItem = GetSpellCastItem();
|
||||
object oTarget = PRCGetSpellTargetObject();
|
||||
|
Loading…
x
Reference in New Issue
Block a user