Kamikaze zombie

What It Does
Creates a zombie that explodes within a certain range of the PC and when killed inflicting 2*d10 damage. Kill before they get too close!

Note
The following go on a normal Zombie

The Script, Part 1
OnHeartbeat

//:://///////////////////////////////////////////// //:: Default: On Spawn In //:: oc_kz_DEFAULT9 //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /*   Determines the course of action to be taken after having just been spawned in //::////////////////////////////////////////////// //:: Created By: Preston Watamaniuk //:: Created On: Oct 25, 2001 //::////////////////////////////////////////////// void main { // OPTIONAL BEHAVIORS (Comment In or Out to Activate ) **************************************************************************** //SetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION); //SetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION); // This causes the creature to say a special greeting in their conversation file // upon Perceiving the player. Attach the [NW_D2_GenCheck.nss] script to the desired // greeting in order to designate it. As the creature is actually saying this to               // himself, don't attach any player responses to the greeting. //SetSpawnInCondition(NW_FLAG_SHOUT_ATTACK_MY_TARGET); // This will set the listening pattern on the NPC to attack when allies call //SetSpawnInCondition(NW_FLAG_STEALTH); // If the NPC has stealth and they are a rogue go into stealth mode //SetSpawnInCondition(NW_FLAG_SEARCH); // If the NPC has Search go into Search Mode //SetSpawnInCondition(NW_FLAG_SET_WARNINGS); // This will set the NPC to give a warning to non-enemies before attacking //SetSpawnInCondition(NW_FLAG_SLEEP); //Creatures that spawn in during the night will be asleep. //SetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING); //SetSpawnInCondition(NW_FLAG_APPEAR_SPAWN_IN_ANIMATION); //SetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS); //SetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS); //This will play Ambient Animations until the NPC sees an enemy or is cleared. //NOTE that these animations will play automatically for Encounter Creatures. // NOTE: ONLY ONE OF THE FOLOOWING ESCAPE COMMANDS SHOULD EVER BE ACTIVATED AT ANY ONE TIME. //SetSpawnInCondition(NW_FLAG_ESCAPE_RETURN);   // OPTIONAL BEHAVIOR (Flee to a way point and return a short time later.) //SetSpawnInCondition(NW_FLAG_ESCAPE_LEAVE);    // OPTIONAL BEHAVIOR (Flee to a way point and do not return.) //SetSpawnInCondition(NW_FLAG_TELEPORT_LEAVE);  // OPTIONAL BEHAVIOR (Teleport to safety and do not return.) //SetSpawnInCondition(NW_FLAG_TELEPORT_RETURN); // OPTIONAL BEHAVIOR (Teleport to safety and return a short time later.) // CUSTOM USER DEFINED EVENTS /*   The following settings will allow the user to fire one of the blank user defined events in the NW_D2_DefaultD. Like the On Spawn In script this script is meant to be customized by the end user to allow for unique behaviors. The user defined events user 1000 - 1010 SetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT);       //OPTIONAL BEHAVIOR - Fire User Defined Event 1001 //SetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT);        //OPTIONAL BEHAVIOR - Fire User Defined Event 1002 //SetSpawnInCondition(NW_FLAG_ATTACK_EVENT);          //OPTIONAL BEHAVIOR - Fire User Defined Event 1005 //SetSpawnInCondition(NW_FLAG_DAMAGED_EVENT);         //OPTIONAL BEHAVIOR - Fire User Defined Event 1006 //SetSpawnInCondition(NW_FLAG_DISTURBED_EVENT);       //OPTIONAL BEHAVIOR - Fire User Defined Event 1008 SetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT); //OPTIONAL BEHAVIOR - Fire User Defined Event 1003 //SetSpawnInCondition(NW_FLAG_ON_DIALOGUE_EVENT);     //OPTIONAL BEHAVIOR - Fire User Defined Event 1004 SetSpawnInCondition(NW_FLAG_DEATH_EVENT);           //OPTIONAL BEHAVIOR - Fire User Defined Event 1007 // DEFAULT GENERIC BEHAVIOR (DO NOT TOUCH) ***************************************************************************************** SetListeningPatterns;   // Goes through and sets up which shouts the NPC will listen to. WalkWayPoints;          // Optional Parameter: void WalkWayPoints(int nRun = FALSE, float fPause = 1.0) // 1. Looks to see if any Way Points in the module have the tag "WP_" + NPC TAG + "_0X", if so walk them // 2. If the tag of the Way Point is "POST_" + NPC TAG the creature will return this way point after //   combat. GenerateNPCTreasure;    //* Use this to create a small amount of treasure on the creature }
 * 1) include "NW_O2_CONINCLUDE"
 * 2) include "NW_I0_GENERIC"

The Script, Part 2
OnUserDefined

//:://///////////////////////////////////////////// //:: Name Kamikaze Zombies User Defined //:: Copyright (c) 2001 Bioware Corp. //::////////////////////////////////////////////// /*  Causes the zombies to walk towards the PC, explode and cause damage. //::////////////////////////////////////////////// //:: Created By: //:: Created On: //::////////////////////////////////////////////// void main {   int nUser = GetUserDefinedEventNumber; if(nUser == 1001) //HEARTBEAT {      object oPC = GetFirstPC; if (GetDistanceBetween(OBJECT_SELF, oPC) <= 5.0f) {      ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), OBJECT_SELF); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d10(2), DAMAGE_TYPE_FIRE, DAMAGE_POWER_NORMAL), oPC); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectDeath(TRUE, TRUE), OBJECT_SELF); }   }    else if(nUser == 1002) // PERCEIVE {   }    else if(nUser == 1003) // END OF COMBAT {      }    else if(nUser == 1004) // ON DIALOGUE {   }    else if(nUser == 1005) // ATTACKED {   }    else if(nUser == 1006) // DAMAGED {   }    else if(nUser == 1007) // DEATH {     {       ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectVisualEffect(VFX_FNF_FIREBALL), OBJECT_SELF); ApplyEffectToObject(DURATION_TYPE_INSTANT, EffectDamage(d12(2), DAMAGE_TYPE_FIRE, DAMAGE_POWER_NORMAL), GetNearestObject(OBJECT_TYPE_CREATURE)); ApplyEffectToObject(DURATION_TYPE_PERMANENT, EffectDeath(TRUE, TRUE), OBJECT_SELF); }   }    else if(nUser == 1008) // DISTURBED {   } }

Enhancements
Affect everyone within a certain range rather than the nearest creature and first PC. I can't work out how to do this so you're welcome to try!