//:://///////////////////////////////////////////// //:: On Spawn In //:: //::////////////////////////////////////////////// /* Determines the course of action to be taken after having just been spawned in */ //::////////////////////////////////////////////// #include "no_lib_data" #include "no_inc" #include "nw_o2_coninclude" void main() { //Behaviour config AddBehaviour( "+HEALSELF", 100 ); AddBehaviour( "+REGROUP", 80 ); AddBehaviour( "+FLANK", 20 ); AddBehaviour( "+SUMMON", 40 ); AddBehaviour( "+RAISE", 60 ); AddBehaviour( "+GROUPHEAL", 60 ); AddBehaviour( "+HELP", 60 ); AddBehaviour( "+HEAL", 60 ); AddBehaviour( "+VIS", 60 ); AddBehaviour( "+DEFSELF", 40 ); AddBehaviour( "+DEFSING", 40 ); AddBehaviour( "+GROUPENHANCE", 40 ); AddBehaviour( "+ENHANCESING", 40 ); AddBehaviour( "+ENHANCESELF", 40 ); AddBehaviour( "+FEATENHANCE", 40 ); AddBehaviour( "+DISPEL", 40 ); AddBehaviour( "+DISPELAOE", 40 ); AddBehaviour( "+DISMISSAL", 40 ); AddBehaviour( "+TURN", 40 ); AddBehaviour( "+AREA", 40 ); AddBehaviour( "+DIRECT", 40 ); AddBehaviour( "+TOUCH", 40 ); AddBehaviour( "+EVACAOE", 50 ); AddBehaviour( "+ATKMELEE", 100 ); //Other config //Corpse decay set up and exclusions /* if ( GetRacialType( OBJECT_SELF ) != RACIAL_TYPE_UNDEAD && GetStringLeft( GetTag( OBJECT_SELF ), 6 ) != "NO_AI_" && GetName( GetItemInSlot( INVENTORY_SLOT_CARMOUR, OBJECT_SELF ) ) != "Gargoyle Properties" ) { //not summoned, not undead, default decay time SetIsDestroyable( FALSE, TRUE, TRUE ); SetLocalFloat( OBJECT_SELF, "#DECAYDELAY", 60.0 ); //default corpse decay time } */ /* SetListening( OBJECT_SELF, TRUE ); SetListenPattern( OBJECT_SELF, "BC_DEAD", 691 ); SetListenPattern( OBJECT_SELF, "BC_FIGHTING", 699 ); */ if ( GetName( GetItemInSlot( INVENTORY_SLOT_CARMOUR, OBJECT_SELF ) ) == "Balor Properties" ) { SetLocalInt( OBJECT_SELF, "BALORDEATH", 1 ); } if ( GetRacialType( OBJECT_SELF ) == RACIAL_TYPE_DRAGON ) { SetLocalInt( OBJECT_SELF, "FLIER", 1 ); } if ( GetIsObjectValid( GetMaster( OBJECT_SELF ) ) ) { //I am probably a summoned creature, possibly a henchman SetAssociateListenPatterns(); } //set voice chat config SetVoiceChat( NO_VC_DEFAULT, 10 ); //configure perception ranges SetPerceptionRanges(); //set response range for fighting broadcast SetResponseRange( BC_FIGHTING, 50.0 ); //tell creature it is ready to act //SetReadyStatus(); //set fastbuffer status, should always be left on SetIsFastBuffer( TRUE ); //SetLocalInt( OBJECT_SELF, "#FASTBUFFER", 1 ); //log starting location ExecuteScript( "no_scr_logspnloc", OBJECT_SELF ); //log loaded melee weapons ExecuteScript( "no_scr_logeq", OBJECT_SELF ); // 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); SetAnimationCondition(NW_ANIM_FLAG_IS_CIVILIZED); SetAnimationCondition(NW_ANIM_FLAG_CONSTANT); SetAnimationCondition(NW_ANIM_FLAG_CHATTER); SetAnimationCondition(NW_ANIM_FLAG_IS_MOBILE_CLOSE_RANGE); //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 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 //FIGHT_OR_FLIGHT: Added a comment-out feature to set a local //int on creatures to signal FIGHT_OR_FLIGHT. Disable this //function by commenting it out. Only affects non-undead, //non-dominated creatures with int > 5, CR or HD < 5, and //no fear-specific feats. ExecuteScript("fof_set",OBJECT_SELF); //FIGHT_OR_FLIGHT:: A comment-in feature for leaders, works with //the morale system. Creatures fleeing will look for a leader in //range, then rally to him. If no leader and no other rallying //point, they will run away rather willy-nilly. //SetLocalInt(OBJECT_SELF,"I_AM_A_LEADER",1); ExecuteScript("ss_treasure",OBJECT_SELF); DelayCommand(2.5,ExecuteScript("ss_treas_auto_on",OBJECT_SELF)); // if a creature and set to toss load up the variables. if (GetObjectType(OBJECT_SELF) == OBJECT_TYPE_CREATURE) { if(GetLocalInt(OBJECT_SELF,"ss_t_toss") > 0) DelayCommand(0.3,ExecuteScript("ss_treas_loot1",OBJECT_SELF)); } }