Initial commit

Adding all of the current content for Anphillia Unlimited.
This commit is contained in:
Jaysyn904
2024-01-04 07:49:38 -05:00
parent df18cd54c8
commit 28cdb617b3
12943 changed files with 9727121 additions and 0 deletions

BIN
_removed/bagofgold.uti Normal file

Binary file not shown.

BIN
_removed/it_creitem003.uti Normal file

Binary file not shown.

Binary file not shown.

View File

@@ -0,0 +1,74 @@
//::///////////////////////////////////////////////
//:: Aura of Vitality
//:: NW_S0_AuraVital
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies within the AOE gain +4 Str, Con, Dex
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 29, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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;
effect eStr = EffectAbilityIncrease(ABILITY_STRENGTH,4);
effect eDex = EffectAbilityIncrease(ABILITY_DEXTERITY,4);
effect eCon = EffectAbilityIncrease(ABILITY_CONSTITUTION,4);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eLink = EffectLinkEffects(eStr, eDex);
eLink = EffectLinkEffects(eLink, eCon);
eLink = EffectLinkEffects(eLink, eDur);
effect eVis = EffectVisualEffect(VFX_IMP_IMPROVE_ABILITY_SCORE);
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
int nDuration = GetCasterLevel(OBJECT_SELF);
float fDelay;
int nMetaMagic = GetMetaMagicFeat();
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration *= 2; //Duration is +100%
}
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
while(GetIsObjectValid(oTarget))
{
if(!GetIsEnemy(oTarget))
{
fDelay = GetRandomDelay(0.4, 1.1);
//Signal the spell cast at event
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_AURA_OF_VITALITY, FALSE));
//Apply effects and VFX to target
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
}
}

BIN
_removed/nw_s0_bless.ncs Normal file

Binary file not shown.

107
_removed/nw_s0_bless.nss Normal file
View File

@@ -0,0 +1,107 @@
//::///////////////////////////////////////////////
//:: Bless
//:: NW_S0_Bless.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies within 30ft of the caster gain a
+1 attack bonus and a +1 save bonus vs fear
effects
also can be cast on crossbow bolts to bless them
in order to slay rakshasa
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: July 24, 2001
//:://////////////////////////////////////////////
//:: VFX Pass By: Preston W, On: June 20, 2001
//:: Added Bless item ability: Georg Z, On: June 20, 2001
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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 = GetSpellTargetObject();
int nDuration = 1 + GetCasterLevel(OBJECT_SELF);
effect eVis = EffectVisualEffect(VFX_IMP_HEAD_HOLY);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
// ---------------- TARGETED ON BOLT -------------------
if(GetIsObjectValid(oTarget) && GetObjectType(oTarget) == OBJECT_TYPE_ITEM)
{
// special handling for blessing crossbow bolts that can slay rakshasa's
if (GetBaseItemType(oTarget) == BASE_ITEM_BOLT)
{
SignalEvent(GetItemPossessor(oTarget), EventSpellCastAt(OBJECT_SELF, GetSpellId(), FALSE));
IPSafeAddItemProperty(oTarget, ItemPropertyOnHitCastSpell(123,1), RoundsToSeconds(nDuration), X2_IP_ADDPROP_POLICY_KEEP_EXISTING );
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, GetItemPossessor(oTarget));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eDur, GetItemPossessor(oTarget), TurnsToSeconds(nDuration));
return;
}
}
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
effect eAttack = EffectAttackIncrease(1);
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 1, SAVING_THROW_TYPE_FEAR);
effect eLink = EffectLinkEffects(eAttack, eSave);
eLink = EffectLinkEffects(eLink, eDur);
int nMetaMagic = GetMetaMagicFeat();
float fDelay;
//Metamagic duration check
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply Impact
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
//Get the first target in the radius around the caster
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
while(GetIsObjectValid(oTarget))
{
if(GetIsReactionTypeFriendly(oTarget) ||
GetFactionEqual(oTarget) ||
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
fDelay = GetRandomDelay(0.4, 1.1);
//Fire spell cast at event for target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_BLESS, FALSE));
//Apply VFX impact and bonus effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration)));
}
//Get the next target in the specified area around the caster
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
}
}

Binary file not shown.

View File

@@ -0,0 +1,40 @@
//::///////////////////////////////////////////////
//:: Magic Cirle Against Evil
//:: NW_S0_CircEvilA
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Add basic protection from evil effects to
entering allies.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 20, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
object oSource = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
if(GetIsFriend(oTarget, oSource) ||
(GetIsNeutral(oTarget, oSource) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
//Declare major variables
int nDuration = GetCasterLevel(OBJECT_SELF);
//effect eVis = EffectVisualEffect(VFX_IMP_GOOD_HELP);
effect eLink = CreateProtectionFromAlignmentLink(ALIGNMENT_EVIL);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MAGIC_CIRCLE_AGAINST_EVIL, FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
}
}

Binary file not shown.

View File

@@ -0,0 +1,41 @@
//::///////////////////////////////////////////////
//:: Magic Cirle Against Good
//:: NW_S0_CircGoodA
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Add basic protection from good effects to
entering allies.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 20, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
object oSource = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
if(GetIsFriend(oTarget, oSource) ||
(GetIsNeutral(oTarget, oSource) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
//Declare major variables
int nDuration = GetCasterLevel(OBJECT_SELF);
//effect eVis = EffectVisualEffect(VFX_IMP_EVIL_HELP);
effect eLink = CreateProtectionFromAlignmentLink(ALIGNMENT_GOOD);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MAGIC_CIRCLE_AGAINST_GOOD, FALSE));
//Apply the VFX impact and effects
//ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
}
}

BIN
_removed/nw_s0_curminw.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,45 @@
//::///////////////////////////////////////////////
//:: Cure Minor Wounds
//:: NW_S0_CurMinW
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
// As cure light wounds, except cure minor wounds
// cures only 1 point of damage
*/
/*
Anphillia Changes
This spell now really only cures 3 points of damage
*/
//:://////////////////////////////////////////////
//:: Created By: Noel Borstad
//:: Created On: Oct 18, 2000
//:://////////////////////////////////////////////
//:: Last Updated By: Preston Watamaniuk, On: Feb 22, 2001
//:: Last Updated By: Preston Watamaniuk, On: April 6, 2001
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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
spellsCure(3, 0, 3, VFX_IMP_SUNSTRIKE, VFX_IMP_HEAD_HEAL, GetSpellId());
}

BIN
_removed/nw_s0_findtrap.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,65 @@
//::///////////////////////////////////////////////
//:: Find Traps
//:: NW_S0_FindTrap
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Finds and removes all traps within 30m.
*/
/*
Anphillia Changes
Modifications for HCR Traps.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 29, 2001
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
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
effect eVis = EffectVisualEffect(VFX_IMP_KNOCK);
int nCnt = 1;
if(GetLocalInt(GetModule(),"HCRTRAPS"))
{
SetLocalInt(OBJECT_SELF,"FINDTRAP",1);
object oPC=OBJECT_SELF;
float fDur=6.0+HoursToSeconds(GetCasterLevel(OBJECT_SELF))/60.0;
SendMessageToPC(oPC, "((You must still use the trap tool to spot traps.))");
DelayCommand(fDur, DeleteLocalInt(OBJECT_SELF,"FINDTRAP"));
DelayCommand(fDur, SendMessageToPC(oPC, "Your detect traps spell has worn off."));
return;
}
object oTrap = GetNearestObject(OBJECT_TYPE_TRIGGER | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt);
while(GetIsObjectValid(oTrap) && GetDistanceToObject(oTrap) <= 30.0)
{
if(GetIsTrapped(oTrap))
{
SetTrapDetectedBy(oTrap, OBJECT_SELF);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTrap));
//DelayCommand(2.0, SetTrapDisabled(oTrap));
}
nCnt++;
oTrap = GetNearestObject(OBJECT_TYPE_TRIGGER | OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE, OBJECT_SELF, nCnt);
}
}

BIN
_removed/nw_s0_fireshld.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,78 @@
//::///////////////////////////////////////////////
//:: Elemental Shield
//:: NW_S0_FireShld.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Caster gains 50% cold and fire immunity. Also anyone
who strikes the caster with melee attacks takes
1d6 + 1 per caster level in damage.
*/
/*
Anphillia Changes
In 3.5e, the spell is meant to let the caster choose Fire OR Cold immunity.
In NWN, the caster is granted both immunities. Because of that, each
immunity is set to 25%.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
//:: Created On: Aug 28, 2003, GZ: Fixed stacking issue
#include "x2_inc_spellhook"
#include "x0_i0_spells"
void main()
{
/*
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
effect eVis = EffectVisualEffect(VFX_DUR_ELEMENTAL_SHIELD);
int nDuration = GetCasterLevel(OBJECT_SELF);
int nMetaMagic = GetMetaMagicFeat();
object oTarget = OBJECT_SELF;
effect eShield = EffectDamageShield(nDuration, DAMAGE_BONUS_1d6, DAMAGE_TYPE_FIRE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eCold = EffectDamageImmunityIncrease(DAMAGE_TYPE_COLD, 25);
effect eFire = EffectDamageImmunityIncrease(DAMAGE_TYPE_FIRE, 25);
//Link effects
effect eLink = EffectLinkEffects(eShield, eCold);
eLink = EffectLinkEffects(eLink, eFire);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eVis);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_ELEMENTAL_SHIELD, FALSE));
// *GZ: No longer stack this spell
if (GetHasSpellEffect(GetSpellId(),oTarget))
{
RemoveSpellEffects(GetSpellId(), OBJECT_SELF, oTarget);
}
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
}

Binary file not shown.

View File

@@ -0,0 +1,79 @@
//::///////////////////////////////////////////////
//:: Greater Stoneskin
//:: NW_S0_GrStoneSk
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Gives the gives the creature touched 20/+5
damage reduction. This lasts for 1 hour per
caster level or until 10 * Caster Level (150 Max)
is dealt to the person.
*/
/*
Anphillia Changes
Now protects 20/+4
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: March 16 , 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Andrew Nobbs March 4, 2003
#include "nw_i0_spells"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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
int nAmount = GetCasterLevel(OBJECT_SELF);
int nDuration = nAmount;
object oTarget = GetSpellTargetObject();
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_GREATER_STONESKIN, FALSE));
if (nAmount > 15)
{
nAmount = 15;
}
int nDamage = nAmount * 10;
if (GetMetaMagicFeat() == METAMAGIC_EXTEND)
{
nDuration *= 2;
}
effect eVis2 = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect eStone = EffectDamageReduction(20, DAMAGE_POWER_PLUS_FOUR, nDamage);
effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
//Link the texture replacement and the damage reduction effect
effect eLink = EffectLinkEffects(eVis, eStone);
eLink = EffectLinkEffects(eLink, eDur);
//Remove effects from target if they have Greater Stoneskin cast on them already.
RemoveEffectsFromSpell(oTarget, SPELL_GREATER_STONESKIN);
//Apply the linked effect
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration));
}

BIN
_removed/nw_s0_harm.ncs Normal file

Binary file not shown.

97
_removed/nw_s0_harm.nss Normal file
View File

@@ -0,0 +1,97 @@
//::///////////////////////////////////////////////
//:: [Harm]
//:: [NW_S0_Harm.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
//:: Reduces target to 1d4 HP on successful touch
//:: attack. If the target is undead it is healed.
/*
Anphillia Changes
This spell now does heals/damages for 10/Caster Level , up to a maximum of
150, but never as much Damage as to kill the target.
*/
//:://////////////////////////////////////////////
//:: Created By: Keith Soleski
//:: Created On: Jan 18, 2001
//:://////////////////////////////////////////////
//:: VFX Pass By: Preston W, On: June 20, 2001
//:: Update Pass By: Preston W, On: Aug 1, 2001
//:: Last Update: Georg Zoeller On: Oct 10, 2004
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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
int nCasterLvl = GetCasterLevel(OBJECT_SELF);
// Limit caster level to 15
if (nCasterLvl > 15)
nCasterLvl = 15;
object oTarget = GetSpellTargetObject();
int nDamage, nHeal;
int nMetaMagic = GetMetaMagicFeat();
int nTouch = TouchAttackMelee(oTarget);
effect eVis = EffectVisualEffect(246);
effect eVis2 = EffectVisualEffect(VFX_IMP_HEALING_G);
effect eHeal, eDam;
//Check that the target is undead
if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
{
//Figure out the amount of damage to heal
nHeal = 10 * nCasterLvl;
//Set the heal effect
eHeal = EffectHeal(nHeal);
//Apply heal effect and VFX impact
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HARM, FALSE));
}
else if (nTouch != FALSE) //GZ: Fixed boolean check to work in NWScript. 1 or 2 are valid return numbers from TouchAttackMelee
{
if(!GetIsReactionTypeFriendly(oTarget))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HARM));
if (!MyResistSpell(OBJECT_SELF, oTarget))
{
//Roll damage
nDamage = 10 * nCasterLvl;
// Will Save for half damage
if (MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()))
nDamage = nDamage/2;
// Prevent killing the enemy
int nCurrentHP = GetCurrentHitPoints(oTarget);
if (nDamage > nCurrentHP)
nDamage = nCurrentHP - 1;
eDam = EffectDamage(nDamage,DAMAGE_TYPE_NEGATIVE);
//Apply the VFX impact and effects
DelayCommand(1.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDam, oTarget));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
}
}
}

