Daytime Only Vendor
Daytime only NPC (mine is a merchant, but could be for quests also).
In the day time, she appears at her door and walks to her waypoint WP_Vday_01
(where she sells stuff).
At night NPC walks to way point WP_Vnight_01 (close to the door) and vanishes.
what you need to change to custom fit your mod.
NPC's ResRef
string sNpcResRef = "verena";
NPC's Tag name
string sNpcTag = "Verena";
WayPoint1
WP_Vday_01
Waypoint2
WP_Vnight_01
Left some debug info in there also.
On HeartBeat of invisible Box (place box on her nighttime waypoint)
void main()
{
// specify which npc should be spawned in the day time.
string sNpcResRef = "verena";
string sNpcTag = "Verena";
object oNPC = GetNearestObjectByTag( sNpcTag, OBJECT_SELF );
int bIsNight = GetIsNight();
// nighttime and npc is not spawned
if ( ( bIsNight == TRUE ) && ( oNPC == OBJECT_INVALID ) ) {
// do nothing
// nighttime and npc is spawned
} else if ( ( bIsNight == TRUE ) && ( oNPC != OBJECT_INVALID ) ) {
// debug info - Does NPC Exist?
if (!GetIsObjectValid(oNPC)) SendMessageToPC(GetFirstPC(),"Verna doesn't
exist!");
object oDestination = GetObjectByTag("WP_Vnight_01");
// debug info - Does Night Time Waypoint Exist?
if (!GetIsObjectValid(oDestination)) SendMessageToPC(GetFirstPC(),"WP_Vnight_01
doesn't exist!");
float fDelay = 5.0;
// Tell NPC to Walk to Day Time Waypoint.
AssignCommand(oNPC, ActionForceMoveToObject(oDestination, TRUE,0.1));
// Have NPC Destroy Itself.
DelayCommand(5.0, DestroyObject( oNPC, 0.0 ));
// daytime and npc is not spawned
} else if ( ( bIsNight != TRUE ) && ( oNPC == OBJECT_INVALID ) ) {
// spawn npc
CreateObject( OBJECT_TYPE_CREATURE, sNpcResRef, GetLocation( OBJECT_SELF ),
FALSE );
// daytime and npc is spawned
} else if ( ( bIsNight != TRUE ) && ( oNPC != OBJECT_INVALID ) ) {
// do nothing
}
}
on custom npc's OnSpawn
void main()
{
// go to object day
object nNPC = GetObjectByTag ("Verena");
// debug info - Does NPC Exist?
if (!GetIsObjectValid(nNPC)) SendMessageToPC(GetFirstPC(),"Verna doesn't
exist!");
object oDestination = GetObjectByTag("WP_Vday_01");
// debug info - Does Day Time Waypoint Exist ?
if (!GetIsObjectValid(oDestination)) SendMessageToPC(GetFirstPC(),"WP_Vday_01
doesn't exist!");
float fDelay = 5.0;
// Tell NPC to Walk to Day Time Waypoint.
AssignCommand(nNPC, ActionForceMoveToObject(oDestination, TRUE,0.1));
// say hello
DelayCommand(0.1, ActionSpeakString( "Ah, what a beautiful morning."));
}
Thanks to all that helped me figure this damn thing out
Hope it works for everyone