Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
44 lines
1.4 KiB
Plaintext
44 lines
1.4 KiB
Plaintext
//Spell script for reserve feat Face-Changer Shape Learning
|
|
//prc_reservlern
|
|
//by ebonfowl
|
|
//Dedicated to Edgar, the real Ebonfowl
|
|
|
|
#include "prc_inc_shifting"
|
|
#include "prc_inc_spells"
|
|
|
|
|
|
void main()
|
|
{
|
|
object oPC = OBJECT_SELF;
|
|
object oTarget = PRCGetSpellTargetObject();
|
|
int nSpellID = GetSpellId();
|
|
int nShiftType = SHIFTER_TYPE_DISGUISE_SELF;
|
|
|
|
if (!GetLocalInt(oPC, "FaceChangerBonus"))
|
|
{
|
|
FloatingTextStringOnCreature("You do not have a spell available of adequate level or type", oPC, FALSE);
|
|
return;
|
|
}
|
|
|
|
// Store the PC's current appearance as true appearance
|
|
/// @note This may be a bad idea, we have no way of knowing if the current appearance really is the "true appearance" - Ornedan
|
|
StoreCurrentAppearanceAsTrueAppearance(oPC, TRUE);
|
|
|
|
// See if the creature is shiftable to. If so, store it as a template and shift
|
|
if(GetCanShiftIntoCreature(oPC, nShiftType, oTarget))
|
|
{
|
|
StoreShiftingTemplate(oPC, nShiftType, oTarget);
|
|
|
|
FloatingTextStringOnCreature("Face-changer appearance stored", oPC, FALSE);
|
|
|
|
SetLocalInt(oPC, "HasFaceChanger", TRUE);
|
|
DelayCommand(2.0, DeleteLocalInt(oPC, "HasFaceChanger"));
|
|
|
|
// Start shifting. If this fails immediately, refund the shifting use
|
|
if(!ShiftIntoCreature(oPC, nShiftType, oTarget))
|
|
{
|
|
DeleteLocalInt(oPC, "HasFaceChanger");
|
|
}
|
|
}
|
|
}
|