RATDOG/_module/nss/codi_heartbeat.nss
Jaysyn904 37b68cf6b6 Updated TLK for PRC8 update
Updated TLK for PRC8 update.  Added placeable house blueprints.  Updated NWNxEE.  Full compile.
2024-08-31 20:38:17 -04:00

66 lines
1.9 KiB
Plaintext

//::///////////////////////////////////////////////
//:: Name codi_heartbeat
//::
//:://////////////////////////////////////////////
/*
NPC Heartbeat event script caller to run CODI
AI & PRC events.
*/
//:://////////////////////////////////////////////
//:: Created By: Jaysyn
//:: Created On: 20240331
//:://////////////////////////////////////////////
void main()
{
//:: Declare major variables
object oNPC = OBJECT_SELF;
object oAttacker;
string sResRef = GetResRef(oNPC);
//:: Runs special swarm HB
// if (sResRef == "ds_repbatswrm001" ||
// sResRef == "ds_minkankswrm01" ||
// sResRef == "ds_locustswarm01" ||
// sResRef == "ar_berzwasp001" ||
// sResRef == "ar_berzwasp002" )
// {
// ExecuteScript("cr_locust_hb", oNPC);
// }
//:: Equips best armor
if ((!GetIsInCombat(oNPC) && (GetItemInSlot(INVENTORY_SLOT_CHEST) == OBJECT_INVALID)))
DelayCommand(0.5f, ActionEquipMostEffectiveArmor());
//:: Handles Vampire's Gaseous form death.
if(sResRef == "ra_vamp_gas_form")
{
//:: Get nearest alive PC.
oAttacker = GetNearestCreature(CREATURE_TYPE_PLAYER_CHAR, PLAYER_CHAR_IS_PC, oNPC, 1, CREATURE_TYPE_IS_ALIVE, TRUE);
//:: Set destroyable.
SetIsDestroyable(TRUE, FALSE, FALSE);
//:: Remove plot/immoral/lootable flags JUST in case.
SetPlotFlag(oNPC, FALSE);
SetImmortal(oNPC, FALSE);
SetLootable(oNPC, FALSE);
//:: Clear Actions & run away
ClearAllActions();
ActionMoveAwayFromObject(oAttacker, TRUE, 300.0f);
//:: Destroy ourselves after fleeing the scene
DelayCommand(10.0f, DestroyObject(oNPC));
}
//:: Execute the CODI NPC OnHeartbeat script
ExecuteScript("no_ai_hrt", oNPC);
//:: Execute the default NPC OnHeartbeat script
//ExecuteScript("nw_c2_default1", oNPC);
//:: Execute the PRC NPC OnHeartbeat script
ExecuteScript("prc_npc_hb", oNPC);
}