Re-uploaded instead of migrated

Re-uploaded instead of migrated.
This commit is contained in:
Jaysyn904
2024-08-03 15:05:13 -04:00
parent 53776f5b96
commit defc8f9f6d
934 changed files with 643472 additions and 0 deletions

View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName 1spokentooldman
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/26/2002 8:07:31 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "nspokentooldman", 1);
}

View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName 1spokentoprimnpc
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/26/2002 8:20:37 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "nspokentoprimarynpc", 1);
}

View File

@@ -0,0 +1,34 @@
//::///////////////////////////////////////////////
//:: General Treasure Spawn Script Medium
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Spawns in general purpose treasure, usable
by all classes.
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: February 26 2001
//:: Modified by: Dalantriel Jul 2002
//:: to generate respawning treasure
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
void main()
{
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
object oLastOpener = GetLastOpener();
GenerateMediumTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
int nGoldAmount = (d100() * 2) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldAmount);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ActionWait(600.0);
ActionDoCommand(SetLocalInt(OBJECT_SELF, "NW_DO_ONCE", 0));
ShoutDisturbed();
}

View File

@@ -0,0 +1,35 @@
//::///////////////////////////////////////////////
//:: General Treasure Spawn Script HIGH
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Spawns in general purpose treasure, usable
by all classes.
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: February 26 2001
//:: Modified by: Dalantriel Jul 2002
//:: to generate respawning treasure
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
void main()
{
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
object oLastOpener = GetLastOpener();
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("MagicTres", OBJECT_SELF);
ExecuteScript("MagicTres", OBJECT_SELF);
int nGoldAmount = (d100() * 3) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldAmount);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ActionWait(600.0);
ActionDoCommand(SetLocalInt(OBJECT_SELF, "NW_DO_ONCE", 0));
ShoutDisturbed();
}

View File

@@ -0,0 +1,38 @@
//::///////////////////////////////////////////////
//:: General Treasure Spawn Script HIGH
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Spawns in general purpose treasure, usable
by all classes.
*/
//:://////////////////////////////////////////////
//:: Created By: Brent
//:: Created On: February 26 2001
//:: Modified by: Dalantriel Jul 2002
//:: to generate respawning treasure
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
void main()
{
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
object oLastOpener = GetLastOpener();
GenerateMediumTreasure(oLastOpener, OBJECT_SELF);
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
int nGoldAmount = (d100() * 5) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldAmount);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ActionWait(600.0);
ActionDoCommand(SetLocalInt(OBJECT_SELF, "NW_DO_ONCE", 0));
ShoutDisturbed();
}

View File

@@ -0,0 +1,13 @@
// * script: can_pay100
// * Does the PC have 100 gp?
// Use in [Text Appears When] tab of PC hiring dialog line.
#include "NW_I0_PLOT"
int StartingConditional()
{
return (HasGold(150,GetPCSpeaker()));
}

16
_module/nss/altaris1.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName altaris1
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 8/13/2002 10:30:28 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(GetPCSpeaker(), "nTouchedAltar") == 1))
return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,6 @@
void main()
{
string smessage = "The altar is cool to the touch and is definately not made of marble.\nPerhaps someone with knowledge of stonework may be able to shed more light on this.";
SpeakString(smessage, TALKVOLUME_TALK);
SetLocalInt(GetLastUsedBy(), "nTouchedAltar", 1);
}

13
_module/nss/at_001.nss Normal file
View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName at_001
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/23/2002 2:03:52 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "spokentoguard", 1);
}

13
_module/nss/at_002.nss Normal file
View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName at_002
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/23/2002 2:43:12 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "spokentoguard", 2);
}

13
_module/nss/at_003.nss Normal file
View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName at_003
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/23/2002 2:56:18 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "spokentoprimarynpc", 2);
}

16
_module/nss/at_004.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName at_004
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/1/2002 11:15:36 PM
//:://////////////////////////////////////////////
#include "nw_i0_generic"
void main()
{
// Set the faction to hate the player, then attack the player
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetPCSpeaker());
}

10
_module/nss/at_005.nss Normal file
View File

@@ -0,0 +1,10 @@
//::///////////////////////////////////////////////
//:: FileName at_005
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/20/2002 11:32:10 PM
//:://////////////////////////////////////////////
void main()
{
}

13
_module/nss/at_006.nss Normal file
View File

@@ -0,0 +1,13 @@
//::///////////////////////////////////////////////
//:: FileName at_006
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/20/2002 11:32:10 PM
//:://////////////////////////////////////////////
void main()
{
// Set the variables
SetLocalInt(GetPCSpeaker(), "nBattleStrength", 5);
}

View File

@@ -0,0 +1,14 @@
#include "nw_i0_tool"
void main()
{
object oPC = GetPCSpeaker();
RewardPartyXP(6000, oPC, FALSE);
string sTag=GetTag(OBJECT_SELF);
SetLocalInt(oPC, sTag, 1);
}

View File

@@ -0,0 +1,9 @@
void main()
{
object oPC=GetPCSpeaker();
string sTag=GetTag(OBJECT_SELF);
SetLocalInt(oPC, sTag, 1);
}

View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName attackbeguncheck
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/23/2002 7:37:15 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nAttackStarted") == 0))
return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,81 @@
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_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
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
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(2); //* Use this to create a small amount of treasure on the creature
// Modified by: Dalantriel Jul 2002
// Attack outpost
ActionAttack(GetObjectByTag("pcbanner001"));
}

View File

@@ -0,0 +1,82 @@
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_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
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
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(2); //* Use this to create a small amount of treasure on the creature
// Modified by: Dalantriel Jul 2002
// Attack outpost
ActionAttack(GetObjectByTag("pcbanner002"));
}

View File

@@ -0,0 +1,82 @@
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_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
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
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(2); //* Use this to create a small amount of treasure on the creature
// Modified by: Dalantriel Jul 2002
// Attack outpost
ActionAttack(GetObjectByTag("pcbanner003"));
}

View File

