Fixed CCOH, Fixed starting GP, Fixed DMFI languages, Fix cep weapon appearances, Fixed new player start up system. Added PC deleter. Added ACP 4.1. Full compile. Updated release archive.
119 lines
4.9 KiB
Plaintext
119 lines
4.9 KiB
Plaintext
//::///////////////////////////////////////////////
|
|
//:: Associate: On Spawn In
|
|
//:: NW_CH_AC9
|
|
//:: Copyright (c) 2001 Bioware Corp.
|
|
//:://////////////////////////////////////////////
|
|
/*
|
|
|
|
2007-12-31: Deva Winblood
|
|
Modified to look for X3_HORSE_OWNER_TAG and if
|
|
it is defined look for an NPC with that tag
|
|
nearby or in the module (checks near first).
|
|
It will make that NPC this horse's master.
|
|
|
|
*/
|
|
//:://////////////////////////////////////////////
|
|
//:: Created By: Preston Watamaniuk
|
|
//:: Created On: Nov 19, 2001
|
|
//:://////////////////////////////////////////////
|
|
|
|
#include "X0_INC_HENAI"
|
|
|
|
void main()
|
|
{
|
|
string sTag;
|
|
object oNPC;
|
|
SetAssociateListenPatterns();//Sets up the special henchmen listening patterns
|
|
|
|
bkSetListeningPatterns(); // Goes through and sets up which shouts the NPC will listen to.
|
|
|
|
SetAssociateState(NW_ASC_POWER_CASTING);
|
|
SetAssociateState(NW_ASC_HEAL_AT_50);
|
|
SetAssociateState(NW_ASC_RETRY_OPEN_LOCKS);
|
|
SetAssociateState(NW_ASC_DISARM_TRAPS);
|
|
SetAssociateState(NW_ASC_MODE_DEFEND_MASTER, FALSE);
|
|
SetAssociateState(NW_ASC_USE_RANGED_WEAPON, FALSE); //User ranged weapons by default if true.
|
|
SetAssociateState(NW_ASC_DISTANCE_2_METERS);
|
|
|
|
// April 2002: Summoned monsters, associates and familiars need to stay
|
|
// further back due to their size.
|
|
int nType = GetAssociateType(OBJECT_SELF);
|
|
switch (nType)
|
|
{
|
|
case ASSOCIATE_TYPE_ANIMALCOMPANION:
|
|
case ASSOCIATE_TYPE_DOMINATED:
|
|
case ASSOCIATE_TYPE_FAMILIAR:
|
|
case ASSOCIATE_TYPE_SUMMONED:
|
|
SetAssociateState(NW_ASC_DISTANCE_4_METERS);
|
|
break;
|
|
|
|
}
|
|
sTag=GetLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
|
|
if (GetStringLength(sTag)>0)
|
|
{ // look for master
|
|
oNPC=GetNearestObjectByTag(sTag);
|
|
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
|
|
{ // master found
|
|
AddHenchman(oNPC);
|
|
} // master found
|
|
else
|
|
{ // look in module
|
|
oNPC=GetObjectByTag(sTag);
|
|
if (GetIsObjectValid(oNPC)&&GetObjectType(oNPC)==OBJECT_TYPE_CREATURE)
|
|
{ // master found
|
|
AddHenchman(oNPC);
|
|
} // master found
|
|
else
|
|
{ // master does not exist - remove X3_HORSE_OWNER_TAG
|
|
DeleteLocalString(OBJECT_SELF,"X3_HORSE_OWNER_TAG");
|
|
} // master does not exist - remove X3_HORSE_OWNER_TAG
|
|
} // look in module
|
|
} // look for master
|
|
/* if (GetAssociate(ASSOCIATE_TYPE_ANIMALCOMPANION, GetMaster()) == OBJECT_SELF ||
|
|
GetAssociate(ASSOCIATE_TYPE_DOMINATED, GetMaster()) == OBJECT_SELF ||
|
|
GetAssociate(ASSOCIATE_TYPE_FAMILIAR, GetMaster()) == OBJECT_SELF ||
|
|
GetAssociate(ASSOCIATE_TYPE_SUMMONED, GetMaster()) == OBJECT_SELF)
|
|
{
|
|
SetAssociateState(NW_ASC_DISTANCE_4_METERS);
|
|
}
|
|
*/
|
|
// * Feb 2003: Set official campaign henchmen to have no inventory
|
|
SetLocalInt(OBJECT_SELF, "X0_L_NOTALLOWEDTOHAVEINVENTORY", 10) ;
|
|
|
|
//SetAssociateState(NW_ASC_MODE_DEFEND_MASTER);
|
|
SetAssociateStartLocation();
|
|
// SPECIAL CONVERSATION SETTTINGS
|
|
//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.
|
|
|
|
|
|
// 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_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
|
|
|
|
//DMFI CODE ADDITIONS BEGIN HERE
|
|
SetListening(OBJECT_SELF, TRUE);
|
|
SetListenPattern(OBJECT_SELF, "**", 20600); //listen to all text
|
|
SetLocalInt(OBJECT_SELF, "hls_Listening", 1); //listen to all text
|
|
//DMFI CODE ADDITIONS END HERE
|
|
|
|
|
|
|
|
}
|
|
|
|
|