Aantioch_Infernum/_module/nss/fairy_rez_bottle.nss
Jaysyn904 22947ad4b6 Initial Upload
Initial Upload
2023-08-08 16:22:17 -04:00

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));
}
}