void DestroyFairy(object oPC,location lPC,string NewFairyName) { object ResFairy = GetNearestObjectByTag(NewFairyName, oPC); effect DisEffect = EffectDisappear(); DelayCommand(1.5, PlayVoiceChat(VOICE_CHAT_GOODBYE, ResFairy)); DelayCommand(3.5, ApplyEffectToObject(DURATION_TYPE_PERMANENT, DisEffect, ResFairy)); } void main() { object oPC = GetLastPlayerDied(); location lPC = GetLocation(oPC); int nCount; object oPartyMember = GetFirstFactionMember(GetFirstPC(), TRUE); while (GetIsObjectValid(oPartyMember) == TRUE) { nCount++; oPartyMember = GetNextFactionMember(oPartyMember, TRUE); } if (nCount > 1) { SendMessageToPC(oPC,"The fairy has sensed you have comrades to help you..."); DelayCommand(5.0, PopUpGUIPanel(oPC,GUI_PANEL_PLAYER_DEATH)); return; } else { int PCMaxHP = GetMaxHitPoints(oPC); string DeadPCName = GetPCPlayerName(oPC); string NewFairyName = "fairy" + DeadPCName; object oBottle = GetObjectByTag("fairy_bottle"); effect ResEffect = EffectResurrection(); effect HealEffect = EffectHeal(PCMaxHP/10); effect VisEffect = EffectVisualEffect(VFX_IMP_RAISE_DEAD, FALSE); effect eVis = EffectVisualEffect(VFX_FNF_LOS_NORMAL_10); object oSpawn = CreateObject(OBJECT_TYPE_CREATURE, "fairy", lPC, FALSE, NewFairyName); location lSpawn = GetLocation(oSpawn); ApplyEffectAtLocation(DURATION_TYPE_INSTANT, eVis, lSpawn); DelayCommand(4.0, ApplyEffectToObject(DURATION_TYPE_INSTANT, ResEffect, oPC)); DelayCommand(4.2, ApplyEffectToObject(DURATION_TYPE_INSTANT, HealEffect, oPC)); DelayCommand(4.4, ApplyEffectToObject(DURATION_TYPE_TEMPORARY, VisEffect, oPC)); DestroyObject(oBottle, 4.6); DelayCommand(5.0,DestroyFairy(oPC,lPC,NewFairyName)); } }