Further file organization
Further file organization
This commit is contained in:
90
nwn/nwnprc/trunk/scripts/prc_chngshp_true.nss
Normal file
90
nwn/nwnprc/trunk/scripts/prc_chngshp_true.nss
Normal file
@@ -0,0 +1,90 @@
|
||||
//:://////////////////////////////////////////////
|
||||
//:: 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");
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user