diff --git a/_module/ncs/_inc_color_text_.ncs b/_module/ncs/_inc_color_text_.ncs deleted file mode 100644 index 891878d..0000000 Binary files a/_module/ncs/_inc_color_text_.ncs and /dev/null differ diff --git a/_module/ncs/aps_include.ncs b/_module/ncs/aps_include.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/aps_include.ncs and /dev/null differ diff --git a/_module/ncs/btlr__inc.ncs b/_module/ncs/btlr__inc.ncs deleted file mode 100644 index 8a63aae..0000000 Binary files a/_module/ncs/btlr__inc.ncs and /dev/null differ diff --git a/_module/ncs/cheat_config.ncs b/_module/ncs/cheat_config.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/cheat_config.ncs and /dev/null differ diff --git a/_module/ncs/clickforxp.ncs b/_module/ncs/clickforxp.ncs index e3667ad..db41db8 100644 Binary files a/_module/ncs/clickforxp.ncs and b/_module/ncs/clickforxp.ncs differ diff --git a/_module/ncs/dm_chat_inc.ncs b/_module/ncs/dm_chat_inc.ncs deleted file mode 100644 index ab9e652..0000000 Binary files a/_module/ncs/dm_chat_inc.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_config.ncs b/_module/ncs/fky_chat_config.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_config.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_dmfi.ncs b/_module/ncs/fky_chat_dmfi.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_dmfi.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_fr_lang.ncs b/_module/ncs/fky_chat_fr_lang.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_fr_lang.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_inc.ncs b/_module/ncs/fky_chat_inc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_inc.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_misc.ncs b/_module/ncs/fky_chat_misc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_misc.ncs and /dev/null differ diff --git a/_module/ncs/fky_chat_vfx.ncs b/_module/ncs/fky_chat_vfx.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/fky_chat_vfx.ncs and /dev/null differ diff --git a/_module/ncs/hgll_classft_inc.ncs b/_module/ncs/hgll_classft_inc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/hgll_classft_inc.ncs and /dev/null differ diff --git a/_module/ncs/hgll_featreq_inc.ncs b/_module/ncs/hgll_featreq_inc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/hgll_featreq_inc.ncs and /dev/null differ diff --git a/_module/ncs/hgll_func_inc.ncs b/_module/ncs/hgll_func_inc.ncs deleted file mode 100644 index 52b6eee..0000000 Binary files a/_module/ncs/hgll_func_inc.ncs and /dev/null differ diff --git a/_module/ncs/hgll_leto_inc.ncs b/_module/ncs/hgll_leto_inc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/hgll_leto_inc.ncs and /dev/null differ diff --git a/_module/ncs/hgll_struct_stat.ncs b/_module/ncs/hgll_struct_stat.ncs deleted file mode 100644 index 5bf4aef..0000000 Binary files a/_module/ncs/hgll_struct_stat.ncs and /dev/null differ diff --git a/_module/ncs/inc_emotewand.ncs b/_module/ncs/inc_emotewand.ncs deleted file mode 100644 index 752cf58..0000000 Binary files a/_module/ncs/inc_emotewand.ncs and /dev/null differ diff --git a/_module/ncs/rr_debug.ncs b/_module/ncs/rr_debug.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/rr_debug.ncs and /dev/null differ diff --git a/_module/ncs/rr_loops.ncs b/_module/ncs/rr_loops.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/rr_loops.ncs and /dev/null differ diff --git a/_module/ncs/rr_tagbased.ncs b/_module/ncs/rr_tagbased.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/rr_tagbased.ncs and /dev/null differ diff --git a/_module/ncs/sf_socket_inc.ncs b/_module/ncs/sf_socket_inc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/sf_socket_inc.ncs and /dev/null differ diff --git a/_module/ncs/sha_disallo_devc.ncs b/_module/ncs/sha_disallo_devc.ncs deleted file mode 100644 index ecb1c72..0000000 Binary files a/_module/ncs/sha_disallo_devc.ncs and /dev/null differ diff --git a/_module/ncs/tlr_include.ncs b/_module/ncs/tlr_include.ncs deleted file mode 100644 index a82e80e..0000000 Binary files a/_module/ncs/tlr_include.ncs and /dev/null differ diff --git a/_module/ncs/x2_s1_beholdray.ncs b/_module/ncs/x2_s1_beholdray.ncs new file mode 100644 index 0000000..6d49584 Binary files /dev/null and b/_module/ncs/x2_s1_beholdray.ncs differ diff --git a/_module/ncs/xp_inc.ncs b/_module/ncs/xp_inc.ncs deleted file mode 100644 index c774921..0000000 Binary files a/_module/ncs/xp_inc.ncs and /dev/null differ diff --git a/_module/ncs/zdlg_include_i.ncs b/_module/ncs/zdlg_include_i.ncs deleted file mode 100644 index 199203b..0000000 Binary files a/_module/ncs/zdlg_include_i.ncs and /dev/null differ diff --git a/_module/ncs/zep_inc_craft.ncs b/_module/ncs/zep_inc_craft.ncs deleted file mode 100644 index 5bf4aef..0000000 Binary files a/_module/ncs/zep_inc_craft.ncs and /dev/null differ diff --git a/_module/nss/x2_s1_beholdray.nss b/_module/nss/x2_s1_beholdray.nss new file mode 100644 index 0000000..bfc0c90 --- /dev/null +++ b/_module/nss/x2_s1_beholdray.nss @@ -0,0 +1,218 @@ +//:://///////////////////////////////////////////// +//:: Beholder Ray Attacks +//:: x2_s2_beholdray +//:: Copyright (c) 2003 Bioware Corp. +//::////////////////////////////////////////////// +/* + Implementation for the new version of the + beholder rays, using projectiles instead of + rays +*/ +//::////////////////////////////////////////////// +//:: Created By: Georg Zoeller +//:: Created On: 2003-09-16 +//::////////////////////////////////////////////// + + +#include "x0_i0_spells" + + +void DoBeholderPetrify(int nDuration,object oSource, object oTarget, int nSpellID); + +void main() +{ + + int nSpell = GetSpellId(); + object oTarget = GetSpellTargetObject(); + int nSave, bSave; + int nSaveDC = 15; + float fDelay; + effect e1, eLink, eVis, eDur; + + + switch (nSpell) + { + case 776 : + nSave = SAVING_THROW_FORT; //BEHOLDER_RAY_DEATH + break; + + case 777: + nSave = SAVING_THROW_WILL; //BEHOLDER_RAY_TK + break; + + case 778 : //BEHOLDER_RAY_PETRI + nSave = SAVING_THROW_FORT; + break; + + case 779: // BEHOLDER_RAY_CHARM + nSave = SAVING_THROW_WILL; + break; + + case 780: //BEHOLDER_RAY_SLOW + nSave = SAVING_THROW_WILL; + break; + + case 783: + nSave = SAVING_THROW_FORT; //BEHOLDER_RAY_WOUND + break; + + case 784: // BEHOLDER_RAY_FEAR + nSave = SAVING_THROW_WILL; + break; + + case 785: + case 786: + case 787: + } + + SignalEvent(oTarget,EventSpellCastAt(OBJECT_SELF,GetSpellId(),TRUE)); + fDelay = 0.0f; //old -- GetSpellEffectDelay(GetLocation(oTarget),OBJECT_SELF); + if (nSave == SAVING_THROW_WILL) + { + bSave = MySavingThrow(SAVING_THROW_WILL,oTarget, nSaveDC,SAVING_THROW_TYPE_ALL,OBJECT_SELF,fDelay) >0; + } + else if (nSave == SAVING_THROW_FORT) + { + bSave = MySavingThrow(SAVING_THROW_FORT,oTarget, nSaveDC,SAVING_THROW_TYPE_ALL,OBJECT_SELF,fDelay) >0; + } + + if (!bSave) + { + + switch (nSpell) + { + case 776: e1 = EffectDeath(TRUE); + eVis = EffectVisualEffect(VFX_IMP_DEATH); + eLink = EffectLinkEffects(e1,eVis); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eLink,oTarget); + break; + + case 777: e1 = ExtraordinaryEffect(EffectKnockdown()); + eVis = EffectVisualEffect(VFX_IMP_STUN); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,6.0f); + break; + + // Petrify for one round per SaveDC + case 778: eVis = EffectVisualEffect(VFX_IMP_POLYMORPH); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + DoBeholderPetrify(nSaveDC,OBJECT_SELF,oTarget,GetSpellId()); + break; + + + case 779: e1 = EffectCharmed(); + eVis = EffectVisualEffect(VFX_IMP_CHARM); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,24.0f); + break; + + + case 780: e1 = EffectSlow(); + eVis = EffectVisualEffect(VFX_IMP_SLOW); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,RoundsToSeconds(6)); + break; + + case 783: e1 = EffectDamage(d8(2)+10); + eVis = EffectVisualEffect(VFX_COM_BLOOD_REG_RED); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_INSTANT,e1,oTarget); + break; + + + case 784: + e1 = EffectFrightened(); + eVis = EffectVisualEffect(VFX_IMP_FEAR_S); + eDur = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_FEAR); + e1 = EffectLinkEffects(eDur,e1); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eVis,oTarget); + ApplyEffectToObject(DURATION_TYPE_TEMPORARY,e1,oTarget,RoundsToSeconds(1+d4())); + break; + + + } + + } + else + { + switch (nSpell) + { + case 776: e1 = EffectDamage(d6(3)+13); + eVis = EffectVisualEffect(VFX_IMP_NEGATIVE_ENERGY); + eLink = EffectLinkEffects(e1,eVis); + ApplyEffectToObject(DURATION_TYPE_INSTANT,eLink,oTarget); + } + } +} + + + +void DoBeholderPetrify(int nDuration,object oSource, object oTarget, int nSpellID) +{ + + if(!GetIsReactionTypeFriendly(oTarget) && !GetIsDead(oTarget)) + { + // * exit if creature is immune to petrification + if (spellsIsImmuneToPetrification(oTarget) == TRUE || GetHasFeat(4643)) //:: PRC's Immunity to Petrification + { + return; + } + float fDifficulty = 0.0; + int bIsPC = GetIsPC(oTarget); + int bShowPopup = FALSE; + + // * calculate Duration based on difficulty settings + int nGameDiff = GetGameDifficulty(); + switch (nGameDiff) + { + case GAME_DIFFICULTY_VERY_EASY: + case GAME_DIFFICULTY_EASY: + case GAME_DIFFICULTY_NORMAL: + fDifficulty = RoundsToSeconds(nDuration); // One Round per hit-die or caster level + break; + case GAME_DIFFICULTY_CORE_RULES: + case GAME_DIFFICULTY_DIFFICULT: + if (!GetPlotFlag(oTarget)) + { + bShowPopup = TRUE; + } + break; + } + + effect ePetrify = EffectPetrify(); + effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); + effect eLink = EffectLinkEffects(eDur, ePetrify); + + + /// * The duration is permanent against NPCs but only temporary against PCs + if (bIsPC == TRUE) + { + if (bShowPopup == TRUE) + { + // * under hardcore rules or higher, this is an instant death + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); + DelayCommand(2.75, PopUpDeathGUIPanel(oTarget, FALSE , TRUE, 40579)); + // if in hardcore, treat the player as an NPC + bIsPC = FALSE; + } + else + ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, fDifficulty); + } + else + { + ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); + // * Feb 11 2003 BK I don't think this is necessary anymore + //if the target was an NPC - make him uncommandable until Stone to Flesh is cast + //SetCommandable(FALSE, oTarget); + + // Feb 5 2004 - Jon + // Added kick-henchman-out-of-party code from generic petrify script + if (GetAssociateType(oTarget) == ASSOCIATE_TYPE_HENCHMAN) + { + FireHenchman(GetMaster(oTarget),oTarget); + } + } + // April 2003: Clearing actions to kick them out of conversation when petrified + AssignCommand(oTarget, ClearAllActions()); + } +}