Ancordia_PRC8/_module/nss/alverton_onenter.nss
Jaysyn904 102ba7dab6 Initial Commit
Initial Commit
2023-09-21 19:51:32 -04:00

71 lines
1.9 KiB
Plaintext

/* Script generated by
Lilac Soul's NWN Script Generator, v. 2.3
For download info, please visit:
http://nwvault.ign.com/View.php?view=Other.Detail&id=4683&id=625 */
//Put this script OnEnter
#include "events_inc"
void main()
{
object oPC = GetEnteringObject();
if (!GetIsPC(oPC)) return;
if(GetLocalInt(OBJECT_SELF, "NPCGenerated") == FALSE)
{
string sResRef;
string sRace;
string sGender;
int i;
int n;
location loc;
string sSpot;
object oNPC;
string sArea = GetLocalString(OBJECT_SELF, "Area");
//Determine the number of waypoints for NPC spawning
for(n=1; n>0; n++)
{
sSpot = IntToString(n);
if (GetWaypointByTag(sArea+"_SPAWN_"+sSpot) == OBJECT_INVALID)
{
n--;
break;
}
}
//Generate and spawn NPCs
for(i=1; i<=n; i++)
{
sRace = "hu";
switch (Random(2))
{
case 0: sGender = "_m"; break;
case 1: sGender = "_f"; break;
}
sResRef = "anc_npc_"+sRace+sGender;
sSpot = IntToString(i);
loc = GetLocation(GetWaypointByTag(sArea+"_SPAWN_"+sSpot));
oNPC = CreateObject(OBJECT_TYPE_CREATURE, sResRef, loc);
SetPlotFlag(oNPC, TRUE);
SetLocalString(oNPC, "Waypoint", sArea+"_SPAWN_"+sSpot);
SetLocalInt(oNPC, "Commoner", TRUE);
SetLocalInt(oNPC, "Rumor", Random(3)+1);
}
SetLocalInt(OBJECT_SELF, "NPCGenerated", TRUE);
}
//Done generating and spawning NPCs
ExploreAreaForPlayer(GetArea(oPC), oPC);
EndEscortEvent(oPC);
//Set this town as the PC's spawn point
string sLastTown = GetCampaignString(CharacterDB(oPC), "TOWN_SPAWN");
if (sLastTown != "WP_AREA_ALVERTON") SetCampaignString(CharacterDB(oPC), "TOWN_SPAWN", "WP_AREA_ALVERTON");
}