Added Chasing Perfection spell

Added Chasing Perfection spell.  Moved katar to simple weapons for crafting.  Updated release archive.
This commit is contained in:
Jaysyn904 2024-08-07 23:09:09 -04:00
parent f3762a7444
commit 1408647e37
19 changed files with 450 additions and 263 deletions

1
.gitignore vendored
View File

@ -157,3 +157,4 @@ nwn/nwnprc/trunk/makefile.temp
nwn/nwnprc/trunk/makefile.temp
nwn/nwnprc/trunk/scripts/old_lich_alter.nss
nwn/nwnprc/trunk/makefile.temp
*.temp

BIN
Release/PRC8_20240807.7z Normal file

Binary file not shown.

View File

@ -2480,7 +2480,7 @@
2476 ForestMaster_DeepRoots **** **** **** **** **** ****
2477 ResistEnergyCold **** **** **** **** **** ****
2478 ResistEnergyElec **** **** **** **** **** ****
2479 ResistEnergyAcid **** **** **** **** **** ****
2479 SPELL_CHASING_PERFECTION prc_scr_997 prc_scr_997 **** prc_scr_997 **** ****
2480 SPELL_FORCE_MISSILES prc_scr_995 **** **** **** **** ****
2481 SYMBOL_OF_DEATH prc_scr_967 prc_scr_967 **** **** **** ****
2482 SYMBOL_OF_FEAR prc_scr_968 prc_scr_968 **** **** **** ****

View File

@ -2478,9 +2478,9 @@
2474 ForestMaster_IcyMallet **** 1 1 1 2 0
2475 ForestMaster_ShockMallet **** 1 1 1 2 0
2476 ForestMaster_DeepRoots **** 1 1 1 4 0
2477 ResistEnergyCold **** 1 1 1 **** 0
2478 ResistEnergyElec **** 1 1 1 **** 0
2479 ResistEnergyAcid **** 1 1 1 **** 0
2477 **** **** 1 1 1 **** 0
2478 **** **** 1 1 1 **** 0
2479 SPELL_CHASING_PERFECTION 997 1 1 0 6 0
2480 SPELL_FORCE_MISSILES 995 1 0 0 4 0
2481 SYMBOL_OF_DEATH 967 1 1 0 8 0
2482 SYMBOL_OF_FEAR 968 1 1 0 6 0

View File

@ -249,3 +249,4 @@
245 Crystallize 16823673 14202 6
246 BasiliskMask 16836737 18708 8
247 GorgonMask 16836803 18729 8
248 SPELL_FORCE_MISSILES 16790488 2480 4

View File

@ -996,10 +996,10 @@
992 Greater_Resistance 16790119 7 4 21000 3457 1 1 1 iss_gr_resis
993 Superior_Resistance 16790122 11 6 49500 3458 0 0 1 iss_sup_resis
994 Faerie_Fire 16793699 1 1 750 2924 0 1 1 iss_faerie_fire
995 SPELL_FORCE_MISSILES 16790488 12 4 21000 2480 0 1 1 iss_X1LesMis
996 **** **** **** **** **** **** **** **** **** ****
997 **** **** **** **** **** **** **** **** **** ****
998 **** **** **** **** **** **** **** **** **** ****
995 SPELL_FORCE_MISSILES_8 16790491 8 4 21000 2480 0 1 1 iss_X1LesMis
996 SPELL_FORCE_MISSILES_12 16790488 12 4 33750 2480 0 1 1 iss_X1LesMis
997 SPELL_CHASING_PERFECTION_12 16790495 12 6 33750 2479 0 0 1 fot_strengthone
998 SPELL_CHASING_PERFECTION_16 16790496 16 6 45000 2479 0 0 1 fot_strengthone
999 **** **** **** **** **** **** **** **** **** ****
1000 Acid_Orb 16830292 7 4 21000 3100 0 1 1 iss_acidorb
1001 Acid_Orb 16830293 15 4 45000 3100 0 1 1 iss_acidorb

