DMH-Online

Dungeon Masters Helper · Est. 2005

Npcs Scripts

NWN Script: day_merchant.htm

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

⌂ All Scripts ← PreviousNext → 👁 Category List

All Npcs Scripts

📄 ambient_animations 📄 barmaid 📄 barmaid002 📄 barmaid003 📄 barmaid003a 📄 barmaid004 📄 bitch_slap 📄 blacksmith 📄 blacksmith_001 📄 blacksmith_002 📄 blacksmith_003 📄 bounty_hunter 📄 check 📄 check_pc_item 📄 check_pc_item_002 📄 cheer_pcs 📄 cook 📄 daily_activity 📄 day_merchant 📄 determine_armed 📄 drunk 📄 equip_dequip 📄 equip_dequip_002 📄 escort 📄 flee 📄 flee_001 📄 force_pc_sit 📄 gate_guard 📄 get_nearest 📄 guard_dog_002 📄 guard_patrol 📄 healer 📄 impersonation 📄 item_guardian 📄 item_guardian_002 📄 jail_cell 📄 janitor 📄 janitor_002 📄 living_statues 📄 misc_activity 📄 monolouge 📄 multi_converse 📄 night_watch 📄 npc_brawls 📄 npc_pick_pocket 📄 npc_speak_onperception 📄 npc_start_conv 📄 npc_start_conv_002 📄 npc_start_conv_003 📄 npc_start_conv_004 📄 npc_start_conv_005 📄 open_door 📄 polymorph 📄 prostitute 📄 protect_items 📄 protect_items_002 📄 random_speak 📄 random_speak_002 📄 random_speak_003 📄 random_speak_004 📄 random_speak_005 📄 random_walk2 📄 reinforcements 📄 reinforcements_002 📄 remember_conv 📄 rowdy 📄 sheath_weapons 📄 sit_and_talk 📄 sit_and_talk_002 📄 sit_in_nearest_chair 📄 smart_npc 📄 smart_sitting 📄 streetfight 📄 tag 📄 tag_001a 📄 teleport_away 📄 teleport_away_002 📄 teleport_away_003 📄 town_crier 📄 trivia_bot 📄 walk_after 📄 woodcutter 📄 worker 📄 worker_002 📄 workstation 📄 wrestling_game