forked from Jaysyn/PRC8
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.
91 lines
3.0 KiB
Plaintext
91 lines
3.0 KiB
Plaintext
//:://////////////////////////////////////////////
|
|
//:: Change Shape - return to true form
|
|
//:: prc_chngshp_true
|
|
//:://////////////////////////////////////////////
|
|
/** @file
|
|
Undoes any shifting that the character may
|
|
have undergone. Also removes any polymorph
|
|
effects.
|
|
|
|
Note: Also attempts to clear old shifter style shifting.
|
|
Depending on which one overrides, may need to change the
|
|
order of the if statements.
|
|
|
|
|
|
@author Shane Hennessy
|
|
@date Modified - 2006.10.08 - rewritten by Ornedan - modded by Fox
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "prc_inc_shifting"
|
|
#include "pnp_shft_poly"
|
|
#include "prc_racial_const"
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
|
|
int nRace = GetRacialType(oPC);
|
|
|
|
if(GetSpellId() == SPELL_IRDA_CHANGE_SHAPE_TRUE)
|
|
IncrementRemainingFeatUses(oPC, FEAT_IRDA_CHANGE_SHAPE);
|
|
|
|
//End treeshape
|
|
if(GetHasSpellEffect(SPELL_TREESHAPE, oPC))
|
|
{
|
|
effect eVis;
|
|
string sTag = "Tree" + GetName(oPC);
|
|
object oTree = GetNearestObjectByTag(sTag, oPC);
|
|
if(GetIsObjectValid(oTree))
|
|
eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
|
|
DestroyObject(oTree);
|
|
|
|
PRCRemoveSpellEffects(SPELL_TREESHAPE, oPC, oPC);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, oPC);
|
|
}
|
|
|
|
// Aranea Alternate Form
|
|
PRCRemoveSpellEffects(1489, oPC, oPC);
|
|
PRCRemoveSpellEffects(1490, oPC, oPC);
|
|
PRCRemoveSpellEffects(1491, oPC, oPC);
|
|
|
|
// Undead Wildshape
|
|
PRCRemoveSpellEffects(2283, oPC, oPC);
|
|
PRCRemoveSpellEffects(2284, oPC, oPC);
|
|
PRCRemoveSpellEffects(2285, oPC, oPC);
|
|
PRCRemoveSpellEffects(2286, oPC, oPC);
|
|
PRCRemoveSpellEffects(2287, oPC, oPC);
|
|
PRCRemoveSpellEffects(2288, oPC, oPC);
|
|
|
|
if(GetLocalInt(oPC, "AraneaHumanoidForm") == TRUE || GetLocalInt(oPC, "AraneaHybridForm") == TRUE || GetPersistantLocalInt(oPC, "nPCShifted") == TRUE || GetLocalInt(oPC, "shifting") == TRUE)
|
|
{
|
|
SetLocalInt(oPC, "AraneaBiteEquip", TRUE);
|
|
}
|
|
|
|
//clear old style shifting first
|
|
if(GetLocalInt(oPC, "shifting"))
|
|
{
|
|
effect eFx = EffectVisualEffect(VFX_IMP_MAGICAL_VISION);
|
|
ApplyEffectToObject(DURATION_TYPE_INSTANT,eFx,OBJECT_SELF);
|
|
//re-use unshifter code from shifter instead
|
|
//this will also remove complexities with lich/shifter characters
|
|
SetShiftTrueForm(oPC);
|
|
}
|
|
// Attempt to unshift and if it fails, inform the user with a message so they don't wonder whether something is happening or not
|
|
else if(UnShift(oPC, TRUE) == UNSHIFT_FAIL)
|
|
FloatingTextStrRefOnCreature(16828383, oPC, FALSE); // "Failed to return to true form!"
|
|
|
|
if(nRace==RACIAL_TYPE_ARANEA)
|
|
{
|
|
//string sResRef = "prc_ara_bite_";
|
|
//int nSize = PRCGetCreatureSize(oPC);
|
|
//primary weapon
|
|
//sResRef += GetAffixForSize(nSize);
|
|
//DelayCommand(0.5f, AddNaturalPrimaryWeapon(oPC, sResRef, 1, TRUE));
|
|
|
|
DeleteLocalInt(oPC, "AraneaHumanoidForm");
|
|
DeleteLocalInt(oPC, "AraneaHybridForm");
|
|
}
|
|
}
|