View File

@ -2480,7 +2480,7 @@
2476 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2477 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2478 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2479 **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2479 SPELL_CHASING_PERFECTION **** **** **** 50 **** mc_planarstatue Planar_Statuette **** **** **** **** **** ****
2480 SPELL_FORCE_MISSILES **** 0x00800 **** **** **** **** **** **** **** **** **** **** ****
2481 SYMBOL_OF_DEATH **** 0x00020 **** 5000 **** mc_mercury Mercury mc_phosphorus Phosphorus mc_diamonddust Diamond_Dust **** ****
2482 SYMBOL_OF_FEAR **** 0x10200 **** 1000 **** mc_mercury Mercury mc_phosphorus Phosphorus mc_diamonddust Diamond_Dust **** ****

View File

@ -2480,7 +2480,7 @@
2476 ForestMaster_DeepRoots 16793751 is_x2vinemine T P 0 0x00 0x01 prc_fm_deeproots **** **** **** **** **** **** 4 500 head **** **** **** **** **** **** self 500 **** **** vca_uphexnatr01 sca_outnatr01 0 **** **** **** **** **** **** 1 **** **** **** **** **** 10 **** 3 16793759 0 0 16778866 0 5446 **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2477 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2478 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2479 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2479 SPELL_CHASING_PERFECTION 16790493 fot_strengthone T T vs 0x02 0x0b sp_chasperfect **** 6 6 **** **** 6 6 1500 hand **** vco_mehannatr03 **** sco_mehannatr01 vs_chant_ench_lm vs_chant_ench_hf out 1000 **** **** **** **** 0 **** **** **** **** **** **** 0 **** **** **** **** **** 7 **** 1 16790494 1 0 **** 0 **** **** **** 0 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2480 SPELL_FORCE_MISSILES 16790488 is_X1LesMis V L vs 0x3d 0x1E sp_forcemissiles **** **** **** **** **** 4 4 1500 hand **** vco_mehancold03 **** sco_mehancold03 vs_chant_evoc_lm vs_chant_evoc_lf out 1900 **** vca_outsonic **** sca_outsonic 0 **** **** **** **** path **** 1 **** **** **** **** **** 2 **** 1 16790489 1 0 **** 1 **** **** **** 1 sphere 8.33 **** 2 **** **** **** **** **** **** **** **** **** **** **** **** ****
2481 SYMBOL_OF_DEATH 16790080 is_symb_death N S vs 0x3f 0x3E sp_symbol **** 8 **** **** **** 8 8 1500 head **** **** vco_megrdevil01 sco_megrdevil01 vs_chant_necr_hm vs_chant_necr_hf area 1000 **** **** **** **** 1 vpr_ectoevil01 homing hand spr_ectoevil01 path Death 1 **** **** **** **** **** 11 **** 1 16790082 1 0 **** 1 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****
2482 SYMBOL_OF_FEAR 16790083 is_symb_fear N S vs 0x3f 0x3E sp_symbol **** 6 **** **** **** 6 6 1500 head **** **** vco_lgsprevil01 sco_lgsprevil01 vs_chant_necr_hm vs_chant_necr_hf area 1000 **** **** **** **** 1 vpr_ectoevil01 homing hand spr_ectoevil01 path Fear 1 **** **** **** **** **** 11 **** 1 16790085 1 0 **** 1 **** **** **** 1 **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** **** ****

View File

@ -1365,7 +1365,6 @@ int GetWeaponType(int nBaseItem)
case BASE_ITEM_SCIMITAR:
case BASE_ITEM_THROWINGAXE:
case BASE_ITEM_TRIDENT:
case BASE_ITEM_KATAR:
case BASE_ITEM_HEAVY_PICK:
case BASE_ITEM_LIGHT_PICK:
case BASE_ITEM_FALCHION:
@ -1385,6 +1384,7 @@ int GetWeaponType(int nBaseItem)
case BASE_ITEM_HEAVYCROSSBOW:
case BASE_ITEM_CLUB:
case BASE_ITEM_QUARTERSTAFF:
case BASE_ITEM_KATAR:
case BASE_ITEM_HEAVY_MACE:
case BASE_ITEM_GOAD:
return PRC_CRAFT_SIMPLE_WEAPON;

