Updated AMS marker feats. Removed arcane & divine marker feats. Updated Dread Necromancer for epic progression. Updated weapon baseitem models. Updated new weapons for crafting & npc equip. Updated prefix. Updated release archive.
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);
|
|
}
|
|
}
|