@@ -0,0 +1,101 @@
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_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
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
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(2); //* Use this to create a small amount of treasure on the creature
// Modified by: Dalantriel Jul 2002
// Attack outpost
// But from either direction with equal chance
int npathchoice = d100();
if(npathchoice < 51)
{
ActionMoveToObject(GetObjectByTag("ai_horde000"));
ActionMoveToObject(GetObjectByTag("ai_horde001"));
ActionMoveToObject(GetObjectByTag("ai_horde002"));
ActionMoveToObject(GetObjectByTag("ai_horde004"));
ActionMoveToObject(GetObjectByTag("ai_horde005"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde000"));
ActionMoveToObject(GetObjectByTag("ai_horde001"));
ActionMoveToObject(GetObjectByTag("ai_horde003"));
ActionMoveToObject(GetObjectByTag("ai_horde006"));
ActionMoveToObject(GetObjectByTag("ai_horde005"));
}
ActionAttack(GetObjectByTag("pcbanner004"));
}

View File

@@ -0,0 +1,82 @@
//::///////////////////////////////////////////////
//:: Default: On Spawn In
//:: NW_C2_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
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
#include "NW_I0_GENERIC"
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(2); //* Use this to create a small amount of treasure on the creature
// Modified by: Dalantriel Jul 2002
// Attack outpost
ActionAttack(GetObjectByTag("pcbanner005"));
}

View File

@@ -0,0 +1,16 @@
/*
Calculate the remaining hitpoints of each gate
Created By: Dalantriel Jul 22, 2002
*/
void main()
{
// Set the variables
int nTempleGate = (GetCurrentHitPoints(GetObjectByTag("TempleGate")));
int nNorthGate = (GetCurrentHitPoints(GetObjectByTag("NorthGate")));
int nSouthGate = (GetCurrentHitPoints(GetObjectByTag("SouthGate")));
SetLocalInt(OBJECT_SELF, "nTempleGateStrength", nTempleGate);
SetLocalInt(OBJECT_SELF, "nNorthGateStrength", nNorthGate);
SetLocalInt(OBJECT_SELF, "nSouthGateStrength", nSouthGate);
}

View File

