Removed a lot of old backup files. Fixed Eye of Gruumsh's epic bonus feats. Add Epic marker feat for Eye of Gruumsh. Added Channeled Pyroburst to prc_desc_fire.2da Added GetCurrentUnixTimestamp() function. Moved crafting conversation functions to prc_craft_cv_inc.nss. Made Midnight Augment work slightly better, still not quite per PnP yet. Disciple of Asmodeus' Summoned Devils are supposed to be Lawful Evil. Every instance of ItemPropertySpellImmunitySpecific() in race_skin.nss was misconfigured. Several instances of ItemPropertyDamageImmunity() in race_skin.nss were misconfigured. Fixed issue where Blighters were still considered undead after leaving undead wildshape. PRC8 now supports offline PnP magical crafting. Disciple of Asmodeus' Dread Night now increases AC instead of Damage, per PnP. Non-spellcaster Disciples of Asmodeus have a Hellcat duration based on DoA class level. Hexblade's Dark Companion shouldn't lose Sacntuary when loading from a save. Claws of the Savage should increase size properly if caster already has claws at time of casting.
93 lines
3.1 KiB
Plaintext
93 lines
3.1 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);
|
|
|
|
DeleteLocalInt(oPC, "PRC_ShiftingOverride_Race");
|
|
|
|
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");
|
|
}
|
|
}
|