56 lines
1.9 KiB
Plaintext
56 lines
1.9 KiB
Plaintext
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));
|
|
}
|
|
}
|