PoA_PRC8/_module/nss/spawn_horses.nss

105 lines
3.1 KiB
Plaintext
Raw Permalink Normal View History

2022-10-07 14:20:31 -04:00
//Script Name: spawn_horses
//////////////////////////////////////////
//Created By: Genisys (Guile)
//Created On: 9/17/08
/////////////////////////////////////////
/*
This script goes in the OnEnter Event
for an Area or a Tracks Trigger.
(Preferrably an Area's OnEnter Event)
(The PC will not notice the NPC's being spawned in)
This script will spawn in an NPC
at the proper way point and destroy it
after an amount of time set by you.
You MUST create the first walk waypoint for the NPC
(put the npc in the module right click on it)
(select create way point, then delete the NPC)
If you wish for the NPC to walk around create more
walk waypoint by moving the NPC and creating more way points
as instructed above.
*/
////////////////////////////////////////
//Required Horse Include
#include "x3_inc_horse"
//PROTOTYPE DECLARED
void SpawnNPC(string sTag, string sResref, float fSeconds);
void SetOwnership(object oReference);
//Main Script
void main()
{
//Define the PC
object oPC = GetEnteringObject();
object oPoint = GetObjectByTag("stable_pt");
//Stop here if it's not a PC entering!
if(!GetIsPC(oPC)) {return;}
//Spawn the horses and their owner!
SpawnNPC("X3_HORSE001", "x3_horse001", 600.0);
SpawnNPC("X3_HORSE002", "x3_horse002", 600.0);
SpawnNPC("X3_HVYWARHORSE6", "x3_hvywarhorse6", 600.0);
SpawnNPC("X3_JOUSTHORSE2", "x3_jousthorse2", 600.0);
SpawnNPC("NW_MALEKID01", "malekid002", 600.0);
//Make the horses belong to the kid running the stables..
DelayCommand(1.0, SetOwnership(oPoint));
//NOTE: This options is NOT for spawning in multiple NPCs with the same tagname!
//I recommend that you create copies of the NPCs and spawn them in seperately.
//(each copied NPC needs thier own tagname / resref name & walk waypoints!)
//Enter any additional code here if your merging this script..
//Main Script End
}
/////////////////////DO NOT TOUCH ANYTHING BELOW!/////////////////////
//PROTOTYPE DEFINED
void SpawnNPC(string sTag, string sResref, float fSeconds)
{
object oTarget;
object oObject = GetWaypointByTag("WP_"+sTag+"_01");
if (!GetIsObjectValid(GetNearestObjectByTag(sTag, oObject)))
{
CreateObject(OBJECT_TYPE_CREATURE, sResref, GetLocation(oObject));
}
oTarget = GetObjectByTag(sTag);
DelayCommand(fSeconds, DestroyObject(oTarget, 0.0));
//PROTOTYPE END
}
void SetOwnership(object oReference)
{
object oHorse1 = GetNearestObjectByTag("X3_HORSE001", oReference);
object oHorse2 = GetNearestObjectByTag("X3_HORSE002", oReference);
object oHorse3 = GetNearestObjectByTag("X3_HVYWARHORSE6", oReference);
object oHorse4 = GetNearestObjectByTag("X3_JOUSTHORSE2", oReference);
object oOwner = GetNearestObjectByTag("NW_MALEKID01", oReference);
HorseSetOwner(oHorse1, oOwner, FALSE);
HorseSetOwner(oHorse2, oOwner, FALSE);
HorseSetOwner(oHorse3, oOwner, FALSE);
HorseSetOwner(oHorse4, oOwner, FALSE);
DelayCommand(0.5, AssignCommand(oHorse1, ClearAllActions()));
DelayCommand(0.6, AssignCommand(oHorse1, ClearAllActions()));
DelayCommand(0.7, AssignCommand(oHorse1, ClearAllActions()));
DelayCommand(0.8, AssignCommand(oHorse1, ClearAllActions()));
}