//:://///////////////////////////////////////////// //:: [Charm Person] //:: [NW_S0_CharmPer.nss] //:: Copyright (c) 2000 Bioware Corp. //::////////////////////////////////////////////// //:: Will save or the target is charmed. //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Jan 29, 2001 //::////////////////////////////////////////////// //:: Last Updated By: Preston Watamaniuk, On: April 5, 2001 //:: Last Updated By: Preston Watamaniuk, On: April 10, 2001 //:: VFX Pass By: Preston W, On: June 20, 2001 //:: modified by mr_bumpkin Dec 4, 2003 #include "prc_inc_spells" #include "prc_add_spell_dc" void main() { DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR"); SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_ENCHANTMENT); /* Spellcast Hook Code Added 2003-06-23 by GeorgZ If you want to make changes to all spells, check x2_inc_spellhook.nss to find out more */ if (!X2PreSpellCastCode()) { // If code within the PreSpellCastHook (i.e. UMD) reports FALSE, do not run this spell return; } // End of Spell Cast Hook //Declare major variables object oTarget = PRCGetSpellTargetObject(); effect eVis = EffectVisualEffect(VFX_IMP_CHARM); effect eCharm = EffectCharmed(); eCharm = PRCGetScaledEffect(eCharm, oTarget); effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_NEGATIVE); effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE); //Link persistant effects effect eLink = EffectLinkEffects(eMind, eCharm); eLink = EffectLinkEffects(eLink, eDur); eLink = SupernaturalEffect(eLink); int CasterLvl = PRCGetCasterLevel(OBJECT_SELF); int nPenetr = CasterLvl + SPGetPenetr(); int nRacial = MyPRCGetRacialType(oTarget); if(!GetIsReactionTypeFriendly(oTarget)) { //Fire cast spell at event for the specified target SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, PRCGetSpellId(), FALSE)); //Make SR Check if (!PRCDoResistSpell(OBJECT_SELF, oTarget,nPenetr)) { //Verify that the Racial Type is humanoid if ((nRacial == RACIAL_TYPE_DWARF) || (nRacial == RACIAL_TYPE_ELF) || (nRacial == RACIAL_TYPE_GNOME) || (nRacial == RACIAL_TYPE_HUMANOID_GOBLINOID) || (nRacial == RACIAL_TYPE_HALFLING) || (nRacial == RACIAL_TYPE_HUMAN) || (nRacial == RACIAL_TYPE_HALFELF) || (nRacial == RACIAL_TYPE_HALFORC) || (nRacial == RACIAL_TYPE_HUMANOID_MONSTROUS) || (nRacial == RACIAL_TYPE_HUMANOID_ORC) || (nRacial == RACIAL_TYPE_HUMANOID_REPTILIAN)) { //Make a Will Save check if (!PRCMySavingThrow(SAVING_THROW_WILL, oTarget, PRCGetSaveDC(oTarget, OBJECT_SELF), SAVING_THROW_TYPE_MIND_SPELLS)) { //Apply impact and linked effects SPApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget, 0.0f,TRUE,-1,CasterLvl); ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget); } } } } }