BIN
_removed/nw_s0_heal.ncs Normal file

Binary file not shown.

98
_removed/nw_s0_heal.nss Normal file
View File

@@ -0,0 +1,98 @@
//::///////////////////////////////////////////////
//:: Heal
//:: [NW_S0_Heal.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
//:: Heals the target to full unless they are undead.
//:: If undead they reduced to 1d4 HP.
/*
Anphillia Changes
This spell now does heals/damages for 10/Caster Level , up to a maximum of
150, but never as much Damage as to kill the target.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 12, 2001
//:://////////////////////////////////////////////
//:: Update Pass By: Preston W, On: Aug 1, 2001
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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
int nCasterLvl = GetCasterLevel(OBJECT_SELF);
// Limit caster level to 15
if (nCasterLvl > 15)
nCasterLvl = 15;
object oTarget = GetSpellTargetObject();
effect eKill, eHeal;
int nDamage, nHeal, nModify, nMetaMagic, nTouch;
effect eSun = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
effect eHealVis = EffectVisualEffect(VFX_IMP_HEALING_X);
//Check to see if the target is an undead
if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD)
{
if(!GetIsReactionTypeFriendly(oTarget))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HEAL));
//Make a touch attack
if (TouchAttackMelee(oTarget))
{
//Make SR check
if (!MyResistSpell(OBJECT_SELF, oTarget))
{
//Roll damage
nDamage = 10 * nCasterLvl;
// Will Save for half damage
if (MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()))
nDamage = nDamage/2;
// Prevent killing the enemy
int nCurrentHP = GetCurrentHitPoints(oTarget);
if (nDamage > nCurrentHP)
nDamage = nCurrentHP - 1;
//Set damage
eKill = EffectDamage(nDamage, DAMAGE_TYPE_POSITIVE);
//Apply damage effect and VFX impact
ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eSun, oTarget);
}
}
}
}
else
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HEAL, FALSE));
//Figure out how much to heal
nHeal = 10 * nCasterLvl;
//Set the heal effect
eHeal = EffectHeal(nHeal);
//Apply the heal effect and the VFX impact
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHealVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
}
}

BIN
_removed/nw_s0_healcirc.ncs Normal file

Binary file not shown.

135
_removed/nw_s0_healcirc.nss Normal file
View File

@@ -0,0 +1,135 @@
//::///////////////////////////////////////////////
//:: Healing Circle
//:: NW_S0_HealCirc
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
// Positive energy spreads out in all directions
// from the point of origin, curing 1d8 points of
// damage plus 1 point per caster level (maximum +20)
// to nearby living allies.
//
// Like cure spells, healing circle damages undead in
// its area rather than curing them.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Noel Borstad
//:: Created On: Oct 18,2000
//:://////////////////////////////////////////////
//:: VFX Pass By: Preston W, On: June 20, 2001
//:: Update Pass By: Preston W, On: Aug 1, 2001
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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;
int nCasterLvl = GetCasterLevel(OBJECT_SELF);
int nDamagen, nModify, nHP;
int nMetaMagic = GetMetaMagicFeat();
effect eKill;
effect eHeal;
effect eVis = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
effect eVis2 = EffectVisualEffect(VFX_IMP_HEALING_M);
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_20);
float fDelay;
//Limit caster level
if (nCasterLvl > 20)
{
nCasterLvl = 20;
}
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
//Get first target in shape
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetSpellTargetLocation());
while (GetIsObjectValid(oTarget))
{
fDelay = GetRandomDelay();
//Check if racial type is undead
if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD )
{
if(!GetIsReactionTypeFriendly(oTarget))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HEALING_CIRCLE));
//Make SR check
if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay))
{
nModify = d8() + nCasterLvl;
//Make metamagic check
if (nMetaMagic == METAMAGIC_MAXIMIZE)
{
nModify = 8 + nCasterLvl;
}
if (nMetaMagic == METAMAGIC_EMPOWER)
{
nModify = nModify + (nModify/2); //Damage/Healing is +50%
}
//Make Fort save
if (MySavingThrow(SAVING_THROW_FORT, oTarget, GetSpellSaveDC(), SAVING_THROW_TYPE_NONE, OBJECT_SELF, fDelay))
{
nModify /= 2;
}
//Set damage effect
eKill = EffectDamage(nModify, DAMAGE_TYPE_POSITIVE);
//Apply damage effect and VFX impact
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
}
}
}
else
{
// * May 2003: Heal Neutrals as well
if(!GetIsReactionTypeHostile(oTarget) ||
GetFactionEqual(oTarget) ||
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_HEALING_CIRCLE, FALSE));
nHP = d8() + nCasterLvl;
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_MAXIMIZE)
{
nHP = 8 + nCasterLvl;//Damage is at max
}
if (nMetaMagic == METAMAGIC_EMPOWER)
{
nHP = nHP + (nHP/2); //Damage/Healing is +50%
}
//Set healing effect
eHeal = EffectHeal(nHP);
//Apply heal effect and VFX impact
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
}
}
//Get next target in the shape
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetSpellTargetLocation());
}
}

Binary file not shown.

View File

@@ -0,0 +1,66 @@
///::///////////////////////////////////////////////
//:: Improved Invisibility
//:: NW_S0_ImprInvis.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Target creature can attack and cast spells while
invisible
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
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 = GetSpellTargetObject();
effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_MIND);
effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
effect eVis = EffectVisualEffect(VFX_DUR_INVISIBILITY);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eCover = EffectConcealment(20);
effect eLink = EffectLinkEffects(eDur, eCover);
eLink = EffectLinkEffects(eLink, eVis);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_IMPROVED_INVISIBILITY, FALSE));
int nDuration = GetCasterLevel(OBJECT_SELF);
int nMetaMagic = GetMetaMagicFeat();
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eInvis, oTarget, TurnsToSeconds(nDuration));
}

BIN
_removed/nw_s0_invspha.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,42 @@
//::///////////////////////////////////////////////
//:: Invisibility Sphere: On Enter
//:: NW_S0_InvSphA.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies within 15ft are rendered invisible.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
void main()
{
//Declare major variables
object oSource = GetAreaOfEffectCreator();
object oTarget = GetEnteringObject();
effect eInvis = EffectInvisibility(INVISIBILITY_TYPE_NORMAL);
effect eVis = EffectVisualEffect(VFX_DUR_INVISIBILITY);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eLink = EffectLinkEffects(eInvis, eVis);
eLink = EffectLinkEffects(eLink, eDur);
if(GetIsFriend(oTarget, oSource) ||
(GetIsNeutral(oTarget, oSource) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
// * don't try and make dead people invisible
if (GetIsDead(oTarget) == FALSE)
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_INVISIBILITY_SPHERE, FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
}
}

BIN
_removed/nw_s0_knock.ncs Normal file

Binary file not shown.

90
_removed/nw_s0_knock.nss Normal file
View File

@@ -0,0 +1,90 @@
//::///////////////////////////////////////////////
//:: Knock
//:: NW_S0_Knock
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Opens doors not locked by magical means.
*/
/*
Anphillia Changes
This spell now unlocks DCs of d20 + Caster Level + Int Modifier. If the
lock DC is higher, the spell will weaken the DC by
Caser Level + Int Modifier for 30 seconds.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 29, 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Georg 2003/07/31 - Added signal event and custom door flags
//:: VFX Pass By: Preston W, On: June 22, 2001
#include "nw_i0_spells"
#include "x2_inc_spellhook"
void main()
{
/*
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
location loc = GetLocation(OBJECT_SELF);
int nCasterLevel = GetCasterLevel(OBJECT_SELF);
int nRoll = (GetIsInCombat(OBJECT_SELF) ? d20() : 20);
int nModifier = nCasterLevel + GetAbilityModifier(ABILITY_INTELLIGENCE);
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, 50.0, loc, FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
while(GetIsObjectValid(oTarget))
{
SignalEvent(oTarget,EventSpellCastAt(OBJECT_SELF,GetSpellId()));
float fDelay = GetRandomDelay(0.5, 2.5);
if(GetLocked(oTarget) && GetStringUpperCase(GetStringLeft(GetTag(oTarget), 3)) != "CNR")
{
int nResist = GetDoorFlag(oTarget,DOOR_FLAG_RESIST_KNOCK);
// Knock shouldn't open doors that require special keys
if (GetLockKeyRequired(oTarget))
{
FloatingTextStringOnCreature(GetName(oTarget) + " requires a special key.", OBJECT_SELF);
}
else if (nResist == 0)
{
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_KNOCK), oTarget));
int nDC = GetLockUnlockDC(oTarget);
if (nDC <= (nRoll + nModifier))
{
AssignCommand(oTarget, ActionUnlockObject(oTarget));
FloatingTextStringOnCreature(GetName(oTarget) + " has been unlocked.", OBJECT_SELF);
}
else
{
SetLockUnlockDC(oTarget, nDC - nModifier);
DelayCommand(30.0, SetLockUnlockDC(oTarget, nDC));
FloatingTextStringOnCreature(GetName(oTarget) + " has been weakened.", OBJECT_SELF);
}
}
else if (nResist == 1)
{
FloatingTextStrRefOnCreature(83887,OBJECT_SELF); //
}
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, 50.0, loc, FALSE, OBJECT_TYPE_DOOR | OBJECT_TYPE_PLACEABLE);
}
}

BIN
_removed/nw_s0_mashaste.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,81 @@
//::///////////////////////////////////////////////
//:: Mass Haste
//:: NW_S0_MasHaste.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies in a 30 ft radius from the point of
impact become Hasted for 1 round per caster
level. The maximum number of allies hasted is
1 per caster level.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: May 29, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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;
effect eHaste = EffectHaste();
effect eVis = EffectVisualEffect(VFX_IMP_HASTE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eLink = EffectLinkEffects(eHaste, eDur);
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30);
int nMetaMagic = GetMetaMagicFeat();
float fDelay;
//Determine spell duration as an integer for later conversion to Rounds, Turns or Hours.
int nDuration = GetCasterLevel(OBJECT_SELF);
int nCount;
location lSpell = GetSpellTargetLocation();
//Meta Magic check for extend
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
//Declare the spell shape, size and the location. Capture the first target object in the shape.
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lSpell);
//Cycle through the targets within the spell shape until an invalid object is captured or the number of
//targets affected is equal to the caster level.
while(GetIsObjectValid(oTarget) && nCount != nDuration)
{
//Make faction check on the target
if(!GetIsEnemy(oTarget))
{
fDelay = GetRandomDelay(0.0, 1.0);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MASS_HASTE, FALSE));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
nCount++;
}
//Select the next target within the spell shape.
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, lSpell);
}
}

BIN
_removed/nw_s0_masheal.ncs Normal file

Binary file not shown.

120
_removed/nw_s0_masheal.nss Normal file
View File

@@ -0,0 +1,120 @@
//::///////////////////////////////////////////////
//:: Mass Heal
//:: [NW_S0_MasHeal.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
//:: Heals all friendly targets within 10ft to full
//:: unless they are undead.
//:: If undead they reduced to 1d4 HP.
/*
Anphillia Changes
This spell now does heals/damages for 10/Caster Level , up to a maximum of
200, but never as much Damage as to kill the target.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: April 11, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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
int nCasterLvl = GetCasterLevel(OBJECT_SELF);
// Limit caster level to 15
if (nCasterLvl > 20)
nCasterLvl = 20;
effect eKill;
effect eVis = EffectVisualEffect(VFX_IMP_SUNSTRIKE);
effect eHeal;
effect eVis2 = EffectVisualEffect(VFX_IMP_HEALING_G);
effect eStrike = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
int nTouch, nModify, nDamage, nHeal;
int nMetaMagic = GetMetaMagicFeat();
float fDelay;
location lLoc = GetSpellTargetLocation();
//Apply VFX area impact
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eStrike, lLoc);
//Get first target in spell area
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lLoc);
while(GetIsObjectValid(oTarget))
{
fDelay = GetRandomDelay();
//Check to see if the target is an undead
if (GetRacialType(oTarget) == RACIAL_TYPE_UNDEAD && !GetIsReactionTypeFriendly(oTarget))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MASS_HEAL));
//Make a touch attack
nTouch = TouchAttackRanged(oTarget);
if (nTouch > 0)
{
if(!GetIsReactionTypeFriendly(oTarget))
{
//Make an SR check
if (!MyResistSpell(OBJECT_SELF, oTarget, fDelay))
{
//Roll damage
nDamage = 10 * nCasterLvl;
// Will Save for half damage
if (MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()))
nDamage = nDamage/2;
// Prevent killing the enemy
int nCurrentHP = GetCurrentHitPoints(oTarget);
if (nDamage > nCurrentHP)
nDamage = nCurrentHP - 1;
//Set the damage effect
eKill = EffectDamage(nDamage, DAMAGE_TYPE_POSITIVE);
//Apply the VFX impact and damage effect
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
}
}
}
}
else
{
//Make a faction check
if(GetRacialType(oTarget) != RACIAL_TYPE_UNDEAD &&
(GetIsFriend(oTarget) ||
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget))))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_MASS_HEAL, FALSE));
//Determine amount to heal
nHeal = 10 * nCasterLvl;
//Set the damage effect
eHeal = EffectHeal(nHeal);
//Apply the VFX impact and heal effect
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
}
}
//Get next target in the spell area
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lLoc);
}
}

BIN
_removed/nw_s0_mindblk.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,51 @@
//::///////////////////////////////////////////////
//:: Mind Blank
//:: NW_S0_MindBlk.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies are granted immunity to mental effects
in the AOE.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_NORMAL_20);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, GetSpellTargetLocation());
while(GetIsObjectValid(oTarget))
{
//if(spellsIsTarget(oTarget, SPELL_TARGET_ALLALLIES, OBJECT_SELF))
if (!GetIsEnemy(oTarget))
{
spellApplyMindBlank(oTarget, GetSpellId(), GetRandomDelay());
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_HUGE, GetSpellTargetLocation());
}
}

Binary file not shown.

View File

@@ -0,0 +1,132 @@
//::///////////////////////////////////////////////
//:: Natures Balance
//:: NW_S0_NatureBal.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Reduces the SR of all enemies by 1d4 per 5 caster
levels for 1 round per 3 caster levels. Also heals
all friends for 3d8 + Caster Level
Radius is 15 feet from the caster.
*/
/*
Anphillia Changes
This spell now party-friendly.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: June 22, 2001
//:://////////////////////////////////////////////
//:: VFX Pass By: Preston W, On: June 22, 2001
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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
effect eHeal;
effect eVis = EffectVisualEffect(VFX_IMP_HEALING_L);
effect eSR;
effect eVis2 = EffectVisualEffect(VFX_IMP_BREACH);
effect eNature = EffectVisualEffect(VFX_FNF_NATURES_BALANCE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
int nRand, nNumDice;
int nCasterLevel = GetCasterLevel(OBJECT_SELF);
//Determine spell duration as an integer for later conversion to Rounds, Turns or Hours.
int nDuration = nCasterLevel/3;
int nMetaMagic = GetMetaMagicFeat();
float fDelay;
//Set off fire and forget visual
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eNature, GetLocation(OBJECT_SELF));
//Declare the spell shape, size and the location. Capture the first target object in the shape.
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
nNumDice = nCasterLevel / 5;
if(nNumDice == 0)
{
nNumDice = 1;
}
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE);
//Cycle through the targets within the spell shape until an invalid object is captured.
while(GetIsObjectValid(oTarget))
{
fDelay = GetRandomDelay();
//Check to see how the caster feels about the targeted object
if(GetIsFriend(oTarget) || // Party Member
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)) // Friendly non-party Member
)
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_NATURES_BALANCE, FALSE));
nRand = d8(3) + nCasterLevel;
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_MAXIMIZE)
{
nRand = 24 + nCasterLevel;//Damage is at max
}
else if (nMetaMagic == METAMAGIC_EMPOWER)
{
nRand = nRand + nRand/2; //Damage/Healing is +50%
}
eHeal = EffectHeal(nRand);
//Apply heal effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
}
else
if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
{
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_NATURES_BALANCE));
if(!GetIsReactionTypeFriendly(oTarget))
{
//Check for saving throw
if (!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()))
{
nRand = d4(nNumDice);
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_MAXIMIZE)
{
nRand = 4 * nNumDice;//Damage is at max
}
else if (nMetaMagic == METAMAGIC_EMPOWER)
{
nRand = nRand + (nRand/2); //Damage/Healing is +50%
}
eSR = EffectSpellResistanceDecrease(nRand);
effect eLink = EffectLinkEffects(eSR, eDur);
//Apply reduce SR effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget));
}
}
}
//Select the next target within the spell shape.
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_LARGE, GetLocation(OBJECT_SELF), FALSE);
}
}

BIN
_removed/nw_s0_polyself.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,86 @@
//::///////////////////////////////////////////////
//:: Polymorph Self
//:: NW_S0_PolySelf.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The PC is able to changed their form to one of
several forms.
*/
/*
Anphillia Changes
Replaced Umber Hulk with Succubus
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 21, 2002
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
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
int nSpell = GetSpellId();
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetCasterLevel(OBJECT_SELF);
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Determine Polymorph subradial type
if(nSpell == 387)
{
nPoly = POLYMORPH_TYPE_GIANT_SPIDER;
}
else if (nSpell == 388)
{
nPoly = POLYMORPH_TYPE_TROLL;
}
else if (nSpell == 389)
{
nPoly = POLYMORPH_TYPE_SUCCUBUS;
//nPoly = POLYMORPH_TYPE_UMBER_HULK;
}
else if (nSpell == 390)
{
nPoly = POLYMORPH_TYPE_PIXIE;
}
else if (nSpell == 391)
{
nPoly = POLYMORPH_TYPE_ZOMBIE;
}
ePoly = EffectPolymorph(nPoly);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_POLYMORPH_SELF, FALSE));
//Apply the VFX impact and effects
AssignCommand(oTarget, ClearAllActions()); // prevents an exploit
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration));
}

BIN
_removed/nw_s0_prayer.ncs Normal file

Binary file not shown.

115
_removed/nw_s0_prayer.nss Normal file
View File

@@ -0,0 +1,115 @@
//::///////////////////////////////////////////////
//:: Prayer
//:: NW_S0_Prayer.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Allies gain +1 Attack, damage, saves, skill checks
Enemies gain -1 to these stats
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
//:: VFX Pass By: Preston W, On: June 22, 2001
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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;
effect ePosVis = EffectVisualEffect(VFX_IMP_HOLY_AID);
effect eNegVis = EffectVisualEffect(VFX_IMP_DOOM);
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_30);
int nBonus = 1;
effect eBonAttack = EffectAttackIncrease(nBonus);
effect eBonSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, nBonus);
effect eBonDam = EffectDamageIncrease(nBonus, DAMAGE_TYPE_SLASHING);
effect eBonSkill = EffectSkillIncrease(SKILL_ALL_SKILLS, nBonus);
effect ePosDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect ePosLink = EffectLinkEffects(eBonAttack, eBonSave);
ePosLink = EffectLinkEffects(ePosLink, eBonDam);
ePosLink = EffectLinkEffects(ePosLink, eBonSkill);
ePosLink = EffectLinkEffects(ePosLink, ePosDur);
effect eNegAttack = EffectAttackDecrease(nBonus);
effect eNegSave = EffectSavingThrowDecrease(SAVING_THROW_ALL, nBonus);
effect eNegDam = EffectDamageDecrease(nBonus, DAMAGE_TYPE_SLASHING);
effect eNegSkill = EffectSkillDecrease(SKILL_ALL_SKILLS, nBonus);
effect eNegDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eNegLink = EffectLinkEffects(eNegAttack, eNegSave);
eNegLink = EffectLinkEffects(eNegLink, eNegDam);
eNegLink = EffectLinkEffects(eNegLink, eNegSkill);
eNegLink = EffectLinkEffects(eNegLink, eNegDur);
int nDuration = GetCasterLevel(OBJECT_SELF);
int nMetaMagic = GetMetaMagicFeat();
//Metamagic duration check
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply Impact
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
//Get the first target in the radius around the caster
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
while(GetIsObjectValid(oTarget))
{
if(GetIsFriend(oTarget) ||
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
//Fire spell cast at event for target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_PRAYER, FALSE));
//Apply VFX impact and bonus effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, ePosVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePosLink, oTarget,RoundsToSeconds(nDuration));
}
else if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, OBJECT_SELF))
{
//Fire spell cast at event for target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_PRAYER));
if(!MyResistSpell(OBJECT_SELF, oTarget))
{
//Apply VFX impact and bonus effects
ApplyEffectToObject(DURATION_TYPE_INSTANT, eNegVis, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eNegLink, oTarget, RoundsToSeconds(nDuration));
}
}
//Get the next target in the specified area around the caster
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
}
}

BIN
_removed/nw_s0_prspells.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,82 @@
//::///////////////////////////////////////////////
//:: Protection from Spells
//:: NW_S0_PrChaos.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Grants the caster and up to 1 target per 4
levels a +8 saving throw bonus versus spells
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: June 27, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetCasterLevel(OBJECT_SELF);
int nTargets = nDuration / 4;
if(nTargets == 0)
{
nTargets = 1;
}
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration * 2; //Duration is +100%
}
object oTarget;
effect eVis = EffectVisualEffect(VFX_IMP_MAGIC_PROTECTION);
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_ALL, 8, SAVING_THROW_TYPE_SPELL);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eDur2 = EffectVisualEffect(VFX_DUR_MAGIC_RESISTANCE);
effect eLink = EffectLinkEffects(eSave, eDur);
eLink = EffectLinkEffects(eLink, eDur2);
float fDelay;
//Get first target in spell area
location lLoc = GetLocation(OBJECT_SELF);
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lLoc, FALSE);
while(GetIsObjectValid(oTarget) && nTargets != 0)
{
if(!GetIsEnemy(oTarget) && OBJECT_SELF != oTarget)
{
fDelay = GetRandomDelay();
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_PROTECTION_FROM_SPELLS, FALSE));
//Apply the VFX impact and effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration)));
nTargets--;
}
//Get next target in spell area
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, lLoc, FALSE);
}
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, OBJECT_SELF, TurnsToSeconds(nDuration)));
}

BIN
_removed/nw_s0_raisdead.ncs Normal file

Binary file not shown.

117
_removed/nw_s0_raisdead.nss Normal file
View File

@@ -0,0 +1,117 @@
//::///////////////////////////////////////////////
//:: [Raise Dead]
//:: [NW_S0_RaisDead.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
//:: Brings a character back to life with 1 HP.
/*
Anphillia Changes
This spell also works on the body placeables now. Also uses
HCR Material Components if those are set. Also respects Subrace System
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 31, 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001
//:: VFX Pass By: Preston W, On: June 22, 2001
#include "x2_inc_spellhook"
#include "hc_inc_pwdb_func"
#include "hc_text_activate"
#include "hc_inc_rezpen"
#include "anph_inc"
#include "nwnx_object"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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 oCastAt = GetSpellTargetObject();
object oTarget = GetSpellTargetObject();
effect eRaise = EffectResurrection();
effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD);
int nAtDC;
object oDC;
object oMod = GetModule();
// HCR Material Component Check
if(GetLocalInt(oMod,"MATERCOMP") && GetIsPC(OBJECT_SELF) && GetIsDM(OBJECT_SELF)==FALSE)
{
object oComp;
if( (oComp=GetItemPossessedBy(OBJECT_SELF, "ressdiamond"))==OBJECT_INVALID)
{
SendMessageToPC(OBJECT_SELF,"You do not have the required materials to "+
"cast this spell. For this spell you need a small diamond.");
AssignCommand(OBJECT_SELF, ClearAllActions());
return;
}
else
DestroyObject(oComp);
}
if(GetTag(oTarget)=="DeathCorpse")
{
oDC=oTarget;
oTarget = AnphFindPlayerByKey (GetLocalString (oDC, "Name"),
GetLocalString (oDC, "Key"));
nAtDC=1;
}
if(nAtDC || GetIsDead(oTarget))
{
// If cast at corpse, but the player is offline
if(nAtDC && !GetIsObjectValid(oTarget))
{
SendMessageToPC(OBJECT_SELF,NOTONLINE);
SetPersistentLocation(oMod,"RESLOC"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), GetLocation(OBJECT_SELF));
if(GetIsDM(OBJECT_SELF))
SetPersistentInt(oMod,"PlayerState"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), 8);
else
SetPersistentInt(oMod,"PlayerState"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), 9);
return;
}
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RAISE_DEAD, FALSE));
//Apply raise dead effect and VFX impact
SetPlotFlag(oTarget, FALSE);
RemoveEffects(oTarget);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oCastAt));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget);
// Set player health to 1
effect eDam=EffectDamage(GetCurrentHitPoints(oTarget)-1);
int nBonusCON = abs(GetAbilityScore(oTarget, ABILITY_CONSTITUTION, FALSE) - GetAbilityScore(oTarget, ABILITY_CONSTITUTION, TRUE));
int nHP = 1 + (nBonusCON * GetHitDice(oTarget));
NWNX_Object_SetCurrentHitPoints(oTarget, nHP);
//Jump the player out of Fugue to his body
AssignCommand(oTarget,JumpToObject(oDC));
}
}

BIN
_removed/nw_s0_resserec.ncs Normal file

Binary file not shown.

133
_removed/nw_s0_resserec.nss Normal file
View File

@@ -0,0 +1,133 @@
//::///////////////////////////////////////////////
//:: [Ressurection]
//:: [NW_S0_Ressurec.nss]
//:: Copyright (c) 2000 Bioware Corp.
//:://////////////////////////////////////////////
//:: Brings a character back to life with full
//:: health.
//:: When cast on placeables, you get a default error message.
//:: * You can specify a different message in
//:: X2_L_RESURRECT_SPELL_MSG_RESREF
//:: * You can turn off the message by setting the variable
//:: to -1
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 31, 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Georg Z on 2003-07-31
//:: VFX Pass By: Preston W, On: June 22, 2001
#include "x2_inc_spellhook"
#include "hc_inc_pwdb_func"
#include "hc_text_activate"
#include "hc_inc_rezpen"
#include "anph_inc"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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
//Get the spell target
object oCastAt = GetSpellTargetObject();
object oTarget = GetSpellTargetObject();
object oCaster = OBJECT_SELF;
int nAtDC;
object oDC;
object oMod = GetModule();
// HCR Material Components
if(GetLocalInt(oMod,"MATERCOMP") && GetIsPC(oCaster) && GetIsDM(oCaster)==FALSE)
{
object oComp;
if( (oComp=GetItemPossessedBy(oCaster, "ressdiamond"))==OBJECT_INVALID)
{
SendMessageToPC(oCaster,"You do not have the required materials to "+
"cast this spell. For this spell you need a small diamond.");
AssignCommand(oCaster, ClearAllActions());
return;
}
else
DestroyObject(oComp);
}
if(GetTag(oTarget)=="DeathCorpse")
{
oDC=oTarget;
oTarget = AnphFindPlayerByKey (GetLocalString (oDC, "Name"),
GetLocalString (oDC, "Key"));
nAtDC=1;
}
//Check to make sure the target is dead first
if(nAtDC || GetIsDead(oTarget))
{
// Target isn't online
if(nAtDC && GetIsObjectValid(oTarget)==FALSE)
{
SendMessageToPC(oCaster,NOTONLINE);
SetPersistentLocation(oMod,"RESLOC"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), GetLocation(oCaster));
if(GetIsDM(oCaster))
SetPersistentInt(oMod,"PlayerState"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), 8);
else
SetPersistentInt(oMod,"PlayerState"+
GetLocalString(oDC,"Name")+
GetLocalString(oDC,"Key"), 7);
return;
}
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_RESURRECTION, FALSE));
//Declare major variables
int nHealed = GetMaxHitPoints(oTarget);
effect eRaise = EffectResurrection();
effect eHeal = EffectHeal(nHealed + 11);
effect eVis = EffectVisualEffect(VFX_IMP_RAISE_DEAD);
//Apply the heal, raise dead and VFX impact effect
SetPlotFlag(oTarget, FALSE);
RemoveEffects(oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eRaise, oTarget);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eHeal, oTarget);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oCastAt));
// Jump the player out of fugue to his corpse
AssignCommand(oTarget,JumpToObject(oDC));
}
else
{
if (GetObjectType(oTarget) == OBJECT_TYPE_PLACEABLE)
{
int nStrRef = GetLocalInt(oTarget,"X2_L_RESURRECT_SPELL_MSG_RESREF");
if (nStrRef == 0)
{
nStrRef = 83861;
}
if (nStrRef != -1)
{
FloatingTextStrRefOnCreature(nStrRef,OBJECT_SELF);
}
}
}
}

BIN
_removed/nw_s0_rmvfear.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,95 @@
//::///////////////////////////////////////////////
//:: Remove Fear
//:: NW_S0_RmvFear.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
All allies within a 10ft radius have their fear
effects removed and are granted a +4 Save versus
future fear effects.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: April 13, 2001
//:://////////////////////////////////////////////
#include "NW_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
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;
effect eFear;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = 100;
effect eSave = EffectSavingThrowIncrease(SAVING_THROW_WILL, 4, SAVING_THROW_TYPE_FEAR);
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_POSITIVE);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eImpact = EffectVisualEffect(VFX_FNF_LOS_HOLY_10);
effect eLink = EffectLinkEffects(eMind, eSave);
eLink = EffectLinkEffects(eLink, eDur);
float fDelay;
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eImpact, GetSpellTargetLocation());
effect eVis = EffectVisualEffect(VFX_IMP_REMOVE_CONDITION);
if(nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration*2;
}
//Get first target in the spell area
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetSpellTargetLocation());
while (GetIsObjectValid(oTarget))
{
//Only remove the fear effect from the people who are friends.
if(GetIsFriend(oTarget) ||
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)))
{
fDelay = GetRandomDelay();
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_REMOVE_FEAR, FALSE));
eFear = GetFirstEffect(oTarget);
//Get the first effect on the current target
while(GetIsEffectValid(eFear))
{
if (GetEffectType(eFear) == EFFECT_TYPE_FRIGHTENED)
{
//Remove any fear effects and apply the VFX impact
RemoveEffect(oTarget, eFear);
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}
//Get the next effect on the target
eFear = GetNextEffect(oTarget);
}
//Apply the linked effects
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
}
//Get the next target in the spell area.
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_MEDIUM, GetSpellTargetLocation());
}
}

BIN
_removed/nw_s0_shapechg.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,83 @@
//::///////////////////////////////////////////////
//:: Shapechange
//:: NW_S0_ShapeChg.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Anphillia Changes
Replaced Red Dragon with Huge Earth Elemental
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 22, 2002
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
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
int nSpell = GetSpellId();
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_MONSTER_3);
effect ePoly;
int nPoly;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetCasterLevel(OBJECT_SELF);
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Determine Polymorph subradial type
if(nSpell == 392)
{
nPoly = POLYMORPH_TYPE_HUGE_EARTH_ELEMENTAL;
//nPoly = POLYMORPH_TYPE_RED_DRAGON;
}
else if (nSpell == 393)
{
nPoly = POLYMORPH_TYPE_FIRE_GIANT;
}
else if (nSpell == 394)
{
nPoly = POLYMORPH_TYPE_BALOR;
}
else if (nSpell == 395)
{
nPoly = POLYMORPH_TYPE_DEATH_SLAAD;
}
else if (nSpell == 396)
{
nPoly = POLYMORPH_TYPE_IRON_GOLEM;
}
ePoly = EffectPolymorph(nPoly);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_SHAPECHANGE, FALSE));
//Apply the VFX impact and effects
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetLocation(oTarget));
DelayCommand(0.4, AssignCommand(oTarget, ClearAllActions())); // prevents an exploit
DelayCommand(0.5, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, oTarget, TurnsToSeconds(nDuration)));
}

BIN
_removed/nw_s0_silencea.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,53 @@
//::///////////////////////////////////////////////
//:: Silence: On Enter
//:: NW_S0_SilenceA.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The target is surrounded by a zone of silence
that allows them to move without sound. Spell
casters caught in this area will be unable to cast
spells.
*/
/*
Anphillia Changes
Silence now affects EVERYONE (including allies), but allows a Will Save
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 7, 2002
//:://////////////////////////////////////////////
#include "X0_I0_SPELLS"
void main()
{
//Declare major variables including Area of Effect Object
effect eDur1 = EffectVisualEffect(VFX_IMP_SILENCE);
effect eDur2 = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eSilence = EffectSilence();
effect eImmune = EffectDamageImmunityIncrease(DAMAGE_TYPE_SONIC, 100);
effect eLink = EffectLinkEffects(eDur2, eSilence);
eLink = EffectLinkEffects(eLink, eImmune);
object oTarget = GetEnteringObject();
object oCaster = GetAreaOfEffectCreator();
// if (spellsIsTarget(oTarget, SPELL_TARGET_STANDARDHOSTILE, oCaster))
// {
int bHostile;
if(!MyResistSpell(oCaster,oTarget))
{
// Will Save negates the effect
if (!MySavingThrow(SAVING_THROW_WILL, oTarget, GetSpellSaveDC()))
{
bHostile = GetIsEnemy(oTarget);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(oCaster, SPELL_SILENCE, bHostile));
ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget);
}
}
// }
}

BIN
_removed/nw_s0_stoneskn.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,76 @@
//::///////////////////////////////////////////////
//:: Stoneskin
//:: NW_S0_Stoneskin
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Gives the creature touched 10/+5
damage reduction. This lasts for 1 hour per
caster level or until 10 * Caster Level (100 Max)
is dealt to the person.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: March 16 , 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001
// ANPH: 10/+3 instead of 10/+5
#include "nw_i0_spells"
#include "x2_inc_spellhook"
void main()
{
/*
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
effect eStone;
effect eVis = EffectVisualEffect(VFX_DUR_PROT_STONESKIN);
effect eVis2 = EffectVisualEffect(VFX_IMP_SUPER_HEROISM);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eLink;
object oTarget = GetSpellTargetObject();
int nAmount = GetCasterLevel(OBJECT_SELF) * 10;
int nDuration = GetCasterLevel(OBJECT_SELF);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_STONESKIN, FALSE));
//Limit the amount protection to 100 points of damage
if (nAmount > 100)
{
nAmount = 100;
}
//Meta Magic
if(GetMetaMagicFeat() == METAMAGIC_EXTEND)
{
nDuration *= 2;
}
//Define the damage reduction effect
eStone = EffectDamageReduction(10, DAMAGE_POWER_PLUS_THREE, nAmount);
//Link the effects
eLink = EffectLinkEffects(eStone, eVis);
eLink = EffectLinkEffects(eLink, eDur);
RemoveEffectsFromSpell(oTarget, SPELL_STONESKIN);
//Apply the linked effects.
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis2, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, HoursToSeconds(nDuration));
}

BIN
_removed/nw_s0_summon.ncs Normal file

Binary file not shown.

293
_removed/nw_s0_summon.nss Normal file
View File

@@ -0,0 +1,293 @@
//::///////////////////////////////////////////////
//:: Summon Creature Series
//:: NW_S0_Summon
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Carries out the summoning of the appropriate
creature for the Summon Monster Series of spells
1 to 9
*/
/*
Anphillia Changes
This spell uses hc_inc_summon to summon a wieder variety of creatures
and has it's duration set to a flat 3 hours.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 8, 2002
//:://////////////////////////////////////////////
effect SetSummonEffect(int nSpellID);
#include "x2_inc_spellhook"
#include "hc_inc_summon"
void main()
{
/*
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
int nSpellID = GetSpellId();
int nDuration = 3;
effect eSummon = SetSummonEffect(nSpellID);
//Make metamagic check for extend
int nMetaMagic = GetMetaMagicFeat();
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply the VFX impact and summon effect
ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, GetSpellTargetLocation(), HoursToSeconds(nDuration));
}
effect SetSummonEffect(int nSpellID)
{
int nFNF_Effect;
int nRoll = d3();
string sSummon;
if(GetHasFeat(FEAT_ANIMAL_DOMAIN_POWER)) //WITH THE ANIMAL DOMAIN
{
if(nSpellID == SPELL_SUMMON_CREATURE_I)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(2);
if(sSummon=="") sSummon = "NW_S_BOARDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_II)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(3);
if(sSummon=="") sSummon = "NW_S_WOLFDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_III)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(4);
if(sSummon=="") sSummon = "NW_S_SPIDDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_IV)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2;
sSummon=pick_creature(5);
if(sSummon=="") sSummon = "NW_S_beardire";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_V)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2;
sSummon=pick_creature(6);
if(sSummon=="") sSummon = "NW_S_diretiger";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VI)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(7);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRHUGE";
break;
case 2:
sSummon = "NW_S_WATERHUGE";
break;
case 3:
sSummon = "NW_S_FIREHUGE";
break;
}
}
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VII)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(8);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRGREAT";
break;
case 2:
sSummon = "NW_S_WATERGREAT";
break;
case 3:
sSummon = "NW_S_FIREGREAT";
break;
}
}
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VIII)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(9);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRELDER";
break;
case 2:
sSummon = "NW_S_WATERELDER";
break;
case 3:
sSummon = "NW_S_FIREELDER";
break;
}
}
}
else if(nSpellID == SPELL_SUMMON_CREATURE_IX)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(9);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRELDER";
break;
case 2:
sSummon = "NW_S_WATERELDER";
break;
case 3:
sSummon = "NW_S_FIREELDER";
break;
}
}
}
}
else //WITHOUT THE ANIMAL DOMAIN
{
if(nSpellID == SPELL_SUMMON_CREATURE_I)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(1);
if(sSummon=="") sSummon = "NW_S_badgerdire";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_II)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(2);
if(sSummon=="") sSummon = "NW_S_BOARDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_III)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_1;
sSummon=pick_creature(3);
if(sSummon=="") sSummon = "NW_S_WOLFDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_IV)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2;
sSummon=pick_creature(4);
if(sSummon=="") sSummon = "NW_S_SPIDDIRE";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_V)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2;
sSummon=pick_creature(5);
if(sSummon=="") sSummon = "NW_S_beardire";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VI)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_2;
sSummon=pick_creature(6);
if(sSummon=="") sSummon = "NW_S_diretiger";
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VII)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(7);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRHUGE";
break;
case 2:
sSummon = "NW_S_WATERHUGE";
break;
case 3:
sSummon = "NW_S_FIREHUGE";
break;
}
}
}
else if(nSpellID == SPELL_SUMMON_CREATURE_VIII)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(8);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRGREAT";
break;
case 2:
sSummon = "NW_S_WATERGREAT";
break;
case 3:
sSummon = "NW_S_FIREGREAT";
break;
}
}
}
else if(nSpellID == SPELL_SUMMON_CREATURE_IX)
{
nFNF_Effect = VFX_FNF_SUMMON_MONSTER_3;
sSummon=pick_creature(9);
if(sSummon=="")
{
switch (nRoll)
{
case 1:
sSummon = "NW_S_AIRELDER";
break;
case 2:
sSummon = "NW_S_WATERELDER";
break;
case 3:
sSummon = "NW_S_FIREELDER";
break;
}
}
}
}
//effect eVis = EffectVisualEffect(nFNF_Effect);
//ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, GetSpellTargetLocation());
// Remove Invisibility on caster
effect invis = GetFirstEffect(OBJECT_SELF);
while (GetIsEffectValid(invis) && GetEffectType(invis) != EFFECT_TYPE_INVISIBILITY)
{
invis = GetNextEffect(OBJECT_SELF);
}
effect eSummonedMonster = EffectSummonCreature(sSummon, nFNF_Effect);
return eSummonedMonster;
}

BIN
_removed/nw_s0_truesee.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,76 @@
//::///////////////////////////////////////////////
//:: True Seeing
//:: NW_S0_TrueSee.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
The creature can seen all invisible, sanctuared,
or hidden opponents.
*/
/*
Anphillia Changes
True Seeing does not reveal hidden creatures but is composed of the
following effects:
. See Invisibility
. Spell School Immunity (Illusion)
. Spell Immunity (Sanctuary)
. Spell Immunity (Phantasmal Killer)
. UltraVision
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: [date]
//:://////////////////////////////////////////////
#include "x2_inc_spellhook"
void main()
{
/*
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 = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_DUR_MAGICAL_SIGHT);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
effect eSight1 = EffectSeeInvisible();
effect eSight2 = EffectSpellImmunity(SPELL_SCHOOL_ILLUSION);
effect eSight3 = EffectSpellImmunity(SPELL_SANCTUARY);
effect eSight4 = EffectUltravision();
effect eSight5 = EffectSpellImmunity(SPELL_PHANTASMAL_KILLER);
effect eLink = EffectLinkEffects(eSight1, eSight2);
eLink = EffectLinkEffects(eLink, eSight3);
eLink = EffectLinkEffects(eLink, eSight4);
eLink = EffectLinkEffects(eLink, eVis);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eSight5);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_TRUE_SEEING, FALSE));
int nDuration = GetCasterLevel(OBJECT_SELF);
int nMetaMagic = GetMetaMagicFeat();
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
{
nDuration = nDuration *2; //Duration is +100%
}
//Apply the VFX impact and effects
if (GetIsDM(GetLastSpellCaster()))
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, EffectTrueSeeing(), oTarget, TurnsToSeconds(nDuration));
else
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration));
}

Binary file not shown.

View File

@@ -0,0 +1,157 @@
//::///////////////////////////////////////////////
//:: Word of Faith
//:: [NW_S0_WordFaith.nss]
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
A 30ft blast of divine energy rushs out from the
Cleric blasting all enemies with varying effects
depending on their HD.
*/
/*
Anphillia Changes
Duration limited to 6 Rounds max (was Caster Level / 2).
Instant Death removed, effects split on different scale, see inline comments
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Feb 5, 2001
//:://////////////////////////////////////////////
//:: Last Updated By: Preston Watamaniuk, On: April 11, 2001
//:: Sep 2002: fixed the 'level 8' instantkill problem
//:: description is slightly inaccurate but I won't change it
//:: Georg: It's nerf time! oh yes. The spell now matches it's description.
#include "X0_I0_SPELLS"
#include "x2_inc_spellhook"
void main()
{
/*
Spellcast Hook Code
Added 2003-06-20 by Georg
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;
int nCasterLevel = GetCasterLevel(OBJECT_SELF);
effect eBlind = EffectBlindness();
effect eStun = EffectStunned();
effect eConfuse = EffectConfused();
effect eDeath = EffectDeath();
effect eVis = EffectVisualEffect(VFX_IMP_DEATH);
effect eSmite = EffectVisualEffect(VFX_FNF_WORD);
effect eSonic = EffectVisualEffect(VFX_IMP_SONIC);
effect eUnsummon = EffectVisualEffect(VFX_IMP_UNSUMMON);
effect eMind = EffectVisualEffect(VFX_DUR_MIND_AFFECTING_DISABLED);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_NEGATIVE);
effect eKill;
effect eLink;
int nHD;
float fDelay;
int nDuration = nCasterLevel / 2;
if (nDuration > 6)
nDuration = 6;
//Apply the FNF VFX impact to the target location
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eSmite, GetSpellTargetLocation());
//Get the first target in the spell area
oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetSpellTargetLocation());
while (GetIsObjectValid(oTarget))
{
//Make a faction check
if (spellsIsTarget(oTarget, SPELL_TARGET_SELECTIVEHOSTILE, OBJECT_SELF))
{
fDelay = GetRandomDelay(0.5, 2.0);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELL_WORD_OF_FAITH));
//Make SR check
if(!MyResistSpell(OBJECT_SELF, oTarget, fDelay))
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eSonic, oTarget);
//----------------------------------------------------------
//Check if the target is an outsider
//GZ: And do nothing anymore. This was not supposed to happen
//----------------------------------------------------------
/*if (GetRacialType(oTarget) == RACIAL_TYPE_OUTSIDER || GetRacialType(oTarget) == RACIAL_TYPE_ELEMENTAL)
{
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eUnsummon, oTarget));
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget));
}*/
///----------------------------------------------------------
// And this is the part where the divine power smashes the
// unholy summoned creature and makes it return to its homeplane
//----------------------------------------------------------
if (GetIsObjectValid(GetMaster(oTarget)))
{
if (GetAssociateType(oTarget) == ASSOCIATE_TYPE_SUMMONED)
{
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eUnsummon, oTarget));
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_DEATH))
{
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget));
}
else
{
eKill = EffectDamage(GetCurrentHitPoints(oTarget)+10);
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eKill, oTarget));
}
}
}
else
{
//Check the HD of the creature
nHD = GetHitDice(oTarget);
//Apply the appropriate effects based on HD
if (nHD > 12) // Original: if (nHD >= 12)
{
eLink = EffectLinkEffects(eBlind, eDur);
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eBlind, oTarget, RoundsToSeconds(nDuration)));
}
else if (nHD >= 7 && nHD <= 12) // Original: else if (nHD >= 8 && nHD < 12)
{
eLink = EffectLinkEffects(eStun, eMind);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eBlind);
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
}
else if (nHD <= 6) // Original: else if (nHD > 4 && nHD < 8)
{
eLink = EffectLinkEffects(eStun, eMind);
eLink = EffectLinkEffects(eLink, eDur);
eLink = EffectLinkEffects(eLink, eConfuse);
eLink = EffectLinkEffects(eLink, eBlind);
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration)));
}
/* eyesolated: this won't ever be called due to the changes above
else
{
if(!GetIsImmune(oTarget, IMMUNITY_TYPE_DEATH))
{
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget));
}
DelayCommand(fDelay, ApplyEffectToObject(DURATION_TYPE_INSTANT, eDeath, oTarget));
}
*/
}
}
}
//Get the next target in the spell area
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetSpellTargetLocation());
}
}

