Author Sticky: Post Working Scripts Here
Willow the Smasher Posted: Monday, 15 July 10:11PM
NPC 1 time loop action then will be destroyed

Heh, Heh, It took a time for me newbee but I figured out.

A NPC that does an couple of action and walks to points and the disappear after
the fist time.


Trigger Area OnEnter script:
NWScript:
// TriggerArea OnEnter scriptfile: 02_noble_tr_en

//

// created by: Willow the Smacher

// Date: 15/07/'02

//

// A NPC does a couple of actions like "walk and open door speak with

// gruard then walk to a second door and opens it and walks to his

// last waypoint and diappears.

//

// needed files 02_noble_os/02_noble_oh/02_noble_ud for NPC

// and a triggerarea with file: 02_noble_tr_en

/////////////////////////////////////////////////////////////////////

//switch NPC to "walkstate" by trigger area

void main()

{

object oPC=GetEnteringObject();

if(GetIsPC(oPC))

{

SetLocalInt(oPC,"noble_01",1);

}

}




OnHeartbeat Script:

NWScript:
// OnHearbeat scriptfile: 02_noble_oh

//

// created by: Willow the Smacher

// Date: 15/07/'02

//

// A NPC does a couple of actions like "walk and open door speak with

// gruard then walk to a second door and opens it and walks to his

// last waypoint and diappears.

//

// needed files 02_noble_os/02_noble_oh/02_noble_ud for NPC

// and a triggerarea with file: 02_noble_tr_en

/////////////////////////////////////////////////////////////////////

void main()

{

object oPC=GetFirstPC();

if (GetLocalInt(oPC,"noble_01")==1)

    {

    SignalEvent(OBJECT_SELF,EventUserDefined(100));

    }

if (GetLocalInt(OBJECT_SELF,"DESTROY_STATE")==3)

    {

    DelayCommand(35.0,SignalEvent(OBJECT_SELF,EventUserDefined(101)));

    }

}




OnSpawn script:

NWScript:
// OnSpawn scriptfile: 02_noble_os

//

// created by: Willow the Smacher

// Date: 15/07/'02

//

// A NPC does a couple of actions like "walk and open door speak with

// gruard then walk to a second door and opens it and walks to his

// last waypoint and diappears.

//

// needed files 02_noble_os/02_noble_oh/02_noble_ud for NPC

// and a triggerarea with file: 02_noble_tr_en

/////////////////////////////////////////////////////////////////////

void main()

{

SetLocalInt(OBJECT_SELF,"DESTROY_STATE",0);

}




UserDefined script:

NWScript:
// OnUserDefined scriptfile: 02_noble_ud

//

// created by: Willow the Smacher

// Date: 15/07/'02

//

// A NPC does a couple of actions like "walk and open door speak with

// gruard then walk to a second door and opens it and walks to his

// last waypoint and diappears.

//

// needed files 02_noble_os/02_noble_oh/02_noble_ud for NPC

// and a triggerarea with file: 02_noble_tr_en

//

/////////////////////////////////////////////////////////////////////

void main()

{

    int nUser=GetUserDefinedEventNumber();

    object oDoor01=GetNearestObjectByTag("WALLDOOR_01");

    object oGuard=GetNearestObjectByTag("GUARD");

    object oDoor02=GetNearestObjectByTag("WALLDOOR_02");

    object oPoint=GetNearestObjectByTag("WP_NOBLE_END");

         

        switch(nUser)

        {

        case 100://start loop!

            {

                ActionMoveToObject(oDoor01);

                ActionOpenDoor(oDoor01);

                ActionMoveToObject(oGuard);

                ActionWait(3.0);

                ActionSpeakString("He, Guard where is the main entrance?");

                ActionWait(3.0);

                ActionMoveToObject(oDoor02);

                ActionOpenDoor(oDoor02);

                ActionMoveToObject(oPoint);

                SetLocalInt(OBJECT_SELF,"DESTROY_STATE",3);

         }

         break;

         {

         case 101://start destroy

            {

                SetLocalInt(OBJECT_SELF,"DESTROY_STATE",2);

                DestroyObject(OBJECT_SELF);

                ActionDoCommand(SetLocalInt(OBJECT_SELF,"DESTROY_STATE",1));

            }

         }

         break;

         }

}




If any other have sugestions, please post?