TheHordeOrcs_PRC8/_module/nss/pathfindingscale.nss
Jaysyn904 defc8f9f6d Re-uploaded instead of migrated
Re-uploaded instead of migrated.
2024-08-03 15:05:13 -04:00

188 lines
8.1 KiB
Plaintext

//::///////////////////////////////////////////////
//:: 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
int nScaleFactor = GetLocalInt(GetObjectByTag("TrashCan"), "nDifficultylevel");
int nChallengeFactor = GetLocalInt(GetObjectByTag("TrashCan"), "nChallengelevel");
location loc = GetLocation(OBJECT_SELF);
int nRandom;
nRandom = d8() + nChallengeFactor;
if(nScaleFactor > 0 && nScaleFactor < 3 && nRandom > 9)
{
string sTag = GetTag(OBJECT_SELF);
if (sTag == "ms_spawnogre9")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogrebeserk009", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogre10")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogrebeserk010", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogreboss9")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogrebeserk009", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogreboss10")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogrebeserk010", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
}
nRandom = d4() + nChallengeFactor;
if(nScaleFactor > 2 && nRandom > 10)
{
string sTag = GetTag(OBJECT_SELF);
if (sTag == "ms_spawnogre9")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogreboss009", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogre10")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogreboss010", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogrebeserk9")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogreboss009", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
if (sTag == "ms_spawnogrebeserk10")
{
CreateObject(OBJECT_TYPE_CREATURE, "ogreboss010", loc, TRUE);
DestroyObject(OBJECT_SELF);
}
}
// 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
// Walk to Primary NPC selecting a random pathway
int npathchoice = d2();
if(npathchoice == 2)
{
ActionMoveToObject(GetObjectByTag("ai_horde000"));
ActionMoveToObject(GetObjectByTag("ai_horde001"));
ActionMoveToObject(GetObjectByTag("ai_horde002"));
ActionMoveToObject(GetObjectByTag("ai_horde004"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde000"));
ActionMoveToObject(GetObjectByTag("ai_horde001"));
ActionMoveToObject(GetObjectByTag("ai_horde003"));
ActionMoveToObject(GetObjectByTag("ai_horde006"));
}
int npathchoice2 = d3();
if(npathchoice2 == 1)
{
ActionMoveToObject(GetObjectByTag("ai_horde007"));
ActionMoveToObject(GetObjectByTag("ai_horde009"));
}
if(npathchoice2 == 2)
{
ActionMoveToObject(GetObjectByTag("ai_horde005"));
ActionMoveToObject(GetObjectByTag("ai_horde010"));
}
if(npathchoice2 == 3)
{
ActionMoveToObject(GetObjectByTag("ai_horde008"));
ActionMoveToObject(GetObjectByTag("ai_horde011"));
}
int npathchoice3 = d2();
if(npathchoice3 == 2)
{
ActionMoveToObject(GetObjectByTag("ai_horde020"));
ActionMoveToObject(GetObjectByTag("ai_horde012"));
ActionMoveToObject(GetObjectByTag("ai_horde014"));
}
else
{
ActionMoveToObject(GetObjectByTag("ai_horde021"));
ActionMoveToObject(GetObjectByTag("ai_horde013"));
ActionMoveToObject(GetObjectByTag("ai_horde016"));
}
ActionMoveToObject(GetObjectByTag("ai_horde015"));
ActionMoveToObject(GetObjectByTag("ai_horde017"));
ActionMoveToObject(GetObjectByTag("ai_horde018"));
}