Initial commit
Adding all of the current content for Anphillia Unlimited.
This commit is contained in:
BIN
_removed/bagofgold.uti
Normal file
BIN
_removed/bagofgold.uti
Normal file
Binary file not shown.
BIN
_removed/it_creitem003.uti
Normal file
BIN
_removed/it_creitem003.uti
Normal file
Binary file not shown.
BIN
_removed/nw_s0_auravital.ncs
Normal file
BIN
_removed/nw_s0_auravital.ncs
Normal file
Binary file not shown.
74
_removed/nw_s0_auravital.nss
Normal file
74
_removed/nw_s0_auravital.nss
Normal 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
BIN
_removed/nw_s0_bless.ncs
Normal file
Binary file not shown.
107
_removed/nw_s0_bless.nss
Normal file
107
_removed/nw_s0_bless.nss
Normal 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));
|
||||
}
|
||||
}
|
||||
|
||||
BIN
_removed/nw_s0_circevila.ncs
Normal file
BIN
_removed/nw_s0_circevila.ncs
Normal file
Binary file not shown.
40
_removed/nw_s0_circevila.nss
Normal file
40
_removed/nw_s0_circevila.nss
Normal 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);
|
||||
}
|
||||
}
|
||||
BIN
_removed/nw_s0_circgooda.ncs
Normal file
BIN
_removed/nw_s0_circgooda.ncs
Normal file
Binary file not shown.
41
_removed/nw_s0_circgooda.nss
Normal file
41
_removed/nw_s0_circgooda.nss
Normal 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
BIN
_removed/nw_s0_curminw.ncs
Normal file
Binary file not shown.
45
_removed/nw_s0_curminw.nss
Normal file
45
_removed/nw_s0_curminw.nss
Normal 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
BIN
_removed/nw_s0_findtrap.ncs
Normal file
Binary file not shown.
65
_removed/nw_s0_findtrap.nss
Normal file
65
_removed/nw_s0_findtrap.nss
Normal 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
BIN
_removed/nw_s0_fireshld.ncs
Normal file
Binary file not shown.
78
_removed/nw_s0_fireshld.nss
Normal file
78
_removed/nw_s0_fireshld.nss
Normal 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));
|
||||
}
|
||||
|
||||
BIN
_removed/nw_s0_grstonesk.ncs
Normal file
BIN
_removed/nw_s0_grstonesk.ncs
Normal file
Binary file not shown.
79
_removed/nw_s0_grstonesk.nss
Normal file
79
_removed/nw_s0_grstonesk.nss
Normal 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
BIN
_removed/nw_s0_harm.ncs
Normal file
Binary file not shown.
97
_removed/nw_s0_harm.nss
Normal file
97
_removed/nw_s0_harm.nss
Normal 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
BIN
_removed/nw_s0_heal.ncs
Normal file
Binary file not shown.
98
_removed/nw_s0_heal.nss
Normal file
98
_removed/nw_s0_heal.nss
Normal 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
BIN
_removed/nw_s0_healcirc.ncs
Normal file
Binary file not shown.
135
_removed/nw_s0_healcirc.nss
Normal file
135
_removed/nw_s0_healcirc.nss
Normal 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());
|
||||
}
|
||||
}
|
||||
BIN
_removed/nw_s0_imprinvis.ncs
Normal file
BIN
_removed/nw_s0_imprinvis.ncs
Normal file
Binary file not shown.
66
_removed/nw_s0_imprinvis.nss
Normal file
66
_removed/nw_s0_imprinvis.nss
Normal 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
BIN
_removed/nw_s0_invspha.ncs
Normal file
Binary file not shown.
42
_removed/nw_s0_invspha.nss
Normal file
42
_removed/nw_s0_invspha.nss
Normal 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
BIN
_removed/nw_s0_knock.ncs
Normal file
Binary file not shown.
90
_removed/nw_s0_knock.nss
Normal file
90
_removed/nw_s0_knock.nss
Normal 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
BIN
_removed/nw_s0_mashaste.ncs
Normal file
Binary file not shown.
81
_removed/nw_s0_mashaste.nss
Normal file
81
_removed/nw_s0_mashaste.nss
Normal 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
BIN
_removed/nw_s0_masheal.ncs
Normal file
Binary file not shown.
120
_removed/nw_s0_masheal.nss
Normal file
120
_removed/nw_s0_masheal.nss
Normal 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
BIN
_removed/nw_s0_mindblk.ncs
Normal file
Binary file not shown.
51
_removed/nw_s0_mindblk.nss
Normal file
51
_removed/nw_s0_mindblk.nss
Normal 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());
|
||||
}
|
||||
}
|
||||
BIN
_removed/nw_s0_naturebal.ncs
Normal file
BIN
_removed/nw_s0_naturebal.ncs
Normal file
Binary file not shown.
132
_removed/nw_s0_naturebal.nss
Normal file
132
_removed/nw_s0_naturebal.nss
Normal 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
BIN
_removed/nw_s0_polyself.ncs
Normal file
Binary file not shown.
86
_removed/nw_s0_polyself.nss
Normal file
86
_removed/nw_s0_polyself.nss
Normal 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
BIN
_removed/nw_s0_prayer.ncs
Normal file
Binary file not shown.
115
_removed/nw_s0_prayer.nss
Normal file
115
_removed/nw_s0_prayer.nss
Normal 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
BIN
_removed/nw_s0_prspells.ncs
Normal file
Binary file not shown.
82
_removed/nw_s0_prspells.nss
Normal file
82
_removed/nw_s0_prspells.nss
Normal 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
BIN
_removed/nw_s0_raisdead.ncs
Normal file
Binary file not shown.
117
_removed/nw_s0_raisdead.nss
Normal file
117
_removed/nw_s0_raisdead.nss
Normal 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
BIN
_removed/nw_s0_resserec.ncs
Normal file
Binary file not shown.
133
_removed/nw_s0_resserec.nss
Normal file
133
_removed/nw_s0_resserec.nss
Normal 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
BIN
_removed/nw_s0_rmvfear.ncs
Normal file
Binary file not shown.
95
_removed/nw_s0_rmvfear.nss
Normal file
95
_removed/nw_s0_rmvfear.nss
Normal 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
BIN
_removed/nw_s0_shapechg.ncs
Normal file
Binary file not shown.
83
_removed/nw_s0_shapechg.nss
Normal file
83
_removed/nw_s0_shapechg.nss
Normal 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
BIN
_removed/nw_s0_silencea.ncs
Normal file
Binary file not shown.
53
_removed/nw_s0_silencea.nss
Normal file
53
_removed/nw_s0_silencea.nss
Normal 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
BIN
_removed/nw_s0_stoneskn.ncs
Normal file
Binary file not shown.
76
_removed/nw_s0_stoneskn.nss
Normal file
76
_removed/nw_s0_stoneskn.nss
Normal 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
BIN
_removed/nw_s0_summon.ncs
Normal file
Binary file not shown.
293
_removed/nw_s0_summon.nss
Normal file
293
_removed/nw_s0_summon.nss
Normal 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
BIN
_removed/nw_s0_truesee.ncs
Normal file
Binary file not shown.
76
_removed/nw_s0_truesee.nss
Normal file
76
_removed/nw_s0_truesee.nss
Normal 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));
|
||||
}
|
||||
|
||||
BIN
_removed/nw_s0_wordfaith.ncs
Normal file
BIN
_removed/nw_s0_wordfaith.ncs
Normal file
Binary file not shown.
157
_removed/nw_s0_wordfaith.nss
Normal file
157
_removed/nw_s0_wordfaith.nss
Normal 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());
|
||||
}
|
||||
}
|
||||
BIN
_removed/nw_s2_animalcom.ncs
Normal file
BIN
_removed/nw_s2_animalcom.ncs
Normal file
Binary file not shown.
24
_removed/nw_s2_animalcom.nss
Normal file
24
_removed/nw_s2_animalcom.nss
Normal 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
BIN
_removed/nw_s2_bardsong.ncs
Normal file
Binary file not shown.
430
_removed/nw_s2_bardsong.nss
Normal file
430
_removed/nw_s2_bardsong.nss
Normal 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
BIN
_removed/nw_s2_divtrick.ncs
Normal file
Binary file not shown.
53
_removed/nw_s2_divtrick.nss
Normal file
53
_removed/nw_s2_divtrick.nss
Normal 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
BIN
_removed/nw_s2_familiar.ncs
Normal file
Binary file not shown.
25
_removed/nw_s2_familiar.nss
Normal file
25
_removed/nw_s2_familiar.nss
Normal 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);
|
||||
}
|
||||
BIN
_removed/nw_s2_wildshape.ncs
Normal file
BIN
_removed/nw_s2_wildshape.ncs
Normal file
Binary file not shown.
187
_removed/nw_s2_wildshape.nss
Normal file
187
_removed/nw_s2_wildshape.nss
Normal 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);
|
||||
}
|
||||
|
||||
}
|
||||
BIN
_removed/nw_s3_actitem01.ncs
Normal file
BIN
_removed/nw_s3_actitem01.ncs
Normal file
Binary file not shown.
31
_removed/nw_s3_actitem01.nss
Normal file
31
_removed/nw_s3_actitem01.nss
Normal 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
BIN
_removed/nw_s3_alcohol.ncs
Normal file
Binary file not shown.
125
_removed/nw_s3_alcohol.nss
Normal file
125
_removed/nw_s3_alcohol.nss
Normal 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
BIN
_removed/nw_s_airelder.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_airgreat.utc
Normal file
BIN
_removed/nw_s_airgreat.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_airhuge.utc
Normal file
BIN
_removed/nw_s_airhuge.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_badgerdire.utc
Normal file
BIN
_removed/nw_s_badgerdire.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_balor.utc
Normal file
BIN
_removed/nw_s_balor.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_balor_evil.utc
Normal file
BIN
_removed/nw_s_balor_evil.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_beardire.utc
Normal file
BIN
_removed/nw_s_beardire.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_boardire.utc
Normal file
BIN
_removed/nw_s_boardire.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_chound.utc
Normal file
BIN
_removed/nw_s_chound.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_clantern.utc
Normal file
BIN
_removed/nw_s_clantern.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_ctrumpet.utc
Normal file
BIN
_removed/nw_s_ctrumpet.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_diretiger.utc
Normal file
BIN
_removed/nw_s_diretiger.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_dmquasit.utc
Normal file
BIN
_removed/nw_s_dmquasit.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_doomkght.utc
Normal file
BIN
_removed/nw_s_doomkght.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_earthelder.utc
Normal file
BIN
_removed/nw_s_earthelder.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_earthgreat.utc
Normal file
BIN
_removed/nw_s_earthgreat.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_earthhuge.utc
Normal file
BIN
_removed/nw_s_earthhuge.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_fireelder.utc
Normal file
BIN
_removed/nw_s_fireelder.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_firegreat.utc
Normal file
BIN
_removed/nw_s_firegreat.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_firehuge.utc
Normal file
BIN
_removed/nw_s_firehuge.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_gargoyle.utc
Normal file
BIN
_removed/nw_s_gargoyle.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_ghast.utc
Normal file
BIN
_removed/nw_s_ghast.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_ghoul.utc
Normal file
BIN
_removed/nw_s_ghoul.utc
Normal file
Binary file not shown.
BIN
_removed/nw_s_helmhorr.utc
Normal file
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
Reference in New Issue
Block a user