@@ -0,0 +1,55 @@
/*
Calculate the nBattleProgress variable and asign it to the scout
nHordestrength is determined by the number of Horde banners that exist
Created By: Dalantriel Jul 22, 2002
*/
void main()
{
// Set the variables
int nHordestrength = 0;
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster1")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster2")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster3")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster4")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster5")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster6")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster7")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster8")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster9")) >> 0)
{
nHordestrength++;
}
if(GetCurrentHitPoints(GetObjectByTag("spawnmaster10")) >> 0)
{
nHordestrength++;
}
SetLocalInt(OBJECT_SELF, "nBattleProgress", nHordestrength);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onaquire", OBJECT_SELF);
ExecuteScript("x2_mod_def_aqu", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onactivate", OBJECT_SELF);
ExecuteScript("x2_mod_def_act", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_ondeath", OBJECT_SELF);
ExecuteScript("nw_o0_death", OBJECT_SELF);
}

View File

@@ -0,0 +1,6 @@
void main()
{
ExecuteScript("prc_ondying", OBJECT_SELF);
ExecuteScript("nw_o0_dying", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_equip", OBJECT_SELF);
ExecuteScript("x2_mod_def_equ", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onheartbeat", OBJECT_SELF);
ExecuteScript("x3_mod_def_hb", OBJECT_SELF);
}

View File

@@ -0,0 +1,4 @@
void main()
{
ExecuteScript("prc_levelup", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onenter", OBJECT_SELF);
ExecuteScript("onenter", OBJECT_SELF);
}

View File

@@ -0,0 +1,4 @@
void main()
{
ExecuteScript("prc_onleave", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onmodload", OBJECT_SELF);
ExecuteScript("horde_onmodload", OBJECT_SELF);
}

View File

@@ -0,0 +1,6 @@
void main()
{
ExecuteScript("prc_onrespawn", OBJECT_SELF);
ExecuteScript("resshrine", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_rest", OBJECT_SELF);
ExecuteScript("x2_mod_def_rest", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onunaquire", OBJECT_SELF);
ExecuteScript("x2_mod_def_unaqu", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_unequip", OBJECT_SELF);
ExecuteScript("x2_mod_def_unequ", OBJECT_SELF);
}

View File

@@ -0,0 +1,5 @@
void main()
{
ExecuteScript("prc_onuserdef", OBJECT_SELF);
ExecuteScript("x2_def_userdef", OBJECT_SELF);
}

View File

@@ -0,0 +1,10 @@
//:: FileName can_pay100
// Does the PC have 100 gp to pay?
#include "NW_I0_PLOT"
int StartingConditional()
{
return (HasGold(100,GetPCSpeaker()));
}

View File

@@ -0,0 +1,10 @@
//:: FileName can_pay200
// Does the PC have 200 gp to pay?
#include "NW_I0_PLOT"
int StartingConditional()
{
return (HasGold(200,GetPCSpeaker()));
}

View File

@@ -0,0 +1,39 @@
//::///////////////////////////////////////////////
//:: Default: End of Combat Round
//:: NW_C2_DEFAULT3
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Calls the end of combat script every round
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 16, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
{
DetermineSpecialBehavior();
}
else if(!GetSpawnInCondition(NW_FLAG_SET_WARNINGS))
{
DetermineCombatRound();
}
if(GetSpawnInCondition(NW_FLAG_END_COMBAT_ROUND_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1003));
}
// Modified by: Dalantriel Jul 22, 2002
// If interrupted by combat, this initiates Waypoints to keep Creature moving
if(!GetIsInCombat())
{
WalkWayPoints();
}
}

25
_module/nss/debug.nss Normal file
View File

@@ -0,0 +1,25 @@
void main()
{
int nScaleFactor = GetLocalInt(GetObjectByTag("TrashCan"), "nDifficultylevel");
if (nScaleFactor == 0)
{
SpeakString("0", TALKVOLUME_TALK);
}
if (nScaleFactor == 1)
{
SpeakString("1", TALKVOLUME_TALK);
}
if (nScaleFactor == 2)
{
SpeakString("2", TALKVOLUME_TALK);
}
if (nScaleFactor == 3)
{
SpeakString("3", TALKVOLUME_TALK);
}
if (nScaleFactor == 4)
{
SpeakString("4", TALKVOLUME_TALK);
}
}

34
_module/nss/doorbash.nss Normal file
View File

@@ -0,0 +1,34 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULTE
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This will cause blocked creatures to open
or smash down doors depending on int and
str.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:: Modified By: Dalantriel Jul 2002
//:://////////////////////////////////////////////
void main()
{
object oDoor = GetBlockingDoor();
if(GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 3)
{
// Modified INT requirement to 20 to ensure no Horde creature can open doors
if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_OPEN) && GetAbilityScore(OBJECT_SELF, ABILITY_INTELLIGENCE) >= 20 )
{
DoDoorAction(oDoor, DOOR_ACTION_OPEN);
}
else if(GetIsDoorActionPossible(oDoor, DOOR_ACTION_BASH))
{
ActionEquipMostDamagingMelee();
DoDoorAction(oDoor, DOOR_ACTION_BASH);
}
}
}

15
_module/nss/expatend.nss Normal file
View File

@@ -0,0 +1,15 @@
//::///////////////////////////////////////////////
//:: FileName expatend
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/20/2002 8:37:25 PM
//:://////////////////////////////////////////////
void main()
{
// Give the speaker some XP
GiveXPToCreature(GetPCSpeaker(), 1000);
SetLocalInt(GetPCSpeaker(), "nWarlordDead", 2);
}

View File

@@ -0,0 +1,23 @@
//:: FileName henchman_joins
// Henchman joins PC, booting other henchman if necessary
#include "nw_i0_henchman"
void main()
{
if (GetIsObjectValid(GetHenchman(GetPCSpeaker())) == TRUE)
{ SetFormerMaster(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
object oHench = GetHenchman(GetPCSpeaker());
RemoveHenchman(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
AssignCommand(oHench, ClearAllActions());
}
SetWorkingForPlayer(GetPCSpeaker());
SetBeenHired();
ExecuteScript("NW_CH_JOIN", OBJECT_SELF);
SetLocalInt(GetObjectByTag("TownGuardintro2"), "nConversation", 4);
}

30
_module/nss/finalloot.nss Normal file
View File

@@ -0,0 +1,30 @@
//::///////////////////////////////////////////////
/*
Spawns in alot of magical loot for evil temple altar once only
Modified by: Dalantriel Jul 2002
*/
#include "NW_O2_CONINCLUDE"
void main()
{
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
object oLastOpener = GetLastOpener();
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
int nGoldAmount = (d100() * 8) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldAmount);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}

View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName finishedhorde
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/21/2002 11:33:58 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(GetPCSpeaker(), "nWarlordDead") == 2))
return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,118 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
// Announce attacks on gates
if(GetLocalInt(OBJECT_SELF, "nTempleGate") > 0)
{
SpeakString("Scout Report: Temple Gate under attack!", TALKVOLUME_SHOUT);
SetLocalInt(OBJECT_SELF, "nTempleGate", 0);
}
if(GetLocalInt(OBJECT_SELF, "nNorthGate") > 0)
{
SpeakString("Scout Report: North Gate under attack!", TALKVOLUME_SHOUT);
SetLocalInt(OBJECT_SELF, "nNorthGate", 0);
}
if(GetLocalInt(OBJECT_SELF, "nSouthGate") > 0)
{
SpeakString("Scout Report: South Gate under attack!", TALKVOLUME_SHOUT);
SetLocalInt(OBJECT_SELF, "nSouthGate", 0);
}
}

View File

@@ -0,0 +1,11 @@
/*
Gate Auto close script
Automatically close gates after 10 seconds
Created by: Dalantriel Jul 2002
*/
void main()
{
ActionWait(10.0);
ActionCloseDoor(OBJECT_SELF);
}

View File

@@ -0,0 +1,15 @@
//::///////////////////////////////////////////////
//:: FileName give400exp
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/26/2002 7:58:46 PM
//:://////////////////////////////////////////////
#include "nw_i0_tool"
void main()
{
// Give the speaker some XP
GiveXPToCreature(GetPCSpeaker(), 400);
}

14
_module/nss/giveitems.nss Normal file
View File

@@ -0,0 +1,14 @@
//::///////////////////////////////////////////////
//:: FileName giveitems
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/23/2002 11:15:42 PM
//:://////////////////////////////////////////////
void main()
{
// Give the speaker the items
CreateItemOnObject("nw_it_medkit001", GetPCSpeaker(), 1);
CreateItemOnObject("nw_it_medkit002", GetPCSpeaker(), 1);
}

View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName goblinattack
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 8/13/2002 9:39:39 PM
//:://////////////////////////////////////////////
#include "nw_i0_generic"
void main()
{
// Set the faction to hate the player, then attack the player
AdjustReputation(GetPCSpeaker(), OBJECT_SELF, -100);
DetermineCombatRound(GetPCSpeaker());
}

120
_module/nss/goblinfarm.nss Normal file
View File

@@ -0,0 +1,120 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
object oPrimaryNPC = GetObjectByTag("Henrick");
int nWarlorddead = GetLocalInt(oPrimaryNPC, "nWarlordDead");
int nSpokentoGoblin = GetLocalInt(OBJECT_SELF, "nSpokentoGoblin");
if (nWarlorddead > 0)
{
if (nSpokentoGoblin < 1)
{
string smessage = "Pleez no kill. I no bad. I good, ya.";
SpeakString(smessage, TALKVOLUME_TALK);
}
if (nSpokentoGoblin == 2)
{
string smessage = "Yay Yay! Minschank is free! Free to go home.";
SpeakString(smessage, TALKVOLUME_TALK);
}
}
}

View File

@@ -0,0 +1,18 @@
//::///////////////////////////////////////////////
//:: FileName finishedhorde
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/21/2002 11:33:58 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
object oTrashCan = GetObjectByTag("TrashCan");
if(!(GetLocalInt(oTrashCan, "nGoodNPCDead") > 0))
return FALSE;
return TRUE;
}

