diff --git a/nwn/nwnprc/trunk/2das/spells.2da b/nwn/nwnprc/trunk/2das/spells.2da
index a258d22f..0212ad23 100644
--- a/nwn/nwnprc/trunk/2das/spells.2da
+++ b/nwn/nwnprc/trunk/2das/spells.2da
@@ -16010,7 +16010,7 @@
16006 Crusader_TacticsOfTheWolf 16837222 im_TacticsWolf N P 0 0x01 0x09 tob_CRU_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830197 0 **** **** **** 8203 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16007 Crusader_WarLeadersCharge 16837223 im_WarLeaderChrg N L 0 0x02 0x0a tob_CRU_generic **** **** **** **** **** **** 6 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830198 0 **** **** **** 8204 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16008 Crusader_WarMastersCharge 16837224 im_WarMasterChrg N L 0 0x02 0x0a tob_CRU_generic **** **** **** **** **** **** 9 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830200 0 **** **** **** 8205 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
-16009 Crusader_WhiteRavenHammer 16837225 im_WRHammer N T 0 0x02 0x0a tob_CRU_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830120 0 **** **** **** 8206 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
+16009 Crusader_WhiteRavenHammer 16837225 im_WRHammer N T 0 0x02 0x0a tob_CRU_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16832219 0 **** **** **** 8206 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16010 Crusader_WhiteRavenStrike 16837226 im_WRStrike N T 0 0x02 0x0a tob_CRU_generic **** **** **** **** **** **** 4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830118 0 **** **** **** 8207 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16011 Crusader_WhiteRavenTactics 16837227 im_WRTactics N S 0 0x04 0x0a tob_CRU_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830116 0 **** **** **** 8208 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16012 Swordsage_BlisteringFlourish 16837228 im_BlistFlrsh V P 0 0x02 0x3E tob_SWD_generic **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 11 **** 2 16829788 0 **** **** **** 8209 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@@ -16221,7 +16221,7 @@
16217 Swordsage_TacticsOfTheWolf 16837433 im_TacticsWolf N P 0 0x01 0x09 tob_SWD_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830197 0 **** **** **** 8411 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16218 Swordsage_WarLeadersCharge 16837434 im_WarLeaderChrg N L 0 0x02 0x0a tob_SWD_generic **** **** **** **** **** **** 6 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830198 0 **** **** **** 8412 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16219 Swordsage_WarMastersCharge 16837435 im_WarMasterChrg N L 0 0x02 0x0a tob_SWD_generic **** **** **** **** **** **** 9 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830200 0 **** **** **** 8413 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
-16220 Swordsage_WhiteRavenHammer 16837436 im_WRHammer N T 0 0x02 0x0a tob_SWD_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830120 0 **** **** **** 8414 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
+16220 Swordsage_WhiteRavenHammer 16837436 im_WRHammer N T 0 0x02 0x0a tob_SWD_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16832219 0 **** **** **** 8414 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16221 Swordsage_WhiteRavenStrike 16837437 im_WRStrike N T 0 0x02 0x0a tob_SWD_generic **** **** **** **** **** **** 4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830118 0 **** **** **** 8415 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16222 Swordsage_WhiteRavenTactics 16837438 im_WRTactics N S 0 0x04 0x0a tob_SWD_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830116 0 **** **** **** 8416 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
16223 Warblade_BlisteringFlourish 16837439 im_BlistFlrsh V P 0 0x02 0x3E tob_WAR_generic **** **** **** **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 11 **** 2 16829788 0 **** **** **** 8417 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@@ -17510,7 +17510,7 @@
17506 TacticsOfTheWolf 16830195 im_TacticsWolf N P 0 0x01 0x09 tob_wtrn_tctwlf **** **** **** **** **** **** 3 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830197 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17507 WarLeadersCharge 16830197 im_WarLeaderChrg N L 0 0x02 0x0a tob_wtrn_warldrc **** **** **** **** **** **** 6 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830198 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17508 WarMastersCharge 16830199 im_WarMasterChrg N L 0 0x02 0x0a tob_wtrn_warmtrc **** **** **** **** **** **** 9 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830200 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
-17509 WhiteRavenHammer 16832218 im_WRHammer N T 0 0x02 0x0a tob_wtrn_wtrvnhr **** **** **** **** **** **** 8 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830120 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
+17509 WhiteRavenHammer 16832218 im_WRHammer N T 0 0x02 0x0a tob_wtrn_wtrvnhr **** **** **** **** **** **** 8 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16832219 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17510 WhiteRavenStrike 16830117 im_WRStrike N T 0 0x02 0x0a tob_wtrn_whtrvns **** **** **** **** **** **** 4 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830118 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17511 WhiteRavenTactics 16830115 im_WRTactics N S 0 0x04 0x0a tob_wtrn_whtrvnt **** **** **** **** **** **** 3 0 **** **** **** **** **** **** **** attack 0 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 9 **** 2 16830116 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17512 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
@@ -17654,7 +17654,7 @@
17650 Warblade_TacticsOfTheWolf 16837644 im_TacticsWolf N P 0 0x01 0x09 tob_WAR_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830197 0 **** **** **** 8619 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17651 Warblade_WarLeadersCharge 16837645 im_WarLeaderChrg N L 0 0x02 0x0a tob_WAR_generic **** **** **** **** **** **** 6 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830198 0 **** **** **** 8620 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17652 Warblade_WarMastersCharge 16837646 im_WarMasterChrg N L 0 0x02 0x0a tob_WAR_generic **** **** **** **** **** **** 9 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830200 0 **** **** **** 8621 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
-17653 Warblade_WhiteRavenHammer 16837647 im_WRHammer N T 0 0x02 0x0a tob_WAR_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830120 0 **** **** **** 8622 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
+17653 Warblade_WhiteRavenHammer 16837647 im_WRHammer N T 0 0x02 0x0a tob_WAR_generic **** **** **** **** **** **** 8 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16832219 0 **** **** **** 8622 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17654 Warblade_WhiteRavenStrike 16837648 im_WRStrike N T 0 0x02 0x0a tob_WAR_generic **** **** **** **** **** **** 4 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830118 0 **** **** **** 8623 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17655 Warblade_WhiteRavenTactics 16837649 im_WRTactics N S 0 0x04 0x0a tob_WAR_generic **** **** **** **** **** **** 3 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** 9 **** 2 16830116 0 **** **** **** 8624 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
17656 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
diff --git a/nwn/nwnprc/trunk/include/prc_inc_scry.nss b/nwn/nwnprc/trunk/include/prc_inc_scry.nss
index 0178f0a3..315f2878 100644
--- a/nwn/nwnprc/trunk/include/prc_inc_scry.nss
+++ b/nwn/nwnprc/trunk/include/prc_inc_scry.nss
@@ -159,17 +159,17 @@ void ScryMain(object oPC, object oTarget)
FloatingTextStringOnCreature(GetName(oTarget) + " has been Obscured.", oPC, FALSE);
return;
}
- if(GetHasSpellEffect(SPELL_NONDETECTION, oTarget) || GetLevelByClass(CLASS_TYPE_WILD_MAGE, oTarget) >= 6 || GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oTarget) >= 5 || GetHasSpellEffect(MELD_ENIGMA_HELM, oTarget) || GetRacialType(oTarget) == RACIAL_TYPE_SKULK)
- {
- // Caster level check or the Divination fails.
- int nTarget = PRCGetCasterLevel(oTarget) + 11;
- if (GetRacialType(oTarget) == RACIAL_TYPE_SKULK && 20 > nTarget) nTarget = 20;
- if(nTarget > nCasterLevel + d20())
- {
- FloatingTextStringOnCreature(GetName(oTarget) + " has Nondetection active.", oPC, FALSE);
- return;
- }
- }
+ if(GetHasSpellEffect(SPELL_NONDETECTION, oTarget) || GetLevelByClass(CLASS_TYPE_WILD_MAGE, oTarget) >= 6 || GetLevelByClass(CLASS_TYPE_UNSEEN_SEER, oTarget) >= 5 || GetHasSpellEffect(MELD_ENIGMA_HELM, oTarget) || GetRacialType(oTarget) == RACIAL_TYPE_SKULK)
+ {
+ // Caster level check or the Divination fails.
+ int nTarget = PRCGetCasterLevel(oTarget) + 11;
+ if (GetRacialType(oTarget) == RACIAL_TYPE_SKULK) nTarget = 20;
+ if(nTarget > nCasterLevel + d20())
+ {
+ FloatingTextStringOnCreature(GetName(oTarget) + " has Nondetection active.", oPC, FALSE);
+ return;
+ }
+ }
if(GetHasSpellEffect(POWER_ESCAPE_DETECTION, oTarget))
{
// Caster level check or the Divination fails.
@@ -335,7 +335,7 @@ void DoScryEnd(object oPC, object oCopy)
);
//effect eGlow = EffectVisualEffect(VFX_DUR_ETHEREAL_VISAGE, FALSE);
- effect eLight = EffectVisualEffect(VFX_IMP_HEALING_X , FALSE);
+ effect eLight; // = EffectVisualEffect(VFX_IMP_HEALING_X , FALSE);
// Remove Immortality from the PC if necessary
if(!GetLocalInt(oPC, ALREADY_IMMORTAL_LOCAL_NAME))
@@ -356,6 +356,7 @@ void DoScryEnd(object oPC, object oCopy)
PRCRemoveSpellEffects(SPELL_SEQUESTER , oPC, oPC);
PRCRemoveSpellEffects(SPELL_PNP_SCRY_FAMILIAR, oPC, oPC);
PRCRemoveSpellEffects(SPELL_CLAIRAUDIENCE_AND_CLAIRVOYANCE, oPC, oPC);
+ PRCRemoveSpellEffects(POWER_CLAIRTANGENT_HAND, oPC, oPC);
// Remove the local signifying that the PC is a projection
DeleteLocalInt(oPC, "Scry_Active");
@@ -593,4 +594,6 @@ void CleanCopy(object oImage)
}
TakeGoldFromCreature(GetGold(oImage), oImage, TRUE);
-}
\ No newline at end of file
+}
+
+//void main (){}
\ No newline at end of file
diff --git a/nwn/nwnprc/trunk/include/prc_inc_switch.nss b/nwn/nwnprc/trunk/include/prc_inc_switch.nss
index f8079f27..56a97747 100644
--- a/nwn/nwnprc/trunk/include/prc_inc_switch.nss
+++ b/nwn/nwnprc/trunk/include/prc_inc_switch.nss
@@ -76,7 +76,7 @@
/* This variable MUST be updated with every new version of the PRC!!! */
- const string PRC_VERSION = "PRC8 4.88";
+ const string PRC_VERSION = "PRC8 4.89";
/* This variable MUST be updated every time 'assemble_spellbooks.bat' is run!!! */
diff --git a/nwn/nwnprc/trunk/psionics/psi_pow_clrhand.nss b/nwn/nwnprc/trunk/psionics/psi_pow_clrhand.nss
index a2d71bba..2f2b66f1 100644
--- a/nwn/nwnprc/trunk/psionics/psi_pow_clrhand.nss
+++ b/nwn/nwnprc/trunk/psionics/psi_pow_clrhand.nss
@@ -120,16 +120,9 @@ void ApplyScryEffects(object oManifester)
}}
}
+
void main()
{
-/*
- Spellcast Hook Code
- Added 2004-11-02 by Stratovarius
- If you want to make changes to all powers,
- check psi_spellhook to find out more
-
-*/
-
if (!PsiPrePowerCastCode())
{
// If code within the PrePowerCastHook (i.e. UMD) reports FALSE, do not run this spell
@@ -153,7 +146,8 @@ void main()
SetLocalInt(oManifester, "ScryCasterLevel", manif.nManifesterLevel);
SetLocalInt(oManifester, "ScrySpellId", manif.nSpellID);
- SetLocalFloat(oManifester, "ScryDuration", fDur);
+ SetLocalFloat(oManifester, "ScryDuration", fDur);
+ SetLocalInt(oManifester, "ScrySpellDC", GetManifesterDC(oManifester));
StartDynamicConversation("prc_scry_conv", oManifester, DYNCONV_EXIT_NOT_ALLOWED, FALSE, TRUE, oManifester);
diff --git a/nwn/nwnprc/trunk/spells/sp_gdust.nss b/nwn/nwnprc/trunk/spells/sp_gdust.nss
index 841cd6c8..8b3d644d 100644
--- a/nwn/nwnprc/trunk/spells/sp_gdust.nss
+++ b/nwn/nwnprc/trunk/spells/sp_gdust.nss
@@ -27,32 +27,37 @@ void main()
{
if(spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
{
- PRCSignalSpellEvent(oTarget);
+ // Mastery of shapes check
+ if(!CheckMasteryOfShapes(OBJECT_SELF, oTarget))
+ {
+ PRCSignalSpellEvent(oTarget);
- // Apply impact vfx.
- DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,
- EffectVisualEffect(VFX_IMP_SPARKS), oTarget));
+ // Apply impact vfx.
+ DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_INSTANT,
+ EffectVisualEffect(VFX_IMP_SPARKS), oTarget));
- // Creatures take the hide penalty whether they save or not.
- SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHidePenalty, oTarget, fDuration,TRUE,-1,nCasterLvl);
+ // Creatures take the hide penalty whether they save or not.
+ SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHidePenalty, oTarget, fDuration,TRUE,-1,nCasterLvl);
- // Creatures that are invisible become visible whether they save or not. We do
- // this by looping through all the creature's effects looking for invisibility
- // effects and removing them.
- effect eTarget = GetFirstEffect(oTarget);
- while (GetIsEffectValid(eTarget))
- {
- int nType = GetEffectType(eTarget);
- if (EFFECT_TYPE_INVISIBILITY == nType || EFFECT_TYPE_IMPROVEDINVISIBILITY == nType)
- RemoveEffect (oTarget, eTarget);
+ // Creatures that are invisible become visible whether they save or not. We do
+ // this by looping through all the creature's effects looking for invisibility
+ // effects and removing them.
+ effect eTarget = GetFirstEffect(oTarget);
+ while (GetIsEffectValid(eTarget))
+ {
+ int nType = GetEffectType(eTarget);
+ if (EFFECT_TYPE_INVISIBILITY == nType || EFFECT_TYPE_IMPROVEDINVISIBILITY == nType)
+ RemoveEffect (oTarget, eTarget);
- eTarget = GetNextEffect(oTarget);
- }
+ eTarget = GetNextEffect(oTarget);
+ }
- // Let the creature make a will save, if it fails it's blinded.
- if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, PRCGetSaveDC(oTarget,OBJECT_SELF)))
- SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlindness, oTarget, fDuration,TRUE,-1,nCasterLvl);
- }
+ // Let the creature make a will save, if it fails it's blinded.
+ if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, PRCGetSaveDC(oTarget,OBJECT_SELF)))
+ SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlindness, oTarget, fDuration,TRUE,-1,nCasterLvl);
+ }
+
+ }
oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, lTarget);
}
diff --git a/nwn/nwnprc/trunk/spells/sp_recitat.nss b/nwn/nwnprc/trunk/spells/sp_recitat.nss
index b5b31fc1..37e48928 100644
--- a/nwn/nwnprc/trunk/spells/sp_recitat.nss
+++ b/nwn/nwnprc/trunk/spells/sp_recitat.nss
@@ -1,6 +1,90 @@
-#include "prc_inc_spells"
+/*
+ Recitation Impact Script
+
+ Spell Compendium version:
+ - Conjuration (Creation)
+ - Level: Cleric 4, Purification 3
+ - Target: All allies within 60-ft. radius burst
+ - Duration: 1 round/level
+ - Allies gain +2 luck bonus to AC, attack rolls, saving throws
+ - +3 luck bonus if they worship same deity as caster
+*/
+#include "prc_inc_spells"
+#include "prc_sp_func"
+#include "prc_inc_combat"
+
+//Implements the spell impact
+int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
+{
+ int nMetaMagic = PRCGetMetaMagicFeat();
+ float fDuration = RoundsToSeconds(nCasterLevel);
+
+ // Apply metamagic
+ if(nMetaMagic & METAMAGIC_EXTEND)
+ fDuration *= 2.0;
+
+ // Get caster's deity for comparison
+ string sCasterDeity = GetDeity(oCaster);
+
+ // Check if target is an ally
+ if(spellsIsTarget(oTarget, SPELL_TARGET_ALLALLIES, oCaster))
+ {
+ // Determine bonus amount based on deity
+ int nBonus = 2;
+ if(GetDeity(oTarget) == sCasterDeity && sCasterDeity != "")
+ nBonus = 3;
+
+ // Create luck bonus effects
+ effect eAC = EffectACIncrease(nBonus, AC_DODGE_BONUS, AC_VS_DAMAGE_TYPE_ALL);
+ eAC = EffectLinkEffects(eAC, EffectVisualEffect(VFX_DUR_PROTECTION_GOOD_MINOR));
+
+ effect eAttack = EffectAttackIncrease(nBonus);
+ effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, nBonus);
+
+ // Link all effects together
+ effect eLink = EffectLinkEffects(eAC, eAttack);
+ eLink = EffectLinkEffects(eLink, eSave);
+
+ // Apply the effects
+ SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDuration, TRUE);
+
+ // Apply visual effect
+ SPApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_HEAD_HOLY), oTarget);
+ }
+
+ return TRUE; // Return TRUE for area spells
+}
+
+void main()
+{
+ object oCaster = OBJECT_SELF;
+ int nCasterLevel = PRCGetCasterLevel(oCaster);
+ int nSpellID = PRCGetSpellId();
+
+ PRCSetSchool(GetSpellSchool(nSpellID));
+ if (!X2PreSpellCastCode()) return;
+
+ // Get spell target location for area effect
+ location lTarget = GetSpellTargetLocation();
+
+ // Apply area of effect - 60ft radius (RADIUS_SIZE_COLOSSAL)
+ effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
+ ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, lTarget);
+
+ // Get all creatures in 60ft radius
+ object oTarget = MyFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
+
+ while(GetIsObjectValid(oTarget))
+ {
+ DoSpell(oCaster, oTarget, nCasterLevel, 0);
+ oTarget = MyNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lTarget, TRUE, OBJECT_TYPE_CREATURE);
+ }
+
+ PRCSetSchool();
+}
-void main()
+
+/* void main()
{
// If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell
if (!X2PreSpellCastCode()) return;
@@ -70,3 +154,4 @@ void main()
PRCSetSchool();
}
+ */
\ No newline at end of file
diff --git a/nwn/nwnprc/trunk/spells/sp_sleet_stormA.nss b/nwn/nwnprc/trunk/spells/sp_sleet_stormA.nss
index f6f5000b..bd6aa85b 100644
--- a/nwn/nwnprc/trunk/spells/sp_sleet_stormA.nss
+++ b/nwn/nwnprc/trunk/spells/sp_sleet_stormA.nss
@@ -5,26 +5,26 @@
/**@file Sleet Storm
Conjuration (Creation) [Cold]
-Level: Drd 3, Sor/Wiz 3
-Components: V, S, M/DF
-Casting Time: 1 standard action
-Range: Long (400 ft. + 40 ft./level)
-Area: Cylinder (40-ft. radius, 20 ft. high)
-Duration: 1 round/level
-Saving Throw: None
+Level: Drd 3, Sor/Wiz 3
+Components: V, S, M/DF
+Casting Time: 1 standard action
+Range: Long (400 ft. + 40 ft./level)
+Area: Cylinder (40-ft. radius, 20 ft. high)
+Duration: 1 round/level
+Saving Throw: None
Spell Resistance: No
-Driving sleet blocks all sight (even darkvision)
+Driving sleet blocks all sight (even darkvision)
within it and causes the ground in the area to be
-icy. A creature can walk within or through the
-area of sleet at half normal speed with a DC 10
-Balance check. Failure means it can’t move in that
-round, while failure by 5 or more means it falls
+icy. A creature can walk within or through the
+area of sleet at half normal speed with a DC 10
+Balance check. Failure means it can't move in that
+round, while failure by 5 or more means it falls
(see the Balance skill for details).
The sleet extinguishes torches and small fires.
-Arcane Material Component: A pinch of dust and a
+Arcane Material Component: A pinch of dust and a
few drops of water.
Author: Tenjac
@@ -42,6 +42,13 @@ void main()
object oPC = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
int nCasterLvl = PRCGetCasterLevel(oPC);
+
+ if(CheckMasteryOfShapes(oPC, oTarget))
+ {
+ PRCSetSchool();
+ return;
+ }
+
effect eLink = EffectLinkEffects(EffectBlindness(), EffectMovementSpeedDecrease(50));
SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget, 0.0f, TRUE, SPELL_SLEET_STORM, nCasterLvl);
diff --git a/nwn/nwnprc/trunk/spells/sp_sleet_stormC.nss b/nwn/nwnprc/trunk/spells/sp_sleet_stormC.nss
index 04385b68..92b2f43e 100644
--- a/nwn/nwnprc/trunk/spells/sp_sleet_stormC.nss
+++ b/nwn/nwnprc/trunk/spells/sp_sleet_stormC.nss
@@ -1,4 +1,4 @@
-//::///////////////////////////////////////////////
+//::///////////////////////////////////////////////
//:: Name Sleet Storm Heartbeat
//:: FileName sp_sleet_stormC.nss
//:://////////////////////////////////////////////
@@ -18,7 +18,7 @@ Driving sleet blocks all sight (even darkvision)
within it and causes the ground in the area to be
icy. A creature can walk within or through the
area of sleet at half normal speed with a DC 10
-Balance check. Failure means it can’t move in that
+Balance check. Failure means it can’t move in that
round, while failure by 5 or more means it falls
(see the Balance skill for details).
@@ -46,6 +46,13 @@ void main()
while(GetIsObjectValid(oTarget))
{
+ if(CheckMasteryOfShapes(GetAreaOfEffectCreator(), oTarget))
+ {
+ // Target is protected by Mastery of Shaping.
+ oTarget = GetNextInPersistentObject(OBJECT_SELF, OBJECT_TYPE_CREATURE);
+ continue;
+ }
+
int nFail = BalanceCheckFailure(oTarget);
//Can't move
@@ -60,23 +67,23 @@ void main()
PRCSetSchool();
}
-int BalanceCheckFailure(object oTarget)
-{
- int nResult = 0;
- int nRoll = GetAbilityModifier(ABILITY_DEXTERITY, oTarget) + d20(1);
- int nTumble = GetSkillRank(SKILL_TUMBLE, oTarget);
-
- //if 5 or more ranks of Tumble, +2 bonus
- if(nTumble > 4) nRoll += 2;
-
- //All fails
- if(nRoll < 10)
- {
- //if failed by 5 or more
- if((10 - nRoll) < 6) nResult = 2;
-
- //otherwise it failed by less than 5
- else nResult = 1;
- }
- return nResult;
-}
\ No newline at end of file
+int BalanceCheckFailure(object oTarget)
+{
+ int nResult = 0;
+ int nRoll = GetSkillRank(SKILL_BALANCE, oTarget) + d20(1);
+ int nTumble = GetSkillRank(SKILL_TUMBLE, oTarget);
+
+ //if 5 or more ranks of Tumble, +2 bonus
+ if(nTumble > 4) nRoll += 2;
+
+ //All fails
+ if(nRoll < 10)
+ {
+ //if failed by 5 or more
+ if((10 - nRoll) < 6) nResult = 2;
+
+ //otherwise it failed by less than 5
+ else nResult = 1;
+ }
+ return nResult;
+}
diff --git a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk
index 5fa2c724..86dc00b2 100644
Binary files a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk and b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk differ
diff --git a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml
index e32706b7..46a4de49 100644
--- a/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml
+++ b/nwn/nwnprc/trunk/tlk/prc8_consortium.tlk.xml
@@ -38480,17 +38480,17 @@ This spell imbues the caster with the might of his deity, giving him a +8 Streng
Recitation
Caster Level(s): Cleric 4
Innate Level: 4
-School: Conjuration
+School: Conjuration (Creation)
Descriptor(s):
Component(s): Verbal, Somatic
Range: Personal
-Area of Effect / Target: Colossal, centered on you
+Area of Effect / Target: 60 ft., centered on you
Duration: 1 Round / Level
Additional Counter Spells:
Save: None
-Spell Resistance: Yes (for detrimental effects)
+Spell Resistance: Yes
-You recite holy scriptures of your deity. All allies (including you) in the area receive a +2 bonus to attack rolls, saving throws, and skill checks. All enemies receive a -2 penalty to attack rolls, saving throws, and skill checks. Creatures who are neither friendly or hostile are unaffected..
+You recite holy scriptures of your deity. The spell affects all allies (including you) within the spell's area at the moment you cast it. Your allies gain a +2 luck bonus to AC, on attack rolls, and on saving throws, or a +3 luck bonus if they worship the same deity as you.
Forceblast
Caster Level(s): Wizard / Sorcerer 3
Innate Level: 3
@@ -76270,7 +76270,7 @@ Throwing Axes
Warblade (Default)
(STARTING PACKAGE)
-The default package focuses on improving strength and proficiency with the longsword..
+The default package focuses on improving strength and proficiency with the longsword.
Equipment:
Torch
diff --git a/nwn/nwnprc/trunk/tlk/prc_consortium.tlk b/nwn/nwnprc/trunk/tlk/prc_consortium.tlk
index 5fa2c724..86dc00b2 100644
Binary files a/nwn/nwnprc/trunk/tlk/prc_consortium.tlk and b/nwn/nwnprc/trunk/tlk/prc_consortium.tlk differ