Binary file not shown.

View File

@@ -0,0 +1,24 @@
//::///////////////////////////////////////////////
//:: Summon Animal Companion
//:: NW_S2_AnimalComp
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This spell summons a Druid's animal companion
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Sept 27, 2001
//:://////////////////////////////////////////////
void main()
{
//Yep thats it
SummonAnimalCompanion();
object oFamiliar = GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION);
int nFamiliarLevel = GetHitDice(oFamiliar);
float fScale = 0.6 + nFamiliarLevel*0.05;
SetObjectVisualTransform(oFamiliar, OBJECT_VISUAL_TRANSFORM_SCALE, fScale);
}

BIN
_removed/nw_s2_bardsong.ncs Normal file

Binary file not shown.

430
_removed/nw_s2_bardsong.nss Normal file
View File

@@ -0,0 +1,430 @@
//::///////////////////////////////////////////////
//:: Bard Song
//:: NW_S2_BardSong
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This spells applies bonuses to all of the
bard's allies within 30ft for a set duration of
10 rounds.
*/
/*
Anphillia Changes
This spell now works outside of parties.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Feb 25, 2002
//:://////////////////////////////////////////////
//:: Last Updated By: Georg Zoeller Oct 1, 2003
/*
bugfix by Kovi 2002.07.30
- loosing temporary hp resulted in loosing the other bonuses
*/
#include "x0_i0_spells"
void main()
{
if (GetHasEffect(EFFECT_TYPE_SILENCE,OBJECT_SELF))
{
FloatingTextStrRefOnCreature(85764,OBJECT_SELF); // not useable when silenced
return;
}
string sTag = GetTag(OBJECT_SELF);
if (sTag == "x0_hen_dee" || sTag == "x2_hen_deekin")
{
// * Deekin has a chance of singing a doom song
// * same effect, better tune
if (Random(100) + 1 > 80)
{
// the Xp2 Deekin knows more than one doom song
if (d3() ==1 && sTag == "x2_hen_deekin")
{
DelayCommand(0.0, PlaySound("vs_nx2deekM_050"));
}
else
{
DelayCommand(0.0, PlaySound("vs_nx0deekM_074"));
DelayCommand(5.0, PlaySound("vs_nx0deekM_074"));
}
}
}
//Declare major variables
int nLevel = GetLevelByClass(CLASS_TYPE_BARD);
int nRanks = GetSkillRank(SKILL_PERFORM);
int nChr = GetAbilityModifier(ABILITY_CHARISMA);
int nPerform = nRanks;
int nDuration = 10; //+ nChr;
effect eAttack;
effect eDamage;
effect eWill;
effect eFort;
effect eReflex;
effect eHP;
effect eAC;
effect eSkill;
int nAttack;
int nDamage;
int nWill;
int nFort;
int nReflex;
int nHP;
int nAC;
int nSkill;
//Check to see if the caster has Lasting Impression and increase duration.
if(GetHasFeat(870))
{
nDuration *= 10;
}
// lingering song
if(GetHasFeat(424)) // lingering song
{
nDuration += 5;
}
//SpeakString("Level: " + IntToString(nLevel) + " Ranks: " + IntToString(nRanks));
if(nPerform >= 100 && nLevel >= 30)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 48;
nAC = 7;
nSkill = 19;
}
else if(nPerform >= 95 && nLevel >= 29)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 46;
nAC = 6;
nSkill = 18;
}
else if(nPerform >= 90 && nLevel >= 28)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 44;
nAC = 6;
nSkill = 17;
}
else if(nPerform >= 85 && nLevel >= 27)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 42;
nAC = 6;
nSkill = 16;
}
else if(nPerform >= 80 && nLevel >= 26)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 40;
nAC = 6;
nSkill = 15;
}
else if(nPerform >= 75 && nLevel >= 25)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 38;
nAC = 6;
nSkill = 14;
}
else if(nPerform >= 70 && nLevel >= 24)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 36;
nAC = 5;
nSkill = 13;
}
else if(nPerform >= 65 && nLevel >= 23)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 34;
nAC = 5;
nSkill = 12;
}
else if(nPerform >= 60 && nLevel >= 22)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 32;
nAC = 5;
nSkill = 11;
}
else if(nPerform >= 55 && nLevel >= 21)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 30;
nAC = 5;
nSkill = 9;
}
else if(nPerform >= 50 && nLevel >= 20)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 28;
nAC = 5;
nSkill = 8;
}
else if(nPerform >= 45 && nLevel >= 19)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 26;
nAC = 5;
nSkill = 7;
}
else if(nPerform >= 40 && nLevel >= 18)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 24;
nAC = 5;
nSkill = 6;
}
else if(nPerform >= 35 && nLevel >= 17)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 22;
nAC = 5;
nSkill = 5;
}
else if(nPerform >= 30 && nLevel >= 16)
{
nAttack = 2;
nDamage = 3;
nWill = 3;
nFort = 2;
nReflex = 2;
nHP = 20;
nAC = 5;
nSkill = 4;
}
else if(nPerform >= 24 && nLevel >= 15)
{
nAttack = 2;
nDamage = 3;
nWill = 2;
nFort = 2;
nReflex = 2;
nHP = 16;
nAC = 4;
nSkill = 3;
}
else if(nPerform >= 21 && nLevel >= 14)
{
nAttack = 2;
nDamage = 3;
nWill = 1;
nFort = 1;
nReflex = 1;
nHP = 16;
nAC = 3;
nSkill = 2;
}
else if(nPerform >= 18 && nLevel >= 11)
{
nAttack = 2;
nDamage = 2;
nWill = 1;
nFort = 1;
nReflex = 1;
nHP = 8;
nAC = 2;
nSkill = 2;
}
else if(nPerform >= 15 && nLevel >= 8)
{
nAttack = 2;
nDamage = 2;
nWill = 1;
nFort = 1;
nReflex = 1;
nHP = 8;
nAC = 0;
nSkill = 1;
}
else if(nPerform >= 12 && nLevel >= 6)
{
nAttack = 1;
nDamage = 2;
nWill = 1;
nFort = 1;
nReflex = 1;
nHP = 0;
nAC = 0;
nSkill = 1;
}
else if(nPerform >= 9 && nLevel >= 3)
{
nAttack = 1;
nDamage = 2;
nWill = 1;
nFort = 1;
nReflex = 0;
nHP = 0;
nAC = 0;
nSkill = 0;
}
else if(nPerform >= 6 && nLevel >= 2)
{
nAttack = 1;
nDamage = 1;
nWill = 1;
nFort = 0;
nReflex = 0;
nHP = 0;
nAC = 0;
nSkill = 0;
}
else if(nPerform >= 3 && nLevel >= 1)
{
nAttack = 1;
nDamage = 1;
nWill = 0;
nFort = 0;
nReflex = 0;
nHP = 0;
nAC = 0;
nSkill = 0;
}
effect eVis = EffectVisualEffect(VFX_DUR_BARD_SONG);
eAttack = EffectAttackIncrease(nAttack);
eDamage = EffectDamageIncrease(nDamage, DAMAGE_TYPE_BLUDGEONING);
effect eLink = EffectLinkEffects(eAttack, eDamage);
if(nWill > 0)
{
eWill = EffectSavingThrowIncrease(SAVING_THROW_WILL, nWill);
eLink = EffectLinkEffects(eLink, eWill);
}
if(nFort > 0)
{
eFort = EffectSavingThrowIncrease(SAVING_THROW_FORT, nFort);
eLink = EffectLinkEffects(eLink, eFort);
}
if(nReflex > 0)
{
eReflex = EffectSavingThrowIncrease(SAVING_THROW_REFLEX, nReflex);
eLink = EffectLinkEffects(eLink, eReflex);
}
if(nHP > 0)
{
//SpeakString("HP Bonus " + IntToString(nHP));
eHP = EffectTemporaryHitpoints(nHP);
// eLink = EffectLinkEffects(eLink, eHP);
}
if(nAC > 0)
{
eAC = EffectACIncrease(nAC, AC_DODGE_BONUS);
eLink = EffectLinkEffects(eLink, eAC);
}
if(nSkill > 0)
{
eSkill = EffectSkillIncrease(SKILL_ALL_SKILLS, nSkill);
eLink = EffectLinkEffects(eLink, eSkill);
}
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
eLink = EffectLinkEffects(eLink, eDur);
effect eImpact = EffectVisualEffect(VFX_IMP_HEAD_SONIC);
effect eFNF = EffectVisualEffect(VFX_FNF_LOS_NORMAL_30);
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eFNF, GetLocation(OBJECT_SELF));
object oTarget = GetFirstObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
eHP = ExtraordinaryEffect(eHP);
eLink = ExtraordinaryEffect(eLink);
while(GetIsObjectValid(oTarget))
{
if(!GetHasFeatEffect(FEAT_BARD_SONGS, oTarget) && !GetHasSpellEffect(GetSpellId(),oTarget))
{
// * GZ Oct 2003: If we are silenced, we can not benefit from bard song
if (!GetHasEffect(EFFECT_TYPE_SILENCE,oTarget) && !GetHasEffect(EFFECT_TYPE_DEAF,oTarget))
{
if(oTarget == OBJECT_SELF)
{
effect eLinkBard = EffectLinkEffects(eLink, eVis);
eLinkBard = ExtraordinaryEffect(eLinkBard);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLinkBard, oTarget, RoundsToSeconds(nDuration));
if (nHP > 0)
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, RoundsToSeconds(nDuration));
}
}
else if(GetIsFriend(oTarget) || // Party Member
(GetIsNeutral(oTarget) && (GetIsPC(oTarget) || GetIsPC(GetMaster(oTarget))) && !GetIsDM(oTarget)) // Friendly non-party Member
)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eImpact, oTarget);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, RoundsToSeconds(nDuration));
if (nHP > 0)
{
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eHP, oTarget, RoundsToSeconds(nDuration));
}
}
}
}
oTarget = GetNextObjectInShape(SHAPE_SPHERE, RADIUS_SIZE_COLOSSAL, GetLocation(OBJECT_SELF));
}
}

