Author Sticky: Post Working Scripts Here
phatherphreak Posted: Wednesday, 17 July 06:51AM
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)

NWScript:
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

NWScript:
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

Phather