forked from Jaysyn/PRC8
Updated Release Archive. Fixed Mage-killer prereqs. Removed old LETO & ConvoCC related files. Added organized spell scroll store. Fixed Gloura spellbook. Various TLK fixes. Reorganized Repo. Removed invalid user folders. Added DocGen back in.
83 lines
2.6 KiB
Plaintext
83 lines
2.6 KiB
Plaintext
//:://////////////////////////////////////////////////
|
|
//:: X0_CH_HEN_DEATH
|
|
//:: Copyright (c) 2002 Floodgate Entertainment
|
|
//:://////////////////////////////////////////////////
|
|
/*
|
|
OnDeath handler for henchmen ONLY. Causes them to respawn at
|
|
(in order of preference) the respawn point of their master
|
|
or their own starting location.
|
|
*/
|
|
//:://////////////////////////////////////////////////
|
|
//:: Created By: Naomi Novik
|
|
//:: Created On: 10/09/2002
|
|
//:://////////////////////////////////////////////////
|
|
#include "prc_alterations"
|
|
#include "x0_i0_henchman"
|
|
|
|
void main()
|
|
{
|
|
|
|
|
|
// Handle a bunch of stuff to keep us from running around,
|
|
// dying again, etc.
|
|
// PreRespawnSetup();
|
|
|
|
// Call for healing
|
|
DelayCommand(0.5, VoiceHealMe(TRUE));
|
|
|
|
// Get our last master
|
|
object oPC = GetLastMaster();
|
|
object oSelf = OBJECT_SELF;
|
|
|
|
|
|
// Clear dialogue events
|
|
ClearAllDialogue(oPC, OBJECT_SELF);
|
|
ClearAllActions();
|
|
|
|
string sAreaTag = GetTag(GetArea(OBJECT_SELF));
|
|
// * in final battle area henchmen death is now permanent
|
|
if (sAreaTag == "Winds_04")
|
|
{
|
|
|
|
SetPlotFlag(OBJECT_SELF,FALSE);
|
|
SetImmortal(OBJECT_SELF, FALSE);
|
|
SetIsDestroyable(TRUE, FALSE, FALSE);
|
|
DestroyObject(OBJECT_SELF, 0.2);
|
|
return;
|
|
}
|
|
|
|
if ((GetTag(GetModule()) == "x0_module2" || GetTag(GetModule()) == "x0_module3") && GetIsObjectValid(oPC) == FALSE)
|
|
{
|
|
// SpawnScriptDebugger();
|
|
// * if you kill a henchmen who has never had a master
|
|
// * then permanently kill them to prevent
|
|
// * faction issues.
|
|
SetPlotFlag(OBJECT_SELF,FALSE);
|
|
SetImmortal(OBJECT_SELF, FALSE);
|
|
SetIsDestroyable(TRUE, FALSE, FALSE);
|
|
DestroyObject(OBJECT_SELF, 0.2);
|
|
return;
|
|
}
|
|
|
|
// If we don't have a master OR he has died, respawn immediately
|
|
// April 2003, in some areas the henchmen has to respawn immediately
|
|
// back for pathfinding reasons (i.e., if they die in front of the dragon
|
|
// the dragon will act stupid
|
|
if (!GetIsObjectValid(oPC) || GetIsDead(oPC) == TRUE && GetTag(GetModule()) == "x0_module1"
|
|
|| sAreaTag =="Q5_DragonCaves" || sAreaTag == "Q3C_AncientTemple")
|
|
{
|
|
DelayCommand(1.0, RespawnHenchman());
|
|
DelayCommand(1.5, PostRespawnCleanup());
|
|
}
|
|
else
|
|
{
|
|
// BK Feb 2003: Make the henchman rejoin you so that you can use potions on them
|
|
// DelayCommand(0.1, AddHenchman(oPC, oSelf));
|
|
|
|
// Start the respawn checking
|
|
// RaiseForRespawn(oPC);
|
|
// * henchmen will always stay where they die unless you leave them
|
|
// RespawnCheck(oPC);
|
|
}
|
|
}
|