View File

@ -427,8 +427,9 @@ const int SPELL_SUDDEN_STALAGMITE = 3827;
const int SPELL_BONES_OF_THE_EARTH = 3828;
const int SPELL_PHANTOM_STEED = 2347;
const int SPELL_GASEOUS_FORM = 2348;
const int SPELL_CHASING_PERFECTION = 2479;
//racial spell additions
//:: Racial spell additions
const int SPIRETOP_FOG_CLOUD_BREATH = 1487; //:: Spiretop Dragon
const int MEPHLING_BREATH_WEAPON = 1488; //:: Mephlings
const int SPELL_ARANEA_ALTER = 1489; //:: Aranea

View File

@ -993,7 +993,7 @@ int CICraftCheckCraftStaff(object oSpellTarget, object oCaster, int nSpellID = 0
int nMetaMagic = PRCGetMetaMagicFeat();
if(nMetaMagic && !GetHasFeat(X2_CI_CRAFTSTAFF_EPIC_FEAT_ID, oCaster))
{
FloatingTextStringOnCreature("* Failure - You must be able to craft epic staffs to apply metamagic *", oCaster);
FloatingTextStringOnCreature("* Failure - You must be able to craft epic staves to apply metamagic *", oCaster);
return TRUE; // tried item creation but do not know how to do it
}
if(CIGetIsSpellRestrictedFromCraftFeat(nSpellID, X2_CI_CRAFTSTAFF_FEAT_ID))

View File

@ -2305,6 +2305,7 @@ spells\sp_celest_bld.nss \
spells\sp_chaavs_lgh.nss \
spells\sp_chan_pyrob.nss \
spells\sp_changestaff.nss \
spells\sp_chasperfect.nss \
spells\sp_chilltouch.nss \
spells\sp_chngshp_lern.nss \
spells\sp_chngshp_opts.nss \
@ -4906,6 +4907,7 @@ spellobjs\sp_celest_bld.ncs \
spellobjs\sp_chaavs_lgh.ncs \
spellobjs\sp_chan_pyrob.ncs \
spellobjs\sp_changestaff.ncs \
spellobjs\sp_chasperfect.ncs \
spellobjs\sp_chilltouch.ncs \
spellobjs\sp_chngshp_lern.ncs \
spellobjs\sp_chngshp_opts.ncs \
@ -21297,6 +21299,7 @@ others\prc_scr_992.uti \
others\prc_scr_993.uti \
others\prc_scr_994.uti \
others\prc_scr_995.uti \
others\prc_scr_997.uti \
others\prc_scrolls.utm \
others\prc_serparrow.uti \
others\prc_serpbolt.uti \
@ -31930,6 +31933,8 @@ spellobjs\sp_chan_pyrob.ncs: spells\sp_chan_pyrob.nss include\prc_inc_spells.nss
spellobjs\sp_changestaff.ncs: spells\sp_changestaff.nss include\prc_inc_spells.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\inc_2dacache.nss include\inc_debug.nss include\prc_inc_switch.nss include\prc_inc_array.nss include\prc_class_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_utility.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_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\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\tob_move_const.nss include\prcsp_archmaginc.nss include\prc_add_spl_pen.nss include\prcsp_reputation.nss
spellobjs\sp_chasperfect.ncs: spells\sp_chasperfect.nss include\prc_inc_sp_tch.nss include\prc_sp_func.nss include\prc_add_spell_dc.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 include\prc_alterations.nss
spellobjs\sp_chilltouch.ncs: spells\sp_chilltouch.nss include\prc_sp_func.nss include\prc_inc_sp_tch.nss include\prc_add_spell_dc.nss include\prc_alterations.nss include\prc_inc_unarmed.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\prc_inc_natweap.nss include\prc_inc_spells.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 include\prc_inc_combat.nss include\prc_inc_onhit.nss include\prc_inc_fork.nss
spellobjs\sp_chngshp_lern.ncs: spells\sp_chngshp_lern.nss include\prc_inc_shifting.nss include\prc_inc_spells.nss include\prc_inc_racial.nss include\prc_inc_function.nss include\prc_inc_onhit.nss include\prc_shifter_info.nss include\prc_weap_apt.nss include\prc_inc_wpnrest.nss include\inc_nwnx_funcs.nss include\prc_class_const.nss include\prc_feat_const.nss include\prc_racial_const.nss include\prc_inc_util.nss include\prc_inc_stunfist.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\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_array.nss include\moi_meld_const.nss include\bnd_vestig_const.nss include\inc_2dacache.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 include\inc_dynconv.nss include\prc_inc_combat.nss include\prc_inc_unarmed.nss include\prc_inc_fork.nss include\prc_inc_natweap.nss

Binary file not shown.

View File

@ -0,0 +1,158 @@
/**@file Chasing Perfection
[sp_chasperfect.nss]
(Player's Handbook II, p. 106)
Transmutation
Level: Cleric 6, Druid 6, Sorcerer 6, Wizard 6,
Components: V, S, M,
Casting Time: 1 standard action
Range: Touch
Target: Creature touched
Duration: 1 minute/level
Saving Throw: Will negates (harmless)
Spell Resistance: Yes (harmless)
Energy courses through the creature touched.
Its muscles grow and become more defined, it starts
to move with greater alacrity and grace, and its
bearing increases.
The subject improves in all ways. It gains a +4
enhancement bonus to each of its ability scores.
Material Component: A statuette of a celestial or
fiend worth 50 gp.
**/
////////////////////////////////////////////////////
// Author: Tenjac & Jaysyn
// Date: 2024/08/07
////////////////////////////////////////////////////
#include "prc_inc_sp_tch"
#include "prc_sp_func"
#include "prc_add_spell_dc"
int DoSpell(object oCaster, object oTarget, int nCasterLevel, int nEvent)
{
int nMetaMagic = PRCGetMetaMagicFeat();
float fDur = (60.0f * nCasterLevel);
if(nMetaMagic & METAMAGIC_EXTEND)
fDur += fDur;
PRCSignalSpellEvent(oTarget, FALSE, SPELL_CHASING_PERFECTION, oCaster);
// Check for existing ability enhancing spells
effect eExistingSpellEffect = GetFirstEffect(oTarget);
int nBoostSTR = 4;
int nBoostDEX = 4;
int nBoostCON = 4;
int nBoostWIS = 4;
int nBoostINT = 4;
int nBoostCHA = 4;
while (GetIsEffectValid(eExistingSpellEffect))
{
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_CROWN_OF_MIGHT || GetEffectSpellId(eExistingSpellEffect) == SPELL_TOWERING_OAK)
{
nBoostSTR = 2;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_ANIMALISTIC_POWER)
{
nBoostSTR = 2;
nBoostDEX = 2;
nBoostCON = 2;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_AWAKEN)
{
nBoostSTR = 0;
nBoostWIS = 0;
nBoostCON = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_BULLS_STRENGTH ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_BULLS_STRENGTH ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_BULLS_STRENGTH)
{
nBoostSTR = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_CATS_GRACE ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_CATS_GRACE ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_CATS_GRACE)
{
nBoostDEX = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_ENDURANCE ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_ENDURANCE ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_ENDURANCE)
{
nBoostCON = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_OWLS_WISDOM ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_OWLS_WISDOM ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_OWLS_INSIGHT ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_OWLS_WISDOM)
{
nBoostWIS = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_FOXS_CUNNING ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_FOXS_CUNNING ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_FOXS_CUNNING)
{
nBoostINT = 0;
}
if (GetEffectSpellId(eExistingSpellEffect) == SPELL_EAGLE_SPLEDOR ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_MASS_EAGLES_SPLENDOR ||
GetEffectSpellId(eExistingSpellEffect) == SPELL_GREATER_EAGLE_SPLENDOR)
{
nBoostCHA = 0;
}
eExistingSpellEffect = GetNextEffect(oTarget);
}
//:: Build effect: Increase all ability scores
effect eBuff = EffectLinkEffects(EffectAbilityIncrease(ABILITY_STRENGTH, nBoostSTR), EffectAbilityIncrease(ABILITY_DEXTERITY, nBoostDEX));
eBuff = EffectLinkEffects(eBuff, EffectAbilityIncrease(ABILITY_CONSTITUTION, nBoostCON));
eBuff = EffectLinkEffects(eBuff, EffectAbilityIncrease(ABILITY_INTELLIGENCE, nBoostINT));
eBuff = EffectLinkEffects(eBuff, EffectAbilityIncrease(ABILITY_WISDOM, nBoostWIS));
eBuff = EffectLinkEffects(eBuff, EffectAbilityIncrease(ABILITY_CHARISMA, nBoostCHA));
eBuff = EffectLinkEffects(eBuff, EffectVisualEffect(VFX_DUR_SANCTUARY));
//:: Apply the linked effects to the target
SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBuff, oTarget, fDur, TRUE, SPELL_CHASING_PERFECTION, nCasterLevel);
return TRUE;
}
void main()
{
if (!X2PreSpellCastCode()) return;
PRCSetSchool(SPELL_SCHOOL_TRANSMUTATION);
object oCaster = OBJECT_SELF;
object oTarget = PRCGetSpellTargetObject();
int nCasterLevel = PRCGetCasterLevel(oCaster);
int nEvent = GetLocalInt(oCaster, PRC_SPELL_EVENT); //use bitwise & to extract flags
if(!nEvent) //normal cast
{
if(GetLocalInt(oCaster, PRC_SPELL_HOLD) && oCaster == oTarget)
{
// holding the charge, casting spell on self
SetLocalSpellVariables(oCaster, 1); //change 1 to number of charges
return;
}
DoSpell(oCaster, oTarget, nCasterLevel, nEvent);
}
else
{
if(nEvent & PRC_SPELL_EVENT_ATTACK)
{
if(DoSpell(oCaster, oTarget, nCasterLevel, nEvent))
DecrementSpellCharges(oCaster);
}
}
PRCSetSchool();
}

