void DoTimestopEquip(object oPC, object oItem); void DoTimestopUnEquip(object oPC, object oItem); void ApplyTSToObject(object oTarget); void RemoveTSFromObject(object oTarget); #include "prc_x2_itemprop" #include "prc_inc_switch" #include "inc_prc_npc" //#include "inc_utility" void RemoveTimestopEquip() { int i; for (i=0;i<18;i++) { IPRemoveMatchingItemProperties(GetItemInSlot(i), ITEM_PROPERTY_NO_DAMAGE, DURATION_TYPE_TEMPORARY); } } void DoTimestopEquip(object oPC, object oItem) { if(GetPRCSwitch(PRC_TIMESTOP_NO_HOSTILE)) { if(GetHasSpellEffect(SPELL_TIME_STOP, oPC) || GetHasSpellEffect(4032, oPC) || GetHasSpellEffect(14236, oPC)) AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), oItem, 9999.0); /*else if(GetHasSpellEffect(POWER_ID, oPC)) { AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), oItem, 9999.0); //stuff for AC negation }*/ } } void DoTimestopUnEquip(object oPC, object oItem) { if(GetPRCSwitch(PRC_TIMESTOP_NO_HOSTILE)) { if(GetHasSpellEffect(SPELL_TIME_STOP, oPC) || GetHasSpellEffect(4032, oPC) || GetHasSpellEffect(14236, oPC)) IPRemoveMatchingItemProperties(oItem, ITEM_PROPERTY_NO_DAMAGE, DURATION_TYPE_TEMPORARY); /*else if(GetHasSpellEffect(POWER_ID, oPC)) { AddItemProperty(DURATION_TYPE_TEMPORARY, ItemPropertyNoDamage(), oItem, 9999.0); //stuff for AC negation removal }*/ } } 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) && GetPRCSwitch(PRC_TIMESTOP_BLANK_PC)) BlackScreen(oTarget); AssignCommand(oTarget, ClearAllActions(FALSE)); SetCommandable(FALSE, oTarget); } void RemoveTSFromObject(object oTarget) { effect eTest = GetFirstEffect(oTarget); while(GetIsEffectValid(eTest)) { int nSpellId = GetEffectSpellId(eTest); if(nSpellId == SPELL_TIME_STOP || nSpellId == 4032 //epic TS || nSpellId == 14205 // POWER_TEMPORALACCELERATION || nSpellId == 17366 // MOVE_DM_MOMENT_ALACRITY || nSpellId == 17511 // MOVE_WR_WHITE_RAVEN_TACTICS ) RemoveEffect(oTarget, eTest); eTest = GetNextEffect(oTarget); } if(GetIsPC(oTarget)) StopFade(oTarget); SetCommandable(TRUE, oTarget); }