#include "prc_x2_itemprop" //const int VFX_PER_NEW_TIMESTOP = 76; void DoTimestopEquip(); void DoTimestopUnEquip(); void ApplyTSToObject(object oTarget); void RemoveTSFromObject(object oTarget); void DoTimestopEquip() { object oPC = GetPCItemLastEquippedBy(); if(!GetHasSpellEffect(SPELL_TIME_STOP, oPC) && !GetHasSpellEffect(4032, oPC)) return; AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), GetPCItemLastEquipped(),9999.0); } void DoTimestopUnEquip() { object oPC = GetPCItemLastUnequippedBy(); if(!GetHasSpellEffect(SPELL_TIME_STOP, oPC) && !GetHasSpellEffect(4032, oPC)) return; IPRemoveMatchingItemProperties(GetPCItemLastUnequipped(), ITEM_PROPERTY_NO_DAMAGE, DURATION_TYPE_TEMPORARY); } void ApplyTSToObject(object oTarget) { effect eTS = EffectVisualEffect(VFX_DUR_FREEZE_ANIMATION); effect eCSP = EffectCutsceneParalyze(); effect eLink = EffectLinkEffects(eTS, eCSP); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eLink, oTarget); if(GetIsPC(oTarget)) BlackScreen(oTarget); AssignCommand(oTarget, ClearAllActions(FALSE)); SetCommandable(FALSE, oTarget); } void RemoveTSFromObject(object oTarget) { effect eTest = GetFirstEffect(oTarget); while(GetIsEffectValid(eTest)) { if(GetEffectSpellId(eTest) == SPELL_TIME_STOP || GetEffectSpellId(eTest) == 4032)//epic TS RemoveEffect(oTarget, eTest); eTest = GetNextEffect(oTarget); } if(GetIsPC(oTarget)) StopFade(oTarget); SetCommandable(TRUE, oTarget); }