108 lines
3.3 KiB
Plaintext
108 lines
3.3 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Henchman Death Script
|
|
//::
|
|
//:: NW_CH_AC7.nss
|
|
//::
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
//:: <description>
|
|
//:://////////////////////////////////////////////
|
|
//::
|
|
//:: Created By:
|
|
//:: Modified by: Brent, April 3 2002
|
|
//:: Removed delay in respawning
|
|
//:: the henchman - caused bugs
|
|
//:: Modified November 14 2002
|
|
//:: - Henchem will now stay dead. Need to be raised
|
|
//:://////////////////////////////////////////////
|
|
|
|
//::///////////////////////////////////////////////
|
|
//:: Greater Restoration
|
|
//:: NW_S0_GrRestore.nss
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
Removes all negative effects of a temporary nature
|
|
and all permanent effects of a supernatural nature
|
|
from the character. Does not remove the effects
|
|
relating to Mind-Affecting spells or movement alteration.
|
|
Heals target for 5d8 + 1 point per caster level.
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Jan 7, 2002
|
|
//:://////////////////////////////////////////////
|
|
//:: VFX Pass By: Preston W, On: June 20, 2001
|
|
#include "nw_i0_generic"
|
|
#include "nw_i0_plot"
|
|
#include "x0_i0_henchman"
|
|
#include "pcinclude"
|
|
|
|
void main()
|
|
{
|
|
int nDestroy = d4(1)-1;
|
|
DestroyItemsInInventory(OBJECT_SELF, "Freight1", nDestroy);
|
|
DestroyItemsInInventory(OBJECT_SELF, "Freight2", nDestroy);
|
|
DestroyItemsInInventory(OBJECT_SELF, "Freight3", nDestroy);
|
|
|
|
|
|
// * This is used by the advanced henchmen
|
|
// * Let Brent know if it interferes with animal
|
|
// * companions et cetera
|
|
|
|
|
|
|
|
if (GetAssociateType(OBJECT_SELF) == ASSOCIATE_TYPE_HENCHMAN)
|
|
{
|
|
SetLocalInt(OBJECT_SELF, "X2_L_IJUSTDIED", 10);
|
|
SetKilled(GetMaster());
|
|
SetDidDie();
|
|
object oHench = OBJECT_SELF;
|
|
// * Take them out of stealth mode too (Nov 1 - BK)
|
|
SetActionMode(oHench, ACTION_MODE_STEALTH, FALSE);
|
|
// * Remove invisibility type effects off of henchmen (Nov 7 - BK)
|
|
RemoveSpellEffects(SPELL_INVISIBILITY, oHench, oHench);
|
|
RemoveSpellEffects(SPELL_IMPROVED_INVISIBILITY, oHench, oHench);
|
|
RemoveSpellEffects(SPELL_SANCTUARY, oHench, oHench);
|
|
RemoveSpellEffects(SPELL_ETHEREALNESS, oHench, oHench);
|
|
}
|
|
RemoveHenchman(GetMaster(), OBJECT_SELF);
|
|
|
|
// * Custom stuff, if your henchman betrayed you
|
|
// * they can no longer be raised
|
|
string sTag = GetTag(OBJECT_SELF);
|
|
int bDestroyMe = FALSE;
|
|
if (sTag == "H2_Aribeth" && GetLocalInt(GetModule(), "bAribethBetrays") == TRUE)
|
|
{
|
|
bDestroyMe = TRUE;
|
|
}
|
|
else
|
|
if (sTag == "x2_hen_nathyra" && GetLocalInt(GetModule(), "bNathyrraBetrays") == TRUE)
|
|
{
|
|
bDestroyMe = TRUE;
|
|
|
|
}
|
|
else
|
|
if (sTag == "x2_hen_valen" && GetLocalInt(GetModule(), "bValenBetrays") == TRUE)
|
|
{
|
|
bDestroyMe = TRUE;
|
|
|
|
}
|
|
else
|
|
if (sTag == "x2_hen_deekin" && GetLocalInt(GetModule(), "bDeekinBetrays") == TRUE)
|
|
{
|
|
bDestroyMe = TRUE;
|
|
}
|
|
|
|
if (bDestroyMe == TRUE)
|
|
{
|
|
// * For purposes of end-game narration, set whether henchmen
|
|
// * died in final battle
|
|
SetLocalInt(GetModule(), GetTag(OBJECT_SELF) + "_DIED", 1);
|
|
SetIsDestroyable(FALSE, FALSE, FALSE);
|
|
}
|
|
|
|
}
|
|
|
|
|