void main() { object oPC; oPC = OBJECT_SELF; object oTarget; oTarget = GetAssociate(ASSOCIATE_TYPE_SUMMONED, oPC); if (GetIsObjectValid(oTarget)) { RemoveSummonedAssociate(oPC, oTarget); location loc = GetLocation(oTarget); effect animation = EffectVisualEffect( VFX_IMP_UNSUMMON ); ApplyEffectAtLocation( DURATION_TYPE_INSTANT, animation, loc); DestroyObject (oTarget); } int bardLevels = GetLevelByClass(CLASS_TYPE_BARD , oPC); int hitdice = GetHitDice(oPC); // Bard summon if (bardLevels >= 21) { effect eEffect; eEffect = EffectSummonCreature("valkyrie3", VFX_FNF_NATURES_BALANCE, 1.0); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } else if (bardLevels >= 17) { effect eEffect; eEffect = EffectSummonCreature("valkyrie2", VFX_FNF_NATURES_BALANCE, 1.0); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } else { effect eEffect; eEffect = EffectSummonCreature("valkyrie", VFX_FNF_TIME_STOP, 1.0); ApplyEffectToObject(DURATION_TYPE_PERMANENT, eEffect, oPC); } }