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.
		
			
				
	
	
		
			54 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			54 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
/*
 | 
						|
18/02/19 by Stratovarius
 | 
						|
 | 
						|
Shadow Time
 | 
						|
 | 
						|
Master, Dark Metamorphosis 
 | 
						|
Level/School: 9th/Transmutation 
 | 
						|
Duration: 1d4+4 rounds (apparent time); see text for time stop
 | 
						|
 | 
						|
This mystery functions like the spell time stop, except as noted above.
 | 
						|
*/
 | 
						|
 | 
						|
#include "shd_inc_shdfunc"
 | 
						|
#include "shd_mysthook"
 | 
						|
#include "inc_timestop"
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    if(!ShadPreMystCastCode()) return;
 | 
						|
 | 
						|
    object oShadow      = OBJECT_SELF;
 | 
						|
    object oTarget      = PRCGetSpellTargetObject();
 | 
						|
    struct mystery myst = EvaluateMystery(oShadow, oTarget, METASHADOW_EXTEND);
 | 
						|
 | 
						|
    if(myst.bCanMyst)
 | 
						|
    {
 | 
						|
        myst.nPen = ShadowSRPen(oShadow, myst.nShadowcasterLevel);
 | 
						|
        myst.fDur = d4() * 6.0 + 24.0;
 | 
						|
        if(myst.bExtend) myst.fDur *= 2;
 | 
						|
        
 | 
						|
        myst.eLink = EffectTimeStop();
 | 
						|
        
 | 
						|
        if(GetPRCSwitch(PRC_TIMESTOP_LOCAL))
 | 
						|
        {
 | 
						|
            myst.eLink = EffectAreaOfEffect(VFX_PER_NEW_TIMESTOP);
 | 
						|
            myst.eLink = EffectLinkEffects(myst.eLink, EffectEthereal());
 | 
						|
            if(GetPRCSwitch(PRC_TIMESTOP_NO_HOSTILE))
 | 
						|
            {
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_LEFTHAND, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_RIGHTHAND, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_BULLETS, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_ARROWS, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_BOLTS, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_B, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_L, oShadow),myst.fDur);
 | 
						|
                AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetItemInSlot(INVENTORY_SLOT_CWEAPON_R, oShadow),myst.fDur);            
 | 
						|
                DelayCommand(myst.fDur, RemoveTimestopEquip());
 | 
						|
 | 
						|
            }
 | 
						|
        }
 | 
						|
        DelayCommand(0.75, SPApplyEffectToObject(DURATION_TYPE_TEMPORARY, myst.eLink, oTarget, myst.fDur, TRUE, myst.nMystId, myst.nShadowcasterLevel)); 
 | 
						|
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_IMP_TIME_STOP_DN_PURPLE), PRCGetSpellTargetLocation());        
 | 
						|
    }
 | 
						|
} |