Reverted to 4.56 to track down a bug that started in 4.57. Bugfixed back to 4.61. It's amazing the damage that one skipped case statement can do.
		
			
				
	
	
		
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			76 lines
		
	
	
		
			2.6 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
//::///////////////////////////////////////////////
 | 
						|
//:: Wild Shape
 | 
						|
//:: X2_S2_WildShape
 | 
						|
//:: Copyright (c) 2001 Bioware Corp.
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
/*
 | 
						|
    Allows the Druid to change into a Red Dragon.
 | 
						|
*/
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Created By: Preston Watamaniuk
 | 
						|
//:: Created On: Jan 22, 2002
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Last Updated By: Andrew Nobbs May 20, 2003
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
//:: Modified By: Deva Winblood
 | 
						|
//:: Modified Date: January 15th-16th, 2008
 | 
						|
//:://////////////////////////////////////////////
 | 
						|
/*
 | 
						|
    Modified to insure no shapeshifting spells are castable upon
 | 
						|
    mounted targets.  This prevents problems that can occur due
 | 
						|
    to dismounting after shape shifting, or other issues that can
 | 
						|
    occur due to preserved appearances getting out of synch.
 | 
						|
 | 
						|
    This can additional check can be disabled by setting the variable
 | 
						|
    X3_NO_SHAPESHIFT_SPELL_CHECK to 1 on the module object.  If this
 | 
						|
    variable is set then this script will function as it did prior to
 | 
						|
    this modification.
 | 
						|
 | 
						|
*/
 | 
						|
 | 
						|
// #include "x3_inc_horse"
 | 
						|
 | 
						|
 | 
						|
#include "pnp_shft_poly"
 | 
						|
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    //Declare major variables
 | 
						|
    object oTarget = PRCGetSpellTargetObject();
 | 
						|
    effect eVis = EffectVisualEffect(VFX_IMP_POLYMORPH);
 | 
						|
    effect ePoly;
 | 
						|
    int nMetaMagic = PRCGetMetaMagicFeat();
 | 
						|
    int nDuration 	= GetLevelByClass(CLASS_TYPE_DRUID)
 | 
						|
					+ GetLevelByClass(CLASS_TYPE_LION_OF_TALISID);
 | 
						|
    if (!GetLocalInt(GetModule(),"X3_NO_SHAPESHIFT_SPELL_CHECK"))
 | 
						|
    { // check to see if abort due to being mounted
 | 
						|
        if (PRCHorseGetIsMounted(oTarget))
 | 
						|
        { // abort
 | 
						|
            if (GetIsPC(oTarget)) FloatingTextStrRefOnCreature(111982,oTarget,FALSE);
 | 
						|
                return;
 | 
						|
        } // abort
 | 
						|
    } // check to see if abort due to being mounted
 | 
						|
 | 
						|
    //Enter Metamagic conditions
 | 
						|
    if (CheckMetaMagic(nMetaMagic, METAMAGIC_EXTEND))
 | 
						|
    {
 | 
						|
        nDuration = nDuration *2; //Duration is +100%
 | 
						|
    }
 | 
						|
 | 
						|
    ePoly = EffectPolymorph(POLYMORPH_TYPE_RED_DRAGON);
 | 
						|
    //Fire cast spell at event for the specified target
 | 
						|
    SignalEvent(oTarget, EventSpellCastAt(OBJECT_SELF, SPELLABILITY_WILD_SHAPE, FALSE));
 | 
						|
 | 
						|
    //this command will make shore that polymorph plays nice with the shifter
 | 
						|
    ShifterCheck(OBJECT_SELF);
 | 
						|
 | 
						|
    ClearAllActions(); // prevents an exploit
 | 
						|
 | 
						|
    //Apply the VFX impact and effects
 | 
						|
    ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
 | 
						|
    ApplyEffectToObject(DURATION_TYPE_TEMPORARY, ePoly, OBJECT_SELF, HoursToSeconds(nDuration));
 | 
						|
 | 
						|
    DelayCommand(1.5,ActionCastSpellOnSelf(SPELL_SHAPE_INCREASE_DAMAGE));
 | 
						|
}
 |