I think that the problem is caused by ScrubPCSkin function in 'prc_inc_function.nss'. I had the same problem with bonus domain casting feats - they were removed form PC skin after rest. Adding those feats to exclusion list fixed the problem
.
So that function is called after sleeping? In any case, adding feats to the exclusion list won't help, because it isn't feats that are being lost, it's STR, DEX, and CON adjustments. I assume ScrubPCSkin shouldn't be removing item properties that are marked as DURATION_TYPE_PERMANENT; if it is, which it appears to be in my case, this should be fixed, right?
About attachments - they do work, but there might be some kind of limit for the size of single file. If you can't upload your fix as attachmet, there are plenty of other file sharing services (RapidShare, Easy-Share, SendSpace, etc.) - use them instead.
My patch was quite small. Now that I think about it, maybe I should just include it here:
Index: prc_shft_effap.nss
===================================================================
RCS file: /cvsroot/nwnprc/nwnprc/scripts/prc_shft_effap.nss,v
retrieving revision 1.4
diff -u -r1.4 prc_shft_effap.nss
--- prc_shft_effap.nss 2 Jan 2007 22:35:56 -0000 1.4
+++ prc_shft_effap.nss 25 Jun 2009 15:01:58 -0000
@@ -121,22 +121,6 @@
DeleteLocalInt(oShifter, "PRC_Shifter_ExtraDEX");
}
- // Extra CON bonus gets turned into temporary HP
- if(GetLocalInt(oShifter, "PRC_Shifter_ExtraCON"))
- {
- int nExtraCON = GetLocalInt(oShifter, "PRC_Shifter_ExtraCON");
-
- if(DEBUG) DoDebug("prc_sft_effap: Applying extra Constitution bonus\n"
- + "nExtraCON = " + IntToString(nExtraCON)
- );
-
- // Generate effect
- eTotalEffect = EffectLinkEffects(eTotalEffect, EffectTemporaryHitpoints(nExtraCON * GetHitDice(oShifter)));
-
- // Clean up local var
- DeleteLocalInt(oShifter, "PRC_Shifter_ExtraCON");
- }
-
// Natural AC
if(GetLocalInt(oShifter, "PRC_Shifter_NaturalAC"))
{
@@ -163,6 +147,33 @@
// Clean up local var
DeleteLocalInt(oShifter, "PRC_Shifter_HarmlessInvisible");
+ }
+
+ // Supernaturalise and apply the total effect
+ ApplyEffectToObject(DURATION_TYPE_PERMANENT, SupernaturalEffect(eTotalEffect), oShifter);
+
+ // Queue deletion of the applicator object
+ DestroyObject(oApplier, 6.0f);
+
+ //Apply temporary HP separately from other effects--linking it with other effects
+ //causes those other effects to be removed when the temporary HP is used up.
+
+ eTotalEffect = EffectVisualEffect(VFX_DUR_CESSATE_NEUTRAL); // Initialise to an unobtrusive VFX
+
+ // Extra CON bonus gets turned into temporary HP
+ if(GetLocalInt(oShifter, "PRC_Shifter_ExtraCON"))
+ {
+ int nExtraCON = GetLocalInt(oShifter, "PRC_Shifter_ExtraCON");
+
+ if(DEBUG) DoDebug("prc_sft_effap: Applying extra Constitution bonus\n"
+ + "nExtraCON = " + IntToString(nExtraCON)
+ );
+
+ // Generate effect
+ eTotalEffect = EffectLinkEffects(eTotalEffect, EffectTemporaryHitpoints(nExtraCON * GetHitDice(oShifter)));
+
+ // Clean up local var
+ DeleteLocalInt(oShifter, "PRC_Shifter_ExtraCON");
}
// Supernaturalise and apply the total effect