View File

@@ -0,0 +1,95 @@
//::///////////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Shouts to allies that they have been killed
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
{
object oKiller = GetLastKiller();
AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
}
SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);
//Shout Attack my target, only works with the On Spawn In setup
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1007));
}
// Modified By: Dalantriel Jul 22, 2002
// Raze the temple if killed by a non-PC
object oKiller = GetLastKiller();
if(!(GetIsPC(oKiller)))
{
DestroyObject(GetObjectByTag("FloorDesignsStyletemple"));
DestroyObject(GetObjectByTag("AltarShrineGoodHelm"));
location loc = GetLocation(GetObjectByTag("ai_horde018"));
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
object oflame = GetObjectByTag("POST_TownGuard001");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("POST_TownGuard002");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("POST_TownGuard009");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("POST_wardog");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("POST_Henrick");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
SoundObjectStop(GetObjectByTag("templefountain"));
SoundObjectPlay(GetObjectByTag("FireTemple1"));
SoundObjectPlay(GetObjectByTag("FireTemple2"));
// Add evil effects
loc = GetLocation(GetObjectByTag("centreofgood"));
CreateObject(OBJECT_TYPE_PLACEABLE, "unholylight", loc, TRUE);
CreateObject(OBJECT_TYPE_PLACEABLE, "unholyfloor", loc, TRUE);
// Set Good NPC to dead and add Journal Entry
object oTrashCan = GetObjectByTag("TrashCan");
SetLocalInt(oTrashCan, "nGoodNPCDead", 1);
AddJournalQuestEntry("Category000", 9, GetFirstPC(), TRUE, TRUE);
}
// Else add PC killed Henrick to Journal
else
{
AddJournalQuestEntry("Category000", 8, GetFirstPC(), TRUE, TRUE);
}
// Set Good NPC to dead and add Journal Entry
object oTrashCan = GetObjectByTag("TrashCan");
SetLocalInt(oTrashCan, "nGoodNPCDead", 1);
}

151
_module/nss/hbrove1.nss Normal file
View File

@@ -0,0 +1,151 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
// Modified By: Dalantriel Jul 22, 2002
// If a PC Banner exists at this outpost destroy it, otherwise move to it
if(GetCurrentHitPoints(GetObjectByTag("pcbanner009")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner009"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner006")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner006"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner007")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner007"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner008")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner008"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner010")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner010"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner003")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner003"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner004")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner004"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner005")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner005"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner001")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner001"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner002")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner002"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde018"));
}
}

View File

@@ -0,0 +1,131 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
// Modified By: Dalantriel Jul 22, 2002
// If a PC Banner exists at this outpost destroy it, otherwise move to it
if(GetCurrentHitPoints(GetObjectByTag("pcbanner003")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner003"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner004")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner004"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner005")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner005"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner001")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner001"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner002")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner002"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde018"));
}
}

151
_module/nss/hbrove2.nss Normal file
View File

@@ -0,0 +1,151 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
// Modified By: Dalantriel Jul 22, 2002
// If a PC Banner exists at this outpost destroy it, otherwise move to it
if(GetCurrentHitPoints(GetObjectByTag("pcbanner010")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner010"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner008")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner008"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner007")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner007"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner006")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner006"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner009")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner009"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner005")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner005"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner004")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner004"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner003")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner003"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner002")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner002"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner001")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner001"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde018"));
}
}

View File

@@ -0,0 +1,131 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
// Modified By: Dalantriel Jul 22, 2002
// If a PC Banner exists at this outpost destroy it, otherwise move to it
if(GetCurrentHitPoints(GetObjectByTag("pcbanner005")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner005"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner004")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner004"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner003")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner003"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner002")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner002"));
}
else if(GetCurrentHitPoints(GetObjectByTag("pcbanner001")) > 0)
{
ActionAttack(GetObjectByTag("pcbanner001"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde018"));
}
}

View File

@@ -0,0 +1,13 @@
// Healing Shrine Script
// July 2002
// By Dalantriel
// Casts Heal on Player if their hit points are not at maximum
void main()
{
object oPC = GetLastUsedBy();
if (GetCurrentHitPoints(oPC) < GetMaxHitPoints(oPC))
{
ActionCastSpellAtObject (SPELL_HEAL, oPC, METAMAGIC_ANY, TRUE, 1, PROJECTILE_PATH_TYPE_DEFAULT, FALSE);
}
}

View File

@@ -0,0 +1,12 @@
//::///////////////////////////////////////////////
//:: FileName hellfreezesover
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/20/2002 2:47:53 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
return TRUE;
}

22
_module/nss/henchjoin.nss Normal file
View File