View File

@ -4753,6 +4753,27 @@ of a creature.
You gain one missile for every four caster levels. Extra missiles distribute
themsleves amongst your enemies evenly.</entry>
<entry id="13275" lang="en" sex="m">Force Missiles (8)</entry>
<entry id="13276" lang="en" sex="m">Force Missiles (12)</entry>
<entry id="13277" lang="en" sex="m">Chasing Perfection</entry>
<entry id="13278" lang="en" sex="m">Transmutation
Level: Cleric 6, Druid 6, Sorcerer 6, Wizard 6,
Components: V, S, M,
Casting Time: 1 standard action
Range: Touch
Target: Creature touched
Duration: 1 minute/level
Saving Throw: Will negates (harmless)
Spell Resistance: Yes (harmless)
Energy courses through the creature touched.
Its muscles grow and become more defined, it starts to move with greater alacrity and grace, and its bearing increases.
The subject improves in all ways.
It gains a +4 enhancement bonus to each of its ability scores.
Material Component: A statuette of a celestial or fiend worth 50 gp.</entry>
<entry id="13279" lang="en" sex="m">Chasing Perfection (12)</entry>
<entry id="13280" lang="en" sex="m">Chasing Perfection (16)</entry>
<entry id="16409" lang="en" sex="m">62</entry>
<entry id="16410" lang="en" sex="m">63</entry>
<entry id="16411" lang="en" sex="m">64</entry>