Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
72 lines
3.4 KiB
Plaintext
72 lines
3.4 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Time Stop
|
|
//:: NW_S0_TimeStop.nss
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
//:://////////////////////////////////////////////
|
|
//:: FileName: "ss_ep_grtimestop"
|
|
/* Purpose: Greater Timestop - in all ways this spell is the same as
|
|
Timestop except for the duration, which is doubled.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Boneshank
|
|
//:: Last Updated On: March 11, 2004
|
|
//:://////////////////////////////////////////////
|
|
#include "prc_alterations"
|
|
#include "inc_timestop"
|
|
#include "inc_epicspells"
|
|
|
|
void main()
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
SetLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR", SPELL_SCHOOL_TRANSMUTATION);
|
|
int nDuration = d4(2)+2;
|
|
|
|
if (!X2PreSpellCastCode())
|
|
{
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
return;
|
|
}
|
|
if (GetCanCastSpell(OBJECT_SELF, SPELL_EPIC_GR_TIME))
|
|
{
|
|
location lTarget = PRCGetSpellTargetLocation();
|
|
effect eVis = EffectVisualEffect(VFX_FNF_TIME_STOP);
|
|
effect eTime = EffectTimeStop();
|
|
float fDuration = RoundsToSeconds(nDuration);
|
|
|
|
if(GetPRCSwitch(PRC_TIMESTOP_BIOWARE_DURATION))
|
|
fDuration = 18.0;
|
|
if(GetPRCSwitch(PRC_TIMESTOP_LOCAL))
|
|
{
|
|
eTime = EffectAreaOfEffect(VFX_PER_NEW_TIMESTOP);
|
|
eTime = EffectLinkEffects(eTime, EffectEthereal());
|
|
if(GetPRCSwitch(PRC_TIMESTOP_NO_HOSTILE))
|
|
{
|
|
object oCaster = OBJECT_SELF;
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_BULLETS, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_ARROWS, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_BOLTS, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oCaster),fDuration);
|
|
AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oCaster),fDuration);
|
|
DelayCommand(fDuration, RemoveTimestopEquip());
|
|
/*
|
|
string sSpellscript = PRCGetUserSpecificSpellScript();
|
|
DelayCommand(fDuration, PRCSetUserSpecificSpellScript(sSpellscript));
|
|
PRCSetUserSpecificSpellScript("tsspellscript");
|
|
now in main spellhook*/
|
|
}
|
|
}
|
|
|
|
|
|
SignalEvent(OBJECT_SELF, EventSpellCastAt(OBJECT_SELF, SPELL_TIME_STOP, FALSE));
|
|
DelayCommand(0.75, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, eTime, OBJECT_SELF, fDuration, TRUE, -1, GetTotalCastingLevel(OBJECT_SELF)));
|
|
ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lTarget);
|
|
}
|
|
DeleteLocalInt(OBJECT_SELF, "X2_L_LAST_SPELLSCHOOL_VAR");
|
|
}
|
|
|