@@ -0,0 +1,22 @@
// * script: henchman_joins
// * NPC Henchman joins PC, replacing other henchman if necessary.
// Use in [Actions Taken] tab of henchman's joining dialog line.
#include "nw_i0_henchman"
void main()
{
if (GetIsObjectValid(GetHenchman(GetPCSpeaker())) == TRUE)
{ SetFormerMaster(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
object oHench = GetHenchman(GetPCSpeaker());
RemoveHenchman(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
AssignCommand(oHench, ClearAllActions());
}
SetWorkingForPlayer(GetPCSpeaker());
SetBeenHired();
ExecuteScript("NW_CH_JOIN", OBJECT_SELF);
}

View File

@@ -0,0 +1,14 @@
// * script: henchman_leaves
// * NPC Henchman leaves PC.
// * Use in [Actions Taken] tab of henchman's departing dialog line.
#include "nw_i0_henchman"
void main()
{
SetFormerMaster(GetPCSpeaker(), OBJECT_SELF);
RemoveHenchman(GetPCSpeaker());
ClearAllActions();
}

View File

@@ -0,0 +1,19 @@
//:: FileName henchman_joins
// Henchman joins PC, booting other henchman if necessary
#include "nw_i0_henchman"
void main()
{
if (GetIsObjectValid(GetHenchman(GetPCSpeaker())) == TRUE)
{ SetFormerMaster(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
object oHench = GetHenchman(GetPCSpeaker());
RemoveHenchman(GetPCSpeaker(), GetHenchman(GetPCSpeaker()));
AssignCommand(oHench, ClearAllActions());
}
SetWorkingForPlayer(GetPCSpeaker());
SetBeenHired();
ExecuteScript("NW_CH_JOIN", OBJECT_SELF);
}

View File

@@ -0,0 +1,9 @@
#include "nw_i0_henchman"
void main()
{
SetFormerMaster(GetPCSpeaker(), OBJECT_SELF);
RemoveHenchman(GetPCSpeaker());
ClearAllActions();
}

View File

@@ -0,0 +1,33 @@
/*
Spawns in general purpose treasure, some gold,
and up to 4 specific Magic Items
*/
//:://////////////////////////////////////////////
//:: Created By: Dalantriel
//:: Created On: July 22 2002
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
void main()
{
// Check if chest already opened
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
// If not, spawn in random treasures and some gold
object oLastOpener = GetLastOpener();
GenerateMediumTreasure(oLastOpener, OBJECT_SELF);
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
int nGoldPieces = (d100() * 5) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldPieces);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}

View File

@@ -0,0 +1,30 @@
/*
Spawns in general purpose treasure, some gold,
and up to 4 specific Magic Items
*/
//:://////////////////////////////////////////////
//:: Created By: Dalantriel
//:: Created On: July 22 2002
//:://////////////////////////////////////////////
#include "NW_O2_CONINCLUDE"
void main()
{
// Check if chest already opened
if (GetLocalInt(OBJECT_SELF,"NW_DO_ONCE") != 0)
{
return;
}
// If not, spawn in random treasures and some gold
object oLastOpener = GetLastOpener();
GenerateHighTreasure(oLastOpener, OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
ExecuteScript("magictres", OBJECT_SELF);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
int nGoldPieces = (d100() * 8) + d10();
CreateItemOnObject ("NW_IT_GOLD001", OBJECT_SELF, nGoldPieces);
SetLocalInt(OBJECT_SELF,"NW_DO_ONCE",1);
ShoutDisturbed();
}

View File

@@ -0,0 +1,13 @@
// prc_onenter,onenter
/////////////////////////////////////////////////////////////////////
//
// This script has been auto-generated by HakInstaller to call
// multiple handlers for the oncliententer event.
//
/////////////////////////////////////////////////////////////////////
void main()
{
ExecuteScript("prc_onenter", OBJECT_SELF);
ExecuteScript("onenter", OBJECT_SELF);
}

View File

@@ -0,0 +1,13 @@
// prc_ondeath,nw_o0_death
/////////////////////////////////////////////////////////////////////
//
// This script has been auto-generated by HakInstaller to call
// multiple handlers for the onplayerdeath event.
//
/////////////////////////////////////////////////////////////////////
void main()
{
ExecuteScript("prc_ondeath", OBJECT_SELF);
ExecuteScript("nw_o0_death", OBJECT_SELF);
}

View File

@@ -0,0 +1,13 @@
// prc_ondying,nw_o0_dying
/////////////////////////////////////////////////////////////////////
//
// This script has been auto-generated by HakInstaller to call
// multiple handlers for the onplayerdying event.
//
/////////////////////////////////////////////////////////////////////
void main()
{
ExecuteScript("prc_ondying", OBJECT_SELF);
ExecuteScript("nw_o0_dying", OBJECT_SELF);
}

View File

@@ -0,0 +1,13 @@
// prc_onrespawn,resshrine
/////////////////////////////////////////////////////////////////////
//
// This script has been auto-generated by HakInstaller to call
// multiple handlers for the onplayerrespawn event.
//
/////////////////////////////////////////////////////////////////////
void main()
{
ExecuteScript("prc_onrespawn", OBJECT_SELF);
ExecuteScript("resshrine", OBJECT_SELF);
}

View File

@@ -0,0 +1,22 @@
#include "x0_i0_partywide"
void main()
{
//:: Declare major variables
object oPC = GetEnteringObject();
string sTag = GetTag(OBJECT_SELF);
int iParty = GetNumberPartyMembers(oPC);
int iXP = GetXP(oPC);
//:: Parties larger than 2 shouldn't need a boost.
if (iParty >= 2) return;
//:: This boost is only availible to new characters
if (iXP > 0 ) return;
//:: Make sure they can only get the boost once if they are solo.
if (GetLocalInt(oPC, sTag) >= 1) return;
//ActionStartConversation(oPC, "ho_lvlup_pc", TRUE, FALSE);
BeginConversation("ho_lvlup_pc", oPC);
}

View File

@@ -0,0 +1,178 @@
//::///////////////////////////////////////////////
//:: Example XP3 OnLoad Script
//:: x3_mod_def_load
//:: (c) 2008 Bioware Corp.
//:://////////////////////////////////////////////
/*
Put into: OnModuleLoad Event
This example script demonstrates how to tweak the
behavior of several subsystems in your module.
For more information, please check x2_inc_switches
which holds definitions for several variables that
can be set on modules, creatures, doors or waypoints
to change the default behavior of Bioware scripts.
Warning:
Using some of these switches may change your games
balancing and may introduce bugs or instabilities. We
recommend that you only use these switches if you
know what you are doing. Consider these features
unsupported!
Please do NOT report any bugs you experience while
these switches have been changed from their default
positions.
Make sure you visit the forums at nwn.bioware.com
to find out more about these scripts.
*/
//:://////////////////////////////////////////////
//:: Created By: Georg Zoeller
//:: Created On: 2003-07-16
//:://////////////////////////////////////////////
/*
Example settings for horses at the bottom.
*/
//:://////////////////////////////////////////////
//:: Updated By: Azbest
//:: Last Update: April 18th, 2008
//:://////////////////////////////////////////////
#include "x2_inc_switches"
#include "x2_inc_restsys"
#include "nwnx_webhook"
#include "nwnx_util"
const string NWNX_DISCORD_URL = "/api/webhooks/1137216161205989456/glaZtTAw_n3byW3hbd87xGUcoPJms5SrakNmo1FBg6rQheP4jBNolKDy-aLRzvFJQrpq";
void main()
{
if (GetGameDifficulty() == GAME_DIFFICULTY_CORE_RULES || GetGameDifficulty() == GAME_DIFFICULTY_DIFFICULT)
{
// * Setting the switch below will enable a seperate Use Magic Device Skillcheck for
// * rogues when playing on Hardcore+ difficulty. This only applies to scrolls
SetModuleSwitch (MODULE_SWITCH_ENABLE_UMD_SCROLLS, TRUE);
// * Activating the switch below will make AOE spells hurt neutral NPCS by default
// SetModuleSwitch (MODULE_SWITCH_AOE_HURT_NEUTRAL_NPCS, TRUE);
}
// * AI: Activating the switch below will make the creaures using the WalkWaypoint function
// * able to walk across areas
// SetModuleSwitch (MODULE_SWITCH_ENABLE_CROSSAREA_WALKWAYPOINTS, TRUE);
// * Spells: Activating the switch below will make the Glyph of Warding spell behave differently:
// * The visual glyph will disappear after 6 seconds, making them impossible to spot
// SetModuleSwitch (MODULE_SWITCH_ENABLE_INVISIBLE_GLYPH_OF_WARDING, TRUE);
// * Craft Feats: Want 50 charges on a newly created wand? We found this unbalancing,
// * but since it is described this way in the book, here is the switch to get it back...
// SetModuleSwitch (MODULE_SWITCH_ENABLE_CRAFT_WAND_50_CHARGES, TRUE);
// * Craft Feats: Use this to disable Item Creation Feats if you do not want
// * them in your module
// SetModuleSwitch (MODULE_SWITCH_DISABLE_ITEM_CREATION_FEATS, TRUE);
// * Palemaster: Deathless master touch in PnP only affects creatures up to a certain size.
// * We do not support this check for balancing reasons, but you can still activate it...
// SetModuleSwitch (MODULE_SWITCH_SPELL_CORERULES_DMASTERTOUCH, TRUE);
// * Epic Spellcasting: Some Epic spells feed on the liveforce of the caster. However this
// * did not fit into NWNs spell system and was confusing, so we took it out...
// SetModuleSwitch (MODULE_SWITCH_EPIC_SPELLS_HURT_CASTER, TRUE);
// * Epic Spellcasting: Some Epic spells feed on the liveforce of the caster. However this
// * did not fit into NWNs spell system and was confusing, so we took it out...
// SetModuleSwitch (MODULE_SWITCH_RESTRICT_USE_POISON_TO_FEAT, TRUE);
// * Spellcasting: Some people don't like caster's abusing expertise to raise their AC
// * Uncommenting this line will drop expertise mode whenever a spell is cast by a player
// SetModuleSwitch (MODULE_VAR_AI_STOP_EXPERTISE_ABUSE, TRUE);
// * Item Event Scripts: The game's default event scripts allow routing of all item related events
// * into a single file, based on the tag of that item. If an item's tag is "test", it will fire a
// * script called "test" when an item based event (equip, unequip, acquire, unacquire, activate,...)
// * is triggered. Check "x2_it_example.nss" for an example.
// * This feature is disabled by default.
SetModuleSwitch (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS, TRUE);
if (GetModuleSwitchValue (MODULE_SWITCH_ENABLE_TAGBASED_SCRIPTS) == TRUE)
{
// * If Tagbased scripts are enabled, and you are running a Local Vault Server
// * you should use the line below to add a layer of security to your server, preventing
// * people to execute script you don't want them to. If you use the feature below,
// * all called item scrips will be the prefix + the Tag of the item you want to execute, up to a
// * maximum of 16 chars, instead of the pure tag of the object.
// * i.e. without the line below a user activating an item with the tag "test",
// * will result in the execution of a script called "test". If you uncomment the line below
// * the script called will be "1_test.nss"
// SetUserDefinedItemEventPrefix("1_");
}
// * This initializes Bioware's wandering monster system as used in Hordes of the Underdark
// * You can deactivate it, making your module load faster if you do not use it.
// * If you want to use it, make sure you set "x2_mod_def_rest" as your module's OnRest Script
// SetModuleSwitch (MODULE_SWITCH_USE_XP2_RESTSYSTEM, TRUE);
if (GetModuleSwitchValue(MODULE_SWITCH_USE_XP2_RESTSYSTEM) == TRUE)
{
// * This allows you to specify a different 2da for the wandering monster system.
// SetWanderingMonster2DAFile("des_restsystem");
//* Do not change this line.
WMBuild2DACache();
}
// * In the following section there are examples for setting various options
// * in horse package. For more information look in the "x3_inc_horse".
// * Ignores terrain height differencies while deciding whether to play mounting
// * animation or not (if the elevation difference between rider and horse in
// * hilly terrain is large, clipping occurs and the rider animates either above
// * the horse or sinks in the horse during animation, which may look funny).
SetLocalInt(GetModule(),"bX3_MOUNT_NO_ZAXIS",TRUE);
// * This tells how long you have left in seconds before you will be force-mounted
// * if you got stuck while moving to horse in mounting procedure, unless you
// * are using X3_HORSE_ACT_VS_DELAY method, where you can interrupt your movement
// * before reaching the mounting spot.
//SetLocalFloat(GetModule(),"fX3_TIMEOUT_TO_MOUNT",12.0f);
// * Once per fX3_FREQUENCY (default = 1.0s) seconds character will retry to
// * get on the right path when moving to horse in case he gets stuck or
// * something makes him temporarily stuck, if he doesnt get to horse in
// * fX3_TIMEOUT_TO_MOUNT seconds, he is forced to mount.
//SetLocalFloat(GetModule(),"fX3_FREQUENCY",2.0);
// * Use this if you want characters to be able to interrupt the mounting
// * procedure before they get to the horse (ie. by clicking on the ground).
//SetLocalInt(GetModule(),"X3_HORSE_ACT_VS_DELAY",TRUE);
// * Use horse's inventory as a storage for saddlebag content.
//SetLocalInt(GetModule(),"X3_HORSE_ENABLE_SADDLEBAGS",TRUE);
// * Dont forget to place the storage waypoint for this to work!
//SetLocalString(GetModule(),"X3_SADDLEBAG_DATABASE","NAME");
// * Doesnt apply speed bonus when mounted.
//SetLocalInt(GetModule(),"X3_HORSE_DISABLE_SPEED",TRUE);
// * Mounts are allowed in exterior areas only.
//SetLocalInt(GetModule(),"X3_MOUNTS_EXTERNAL_ONLY",TRUE);
// * No horses are allowed underground.
//SetLocalInt(GetModule(),"X3_MOUNTS_NO_UNDERGROUND",TRUE);
// * Possible trouble-shoot for situation when players would be left in an
// * uncommandable state (it should never happen however)
//SetLocalInt(GetModule(),"X3_NO_MOUNT_COMMANDABLE",TRUE);
// added in hopes of webhook/discord
NWNX_WebHook_SendWebHookHTTPS("discordapp.com", NWNX_DISCORD_URL, "Those blasted orcs won't dare lay a finger on my farm.", "Wilie Leonsbane");
}

View File

@@ -0,0 +1,8 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner001", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner010", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner002", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner003", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner004", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner005", loc, TRUE);
}

View File

@@ -0,0 +1,8 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner006", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner007", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner008", loc, TRUE);
}

