Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
84 lines
2.6 KiB
Plaintext
84 lines
2.6 KiB
Plaintext
|
|
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);
|
|
}
|