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