View File

@@ -0,0 +1,7 @@
void main()
{
location loc = GetLocation(OBJECT_SELF);
CreateObject(OBJECT_TYPE_PLACEABLE, "pcbanner009", loc, TRUE);
}

View File

@@ -0,0 +1,18 @@
//::///////////////////////////////////////////////
//:: FileName hpersuadecheck
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 6/26/2002 8:03:08 PM
//:://////////////////////////////////////////////
#include "nw_i0_tool"
int StartingConditional()
{
// Perform skill checks
if(!(AutoDC(DC_HARD, SKILL_PERSUADE, GetPCSpeaker())))
return FALSE;
return TRUE;
}

16
_module/nss/hs0.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 0))
return FALSE;
return TRUE;
}

16
_module/nss/hs1.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 1))
return FALSE;
return TRUE;
}

16
_module/nss/hs10.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 10))
return FALSE;
return TRUE;
}

16
_module/nss/hs2.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 2))
return FALSE;
return TRUE;
}

16
_module/nss/hs3.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 3))
return FALSE;
return TRUE;
}

16
_module/nss/hs4.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 4))
return FALSE;
return TRUE;
}

16
_module/nss/hs5.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 5))
return FALSE;
return TRUE;
}

16
_module/nss/hs6.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 6))
return FALSE;
return TRUE;
}

