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:
void main()
{
object oPC=GetEnteringObject();
if(GetIsPC(oPC))
{
SetLocalInt(oPC,"noble_01",1);
}
}
OnHeartbeat Script:
NWScript:
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:
void main()
{
SetLocalInt(OBJECT_SELF,"DESTROY_STATE",0);
}
UserDefined script:
NWScript:
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:
{
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:
{
SetLocalInt(OBJECT_SELF,"DESTROY_STATE",2);
DestroyObject(OBJECT_SELF);
ActionDoCommand(SetLocalInt(OBJECT_SELF,"DESTROY_STATE",1));
}
}
break;
}
}
If any other have sugestions, please post?
|