BIN
_removed/nw_s2_divtrick.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,53 @@
//::///////////////////////////////////////////////
//:: Divine Trickery
//:: NW_S2_DivTrick.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Grants the user a bonus to Search, Disable Traps,
Move Silently, Open Lock , Pick Pockets
Set Trap for 5 Turns + Chr Mod
*/
/*
Anphillia Changes
Changed Skill Bonus to 1 + 1/4 Levels instead of 1 + 1/2 Levels
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: November 9, 2001
//:://////////////////////////////////////////////
void main()
{
object oTarget = GetSpellTargetObject();
int nDuration = 5 + GetAbilityModifier(ABILITY_CHARISMA);
int nLevel = GetLevelByClass(CLASS_TYPE_CLERIC);
nLevel = 1 + nLevel/4; // Original: nLevel = 1 + nLevel/2;
//Declare major variables
effect eSearch = EffectSkillIncrease(SKILL_SEARCH, nLevel);
effect eDisable = EffectSkillIncrease(SKILL_DISABLE_TRAP, nLevel);
effect eMove = EffectSkillIncrease(SKILL_MOVE_SILENTLY, nLevel);
effect eOpen = EffectSkillIncrease(SKILL_OPEN_LOCK, nLevel);
effect ePick = EffectSkillIncrease(SKILL_PICK_POCKET, nLevel);
effect eHide = EffectSkillIncrease(SKILL_HIDE, nLevel);
effect ePers = EffectSkillIncrease(SKILL_PERSUADE, nLevel);
effect eDur = EffectVisualEffect(VFX_DUR_CESSATE_POSITIVE);
//Link Effects
effect eLink = EffectLinkEffects(eSearch, eDisable);
eLink = EffectLinkEffects(eLink, eMove);
eLink = EffectLinkEffects(eLink, eOpen);
eLink = EffectLinkEffects(eLink, ePick);
eLink = EffectLinkEffects(eLink, eHide);
eLink = EffectLinkEffects(eLink, ePers);
eLink = EffectLinkEffects(eLink, eDur);
effect eVis = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_DIVINE_TRICKERY, FALSE));
//Apply the VFX impact and effects
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eLink, oTarget, TurnsToSeconds(nDuration));
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oTarget);
}

BIN
_removed/nw_s2_familiar.ncs Normal file

Binary file not shown.

View File

@@ -0,0 +1,25 @@
//::///////////////////////////////////////////////
//:: Summon Familiar
//:: NW_S2_Familiar
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This spell summons an Arcane casters familiar
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Sept 27, 2001
//:://////////////////////////////////////////////
void main()
{
//Yep thats it
SummonFamiliar();
object oFamiliar = GetAssociate(ASSOCIATE_TYPE_FAMILIAR);
if (GetAppearanceType(oFamiliar) == APPEARANCE_TYPE_FAERIE_DRAGON)
SetCreatureAppearanceType(oFamiliar, 3371); // Cute purple dragon
int nFamiliarLevel = GetHitDice(oFamiliar);
float fScale = 0.6 + nFamiliarLevel*0.05;
SetObjectVisualTransform(oFamiliar, OBJECT_VISUAL_TRANSFORM_SCALE, fScale);
}

Binary file not shown.

View File

@@ -0,0 +1,187 @@
//::///////////////////////////////////////////////
//:: Wild Shape
//:: NW_S2_WildShape
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Allows the Druid to change into animal forms.
Updated: Sept 30 2003, Georg Z.
* Made Armor merge with druid to make forms
more useful.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Jan 22, 2002
//:://////////////////////////////////////////////
//:: Modified By: Deva Winblood
//:: Modified Date: January 15th-16th, 2008
//:://////////////////////////////////////////////
/*
Modified to insure no shapeshifting spells are castable upon
mounted targets. This prevents problems that can occur due
to dismounting after shape shifting, or other issues that can
occur due to preserved appearances getting out of synch.
This can additional check can be disabled by setting the variable
X3_NO_SHAPESHIFT_SPELL_CHECK to 1 on the module object. If this
variable is set then this script will function as it did prior to
this modification.
*/
#include "x2_inc_itemprop"
#include "x3_inc_horse"
#include "dlg_wand_const"
void main()
{
//Declare major variables
int nSpell = GetSpellId();
object oTarget = GetSpellTargetObject();
effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
effect ePoly;
int nPoly;
int nMetaMagic = GetMetaMagicFeat();
int nDuration = GetLevelByClass(CLASS_TYPE_DRUID);
if (!GetLocalInt(GetModule(),"X3_NO_SHAPESHIFT_SPELL_CHECK"))
{ // check to see if abort due to being mounted
if (HorseGetIsMounted(oTarget))
{ // abort
if (GetIsPC(oTarget)) FloatingTextStrRefOnCreature(111982,oTarget,FALSE);
return;
} // abort
} // check to see if abort due to being mounted
//Enter Metamagic conditions
if (nMetaMagic == METAMAGIC_EXTEND)
nDuration = nDuration *2; //Duration is +100%
object oShapeInfo = GetItemPossessedBy(OBJECT_SELF, "pc_actionwand");
//Determine Polymorph subradial type
if(nSpell == 401)
{
// Get the modified spell to cast, if there is one
nPoly = GetLocalInt(oShapeInfo, CS_DRUID_VAR_SHAPE + "_" + IntToString(CI_ACTION_DRUID_POLYMORPH_SET_BROWNBEAR)) - 1;
if (nPoly == -1)
{
nPoly = POLYMORPH_TYPE_BROWN_BEAR;
if (nDuration >= 12)
{
nPoly = POLYMORPH_TYPE_DIRE_BROWN_BEAR;
}
}
}
else if (nSpell == 402)
{
// Get the modified spell to cast, if there is one
nPoly = GetLocalInt(oShapeInfo, CS_DRUID_VAR_SHAPE + "_" + IntToString(CI_ACTION_DRUID_POLYMORPH_SET_PANTHER)) - 1;
if (nPoly == -1)
{
nPoly = POLYMORPH_TYPE_PANTHER;
if (nDuration >= 12)
{
nPoly = POLYMORPH_TYPE_DIRE_PANTHER;
}
}
}
else if (nSpell == 403)
{
// Get the modified spell to cast, if there is one
nPoly = GetLocalInt(oShapeInfo, CS_DRUID_VAR_SHAPE + "_" + IntToString(CI_ACTION_DRUID_POLYMORPH_SET_WOLF)) - 1;
if (nPoly == -1)
{
nPoly = POLYMORPH_TYPE_WOLF;
if (nDuration >= 12)
{
nPoly = POLYMORPH_TYPE_DIRE_WOLF;
}
}
}
else if (nSpell == 404)
{
// Get the modified spell to cast, if there is one
nPoly = GetLocalInt(oShapeInfo, CS_DRUID_VAR_SHAPE + "_" + IntToString(CI_ACTION_DRUID_POLYMORPH_SET_BOAR)) - 1;
if (nPoly == -1)
{
nPoly = POLYMORPH_TYPE_BOAR;
if (nDuration >= 12)
{
nPoly = POLYMORPH_TYPE_DIRE_BOAR;
}
}
}
else if (nSpell == 405)
{
// Get the modified spell to cast, if there is one
nPoly = GetLocalInt(oShapeInfo, CS_DRUID_VAR_SHAPE + "_" + IntToString(CI_ACTION_DRUID_POLYMORPH_SET_BADGER)) - 1;
if (nPoly == -1)
{
nPoly = POLYMORPH_TYPE_BADGER;
if (nDuration >= 12)
{
nPoly = POLYMORPH_TYPE_DIRE_BADGER;
}
}
}
ePoly = EffectPolymorph(nPoly);
ePoly = ExtraordinaryEffect(ePoly);
//Fire cast spell at event for the specified target
SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_WILD_SHAPE, FALSE));
int bWeapon = StringToInt(Get2DAString("polymorph","MergeW",nPoly)) == 1;
int bArmor = StringToInt(Get2DAString("polymorph","MergeA",nPoly)) == 1;
int bItems = StringToInt(Get2DAString("polymorph","MergeI",nPoly)) == 1;
object oWeaponOld = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
object oArmorOld = GetItemInSlot(INVENTORY_SLOT_CHEST,OBJECT_SELF);
object oRing1Old = GetItemInSlot(INVENTORY_SLOT_LEFTRING,OBJECT_SELF);
object oRing2Old = GetItemInSlot(INVENTORY_SLOT_RIGHTRING,OBJECT_SELF);
object oAmuletOld = GetItemInSlot(INVENTORY_SLOT_NECK,OBJECT_SELF);
object oCloakOld = GetItemInSlot(INVENTORY_SLOT_CLOAK,OBJECT_SELF);
object oBootsOld = GetItemInSlot(INVENTORY_SLOT_BOOTS,OBJECT_SELF);
object oBeltOld = GetItemInSlot(INVENTORY_SLOT_BELT,OBJECT_SELF);
object oHelmetOld = GetItemInSlot(INVENTORY_SLOT_HEAD,OBJECT_SELF);
object oShield = GetItemInSlot(INVENTORY_SLOT_LEFTHAND,OBJECT_SELF);
if (GetIsObjectValid(oShield))
{
if (GetBaseItemType(oShield) !=BASE_ITEM_LARGESHIELD &&
GetBaseItemType(oShield) !=BASE_ITEM_SMALLSHIELD &&
GetBaseItemType(oShield) !=BASE_ITEM_TOWERSHIELD)
{
oShield = OBJECT_INVALID;
}
}
//Apply the VFX impact and effects
ClearAllActions(); // prevents an exploit
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, OBJECT_SELF, HoursToSeconds(nDuration));
object oWeaponNew = GetItemInSlot(INVENTORY_SLOT_RIGHTHAND,OBJECT_SELF);
object oArmorNew = GetItemInSlot(INVENTORY_SLOT_CARMOUR,OBJECT_SELF);
if (bWeapon)
{
IPWildShapeCopyItemProperties(oWeaponOld,oWeaponNew, TRUE);
}
if (bArmor)
{
IPWildShapeCopyItemProperties(oShield,oArmorNew);
IPWildShapeCopyItemProperties(oHelmetOld,oArmorNew);
IPWildShapeCopyItemProperties(oArmorOld,oArmorNew);
}
if (bItems)
{
IPWildShapeCopyItemProperties(oRing1Old,oArmorNew);
IPWildShapeCopyItemProperties(oRing2Old,oArmorNew);
IPWildShapeCopyItemProperties(oAmuletOld,oArmorNew);
IPWildShapeCopyItemProperties(oCloakOld,oArmorNew);
IPWildShapeCopyItemProperties(oBootsOld,oArmorNew);
IPWildShapeCopyItemProperties(oBeltOld,oArmorNew);
}
}