16
_module/nss/hs7.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 7))
return FALSE;
return TRUE;
}

16
_module/nss/hs8.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 8))
return FALSE;
return TRUE;
}

16
_module/nss/hs9.nss Normal file
View File

@@ -0,0 +1,16 @@
//::///////////////////////////////////////////////
//:: FileName hs0
//:://////////////////////////////////////////////
//:://////////////////////////////////////////////
//:: Created By: Script Wizard
//:: Created On: 7/22/2002 9:20:19 PM
//:://////////////////////////////////////////////
int StartingConditional()
{
// Inspect local variables
if(!(GetLocalInt(OBJECT_SELF, "nBattleProgress") == 9))
return FALSE;
return TRUE;
}

99
_module/nss/innburn.nss Normal file
View File

@@ -0,0 +1,99 @@
//::///////////////////////////////////////////////
//:: Default:On Death
//:: NW_C2_DEFAULT7
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Shouts to allies that they have been killed
Burns inn and kills occupants
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 25, 2001
//:: Modified By: Dalantriel Jul 22, 2002
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
int nClass = GetLevelByClass(CLASS_TYPE_COMMONER);
int nAlign = GetAlignmentGoodEvil(OBJECT_SELF);
if(nClass > 0 && (nAlign == ALIGNMENT_GOOD || nAlign == ALIGNMENT_NEUTRAL))
{
object oKiller = GetLastKiller();
AdjustAlignment(oKiller, ALIGNMENT_EVIL, 5);
}
SpeakString("NW_I_AM_DEAD", TALKVOLUME_SILENT_TALK);
//Shout Attack my target, only works with the On Spawn In setup
SpeakString("NW_ATTACK_MY_TARGET", TALKVOLUME_SILENT_TALK);
if(GetSpawnInCondition(NW_FLAG_DEATH_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1007));
}
// Burn the inn
// Add flames and sound to exterior of inn
location loc;
object oflame = GetObjectByTag("inn_f1");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("inn_f2");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("inn_f3");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("inn_f4");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("inn_f5");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
oflame = GetObjectByTag("inn_f6");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
SoundObjectPlay(GetObjectByTag("FireInn"));
SoundObjectPlay(GetObjectByTag("FireInn2"));
// Destroy all occupants and replace with flames
oflame = GetObjectByTag("NW_COMFEMALE");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("NW_COMFEMALE"));
oflame = GetObjectByTag("NW_FEMALEKID01");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("NW_FEMALEKID01"));
oflame = GetObjectByTag("NW_MALEKID01");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("NW_MALEKID01"));
oflame = GetObjectByTag("Dili");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("Dili"));
oflame = GetObjectByTag("NW_NOBLFEMALE");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("NW_NOBLFEMALE"));
oflame = GetObjectByTag("NW_OLDWOMAN");
loc = GetLocation(oflame);
CreateObject(OBJECT_TYPE_PLACEABLE, "flamelarge", loc, TRUE);
DestroyObject(GetObjectByTag("NW_OLDWOMAN"));
}

111
_module/nss/intro.nss Normal file
View File

@@ -0,0 +1,111 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
if (GetLocalInt(GetObjectByTag("TownGuardintro2"), "nConversation") == 2)
{
if(GetIsPC(GetLastPerceived()))
{
ActionSpeakString("Oh come on! There is no point staying here if the village needs our help.");
SetLocalInt(GetObjectByTag("TownGuardintro2"), "nConversation", 3);
}
}
}

