74 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			74 lines
		
	
	
		
			2.5 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
void CreateBalor()
 | 
						|
{
 | 
						|
     CreateObject(OBJECT_TYPE_CREATURE, "balor_wild", GetSpellTargetLocation());
 | 
						|
}
 | 
						|
 | 
						|
void main()
 | 
						|
{
 | 
						|
    int nMetaMagic = GetMetaMagicFeat();
 | 
						|
    int nCasterLevel = GetCasterLevel(OBJECT_SELF);
 | 
						|
    int nDuration = GetCasterLevel(OBJECT_SELF);
 | 
						|
    effect eSummon;
 | 
						|
    effect eVis = EffectVisualEffect(VFX_FNF_SUMMON_GATE);
 | 
						|
    location lSpellTargetLOC = GetSpellTargetLocation();
 | 
						|
    object oPC = GetLastSpellCaster();
 | 
						|
 | 
						|
    if (nMetaMagic == METAMAGIC_EXTEND)
 | 
						|
    {
 | 
						|
        nDuration = nDuration *2;   //Duration is +100%
 | 
						|
    }
 | 
						|
 | 
						|
    if(GetHasSpellEffect(SPELL_PROTECTION_FROM_EVIL) ||
 | 
						|
       GetHasSpellEffect(SPELL_MAGIC_CIRCLE_AGAINST_EVIL) ||
 | 
						|
       GetHasSpellEffect(SPELL_HOLY_AURA))
 | 
						|
   {
 | 
						|
 | 
						|
 | 
						|
    if(GetItemPossessedBy(oPC,"chokey2")!= OBJECT_INVALID)
 | 
						|
    {
 | 
						|
        eSummon = EffectSummonCreature("fho_dragon",VFX_FNF_SUMMONDRAGON,1.0);
 | 
						|
        float fSeconds = RoundsToSeconds(nDuration);
 | 
						|
        DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds));
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    else if(GetItemPossessedBy(oPC,"OHSKEY")!= OBJECT_INVALID)
 | 
						|
    {
 | 
						|
        eSummon = EffectSummonCreature("ohs_avatar",VFX_FNF_MYSTICAL_EXPLOSION,1.0);
 | 
						|
        float fSeconds = RoundsToSeconds(nDuration);
 | 
						|
        DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds));
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    else if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_GOOD && GetAlignmentLawChaos(oPC) == ALIGNMENT_LAWFUL)
 | 
						|
    {
 | 
						|
        eSummon = EffectSummonCreature("good_avatar",VFX_FNF_SUMMON_CELESTIAL,1.0);
 | 
						|
        float fSeconds = RoundsToSeconds(nDuration);
 | 
						|
        DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds));
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
    else if (GetAlignmentGoodEvil(oPC) == ALIGNMENT_EVIL && GetAlignmentLawChaos(oPC) == ALIGNMENT_CHAOTIC)
 | 
						|
    {
 | 
						|
        eSummon = EffectSummonCreature("evil_avatar",VFX_FNF_SUMMON_UNDEAD,1.0);
 | 
						|
        float fSeconds = RoundsToSeconds(nDuration);
 | 
						|
        DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds));
 | 
						|
        return;
 | 
						|
    }
 | 
						|
 | 
						|
 | 
						|
        eSummon = EffectSummonCreature("balor_tame",VFX_FNF_SUMMON_GATE,1.0);
 | 
						|
        float fSeconds = RoundsToSeconds(nDuration);
 | 
						|
        DelayCommand(1.0, ApplyEffectAtLocation(DURATION_TYPE_TEMPORARY, eSummon, lSpellTargetLOC, fSeconds));
 | 
						|
    }
 | 
						|
    else
 | 
						|
    {
 | 
						|
 | 
						|
        ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lSpellTargetLOC);
 | 
						|
        DelayCommand(1.0, CreateBalor());
 | 
						|
    }
 | 
						|
 | 
						|
}
 | 
						|
 | 
						|
 |