Binary file not shown.

View File

@@ -0,0 +1,31 @@
//::///////////////////////////////////////////////
//:: Actuvate Item Script
//:: NW_S3_ActItem01
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This fires the event on the module that allows
for items to have special powers.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Dec 19, 2001
//:://////////////////////////////////////////////
void main()
{
object oItem = GetSpellCastItem();
object oTarget = GetSpellTargetObject();
location lLocal = GetSpellTargetLocation();
if (GetStringLeft(GetTag(oItem), 5) == "dmfi_" ||
GetStringLeft(GetTag(oItem), 8) == "hlslang_")
{
SetLocalObject(OBJECT_SELF, "dmfi_item", oItem);
SetLocalObject(OBJECT_SELF, "dmfi_target", oTarget);
SetLocalLocation(OBJECT_SELF, "dmfi_location", lLocal);
ExecuteScript("dmfi_activate", OBJECT_SELF);
return;
}
SignalEvent(GetModule(), EventActivateItem(oItem, lLocal, oTarget));
}

BIN
_removed/nw_s3_alcohol.ncs Normal file

Binary file not shown.

125
_removed/nw_s3_alcohol.nss Normal file
View File

@@ -0,0 +1,125 @@
//::///////////////////////////////////////////////
//:: NW_S3_Alcohol.nss
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Makes beverages fun.
May 2002: Removed fortitude saves. Just instant intelligence loss
*/
/*
Anphillia Changes
Added random lines of text when drinking and a few drunk effects / conditions.
Reenabled the fortitude saves.
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: February 2002
//:://////////////////////////////////////////////
void DrinkIt(object oTarget)
{
// AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_FIREFORGET_DRINK));
int nLine = Random(6);
switch (nLine)
{
case 0:
AssignCommand(oTarget,ActionSpeakStringByStrRef(10499));
break;
case 1:
AssignCommand(oTarget,ActionSpeakString("*hic*"));
break;
case 2:
AssignCommand(oTarget,ActionSpeakString("tough stuff.. *hic*"));
break;
case 3:
AssignCommand(oTarget,ActionSpeakString("whoa... *hic*"));
break;
case 4:
AssignCommand(oTarget,ActionSpeakString("*burp*"));
break;
case 5:
AssignCommand(oTarget,ActionSpeakString("uh... oh... *hic*"));
break;
}
}
void MakeDrunk(object oTarget, int nPoints)
{
if (Random(100) + 1 < 40)
AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_LOOPING_TALK_LAUGHING));
else
AssignCommand(oTarget, ActionPlayAnimation(ANIMATION_LOOPING_PAUSE_DRUNK));
int nConDamage = GetLocalInt(oTarget, "Drunk") + Random(nPoints + 1);
effect eAll;
effect eDumb = EffectAbilityDecrease(ABILITY_INTELLIGENCE, Random(nPoints + 1));
effect eCon = EffectAbilityDecrease(ABILITY_CONSTITUTION, nConDamage);
effect eDex = EffectAbilityDecrease(ABILITY_DEXTERITY, Random(nPoints + 1));
eAll = EffectLinkEffects(eDumb, eAll);
eAll = EffectLinkEffects(eCon, eAll);
eAll = EffectLinkEffects(eDex, eAll);
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eAll, oTarget, 360.0);
SetLocalInt(oTarget, "Drunk", nConDamage);
if (GetAbilityScore(oTarget, ABILITY_CONSTITUTION) <= 10)
{
int nCollapse = Random (100);
int nResistance = 10 + (nPoints * 10);
if (nCollapse <= nResistance)
{
// collapse
effect eCollapse;
effect eBlind = EffectBlindness();
effect eVisSleep = EffectVisualEffect(VFX_IMP_SLEEP);
eCollapse = EffectLinkEffects(eBlind, eCollapse);
eCollapse = EffectLinkEffects(eVisSleep, eCollapse);
AssignCommand(oTarget, ClearAllActions(TRUE));
AssignCommand(oTarget, ActionSpeakString("Oh, i don't feel so well..."));
ApplyEffectToObject(DURATION_TYPE_TEMPORARY, eCollapse, oTarget, 180.0);
AssignCommand(oTarget, ActionPlayAnimation( ANIMATION_LOOPING_DEAD_FRONT, 1.0, 180.0));
DelayCommand(2.5, SetCommandable(FALSE, oTarget));
DelayCommand(180.0, SetCommandable(TRUE, oTarget));
SetLocalInt(oTarget, "Drunk", 0);
}
}
// AssignCommand(oTarget, SpeakString(IntToString(GetAbilityScore(oTarget,ABILITY_INTELLIGENCE))));
}
void main()
{
object oTarget = GetSpellTargetObject();
// SpeakString("here");
// * Beer
if (GetSpellId() == 406)
{
// *burp*
//AssignCommand(oTarget, SpeakString("Beer"));
DrinkIt(oTarget);
if (FortitudeSave(oTarget, 10) == 0)
{
MakeDrunk(oTarget, 1);
}
}
else
// *Wine
if (GetSpellId() == 407)
{
DrinkIt(oTarget);
if (FortitudeSave(oTarget, 15) == 0)
{
MakeDrunk(oTarget, 2);
}
}
else
// * Spirits
if (GetSpellId() == 408)
{
DrinkIt(oTarget);
if (FortitudeSave(oTarget, 25) == 0)
{
MakeDrunk(oTarget, 3);
}
}
}

BIN
_removed/nw_s_airelder.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_airgreat.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_airhuge.utc Normal file

Binary file not shown.

Binary file not shown.

BIN
_removed/nw_s_balor.utc Normal file

Binary file not shown.

Binary file not shown.

BIN
_removed/nw_s_beardire.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_boardire.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_chound.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_clantern.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_ctrumpet.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_diretiger.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_dmquasit.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_doomkght.utc Normal file

Binary file not shown.

Binary file not shown.

Binary file not shown.

BIN
_removed/nw_s_earthhuge.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_fireelder.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_firegreat.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_firehuge.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_gargoyle.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_ghast.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_ghoul.utc Normal file

Binary file not shown.

BIN
_removed/nw_s_helmhorr.utc Normal file

Binary file not shown.

Some files were not shown because too many files have changed in this diff Show More