112
_module/nss/intro2.nss Normal file
View File

@@ -0,0 +1,112 @@
//::///////////////////////////////////////////////
//:: Default On Heartbeat
//:: NW_C2_DEFAULT1
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
This script will have people perform default
animations.
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Nov 23, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
if(GetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY))
{
if(TalentAdvancedBuff(40.0))
{
SetSpawnInCondition(NW_FLAG_FAST_BUFF_ENEMY, FALSE);
return;
}
}
if(GetSpawnInCondition(NW_FLAG_DAY_NIGHT_POSTING))
{
int nDay = FALSE;
if(GetIsDay() || GetIsDawn())
{
nDay = TRUE;
}
if(GetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT") != nDay)
{
if(nDay == TRUE)
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", TRUE);
}
else
{
SetLocalInt(OBJECT_SELF, "NW_GENERIC_DAY_NIGHT", FALSE);
}
WalkWayPoints();
}
}
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
if(!GetIsPostOrWalking())
{
if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
if(!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
if(!GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL) && !IsInConversation(OBJECT_SELF))
{
if(GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS) || GetSpawnInCondition(NW_FLAG_AMBIENT_ANIMATIONS_AVIAN))
{
PlayMobileAmbientAnimations();
}
else if(GetIsEncounterCreature() &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayMobileAmbientAnimations();
}
else if(GetSpawnInCondition(NW_FLAG_IMMOBILE_AMBIENT_ANIMATIONS) &&
!GetIsObjectValid(GetNearestCreature(CREATURE_TYPE_REPUTATION, REPUTATION_TYPE_ENEMY, OBJECT_SELF, 1, CREATURE_TYPE_PERCEPTION, PERCEPTION_SEEN)))
{
PlayImmobileAmbientAnimations();
}
}
else
{
DetermineSpecialBehavior();
}
}
else
{
//DetermineCombatRound();
}
}
}
}
else
{
if(GetSpawnInCondition(NW_FLAG_SLEEPING_AT_NIGHT))
{
effect eVis = EffectVisualEffect(VFX_IMP_SLEEP);
if(d10() > 6)
{
ApplyEffectToObject(DURATION_TYPE_INSTANT, eVis, OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_HEARTBEAT_EVENT))
{
SignalEvent(OBJECT_SELF, EventUserDefined(1001));
}
if(GetLocalInt(OBJECT_SELF, "nConversation") == 1)
{
ActionSpeakString("No, and I'll hear no more on the matter.\nWe have our orders and we continue to guard this road until we are told otherwise.");
SetLocalInt(OBJECT_SELF, "nConversation", 2);
}
if(GetLocalInt(OBJECT_SELF, "nConversation") == 4)
{
ActionSpeakString("Don't be an adventurous fool Williande! *sighs* But if you must go good luck to you.");
SetLocalInt(OBJECT_SELF, "nConversation", 5);
}
}

View File

@@ -0,0 +1,76 @@
//::///////////////////////////////////////////////
//:: Default On Percieve
//:: NW_C2_DEFAULT2
//:: Copyright (c) 2001 Bioware Corp.
//:://////////////////////////////////////////////
/*
Checks to see if the perceived target is an
enemy and if so fires the Determine Combat
Round function
*/
//:://////////////////////////////////////////////
//:: Created By: Preston Watamaniuk
//:: Created On: Oct 16, 2001
//:://////////////////////////////////////////////
#include "NW_I0_GENERIC"
void main()
{
//This is the equivalent of a force conversation bubble, should only be used if you want an NPC
//to say something while he is already engaged in combat.
if(GetSpawnInCondition(NW_FLAG_SPECIAL_COMBAT_CONVERSATION) && GetIsPC(GetLastPerceived()) && GetLastPerceptionSeen())
{
SpeakOneLinerConversation();
}
//If the last perception event was hearing based or if someone vanished then go to search mode
if ((GetLastPerceptionVanished()) && GetIsEnemy(GetLastPerceived()))
{
object oGone = GetLastPerceived();
if((GetAttemptedAttackTarget() == GetLastPerceived() ||
GetAttemptedSpellTarget() == GetLastPerceived() ||
GetAttackTarget() == GetLastPerceived()) && GetArea(GetLastPerceived()) != GetArea(OBJECT_SELF))
{
ClearAllActions();
DetermineCombatRound();
}
}
//Do not bother checking the last target seen if already fighting
else if(!GetIsObjectValid(GetAttemptedAttackTarget()) && !GetIsObjectValid(GetAttemptedSpellTarget()))
{
//Check if the last percieved creature was actually seen
if(GetLastPerceptionSeen())
{
if(GetBehaviorState(NW_FLAG_BEHAVIOR_SPECIAL))
{
DetermineSpecialBehavior();
}
else if(GetIsEnemy(GetLastPerceived()))
{
if(!GetHasEffect(EFFECT_TYPE_SLEEP))
{
SetFacingPoint(GetPosition(GetLastPerceived()));
SpeakString("NW_I_WAS_ATTACKED", TALKVOLUME_SILENT_TALK);
DetermineCombatRound();
}
}
//Linked up to the special conversation check to initiate a special one-off conversation
//to get the PCs attention
else if(GetSpawnInCondition(NW_FLAG_SPECIAL_CONVERSATION) && GetIsPC(GetLastPerceived()))
{
ActionStartConversation(OBJECT_SELF);
}
}
}
if(GetSpawnInCondition(NW_FLAG_PERCIEVE_EVENT) && GetLastPerceptionSeen())
{
SignalEvent(OBJECT_SELF, EventUserDefined(1002));
}
if(GetIsPC(GetLastPerceived()))
{
ActionSpeakString("Listen Loric, we should return to XXX immediately! The road is safe for now and we'll need all the troops we can manage to defend the village proper.");
SetLocalInt(GetObjectByTag("TownGuardintro2"), "nConversation", 1);
}
}

Some files were not shown because too many files have changed in this diff Show More