list keys = [];
key npc;
string toucher;
key toucherkey;
vector toucherPos;
integer npc_on = FALSE;
integer toggle=0;
goA()
{
osNpcMoveToTarget(npc,<51.8792, 41.5985, 23.3226>,OS_NPC_RUNNING|OS_NPC_NO_FLY);
}
goB()
{
osNpcMoveToTarget(npc,<85.4375, 38.4954, 23.3226>,OS_NPC_NO_FLY );
}
default
{
state_entry()
{
if(llGetObjectDesc()!="") osNpcRemove((key)llGetObjectDesc());
llListen(10,"",NULL_KEY,"");
llSensor("", "", AGENT | NPC, 96.0, PI); //Will always return NPC key regardless of npc create option
}
timer()
{
toggle=1-toggle;
if(toggle==0) { goA(); llSetTimerEvent(8);}
if(toggle==1) {goB(); llSetTimerEvent(12);}
}
listen(integer channel,string name, key id, string str)
{
if(str=="A")
{
goA();
return;
}
if(str=="B")
{
goB();
return;
}
}
touch_start(integer x)
{
toucherkey = llDetectedKey(0);
toucherPos = llDetectedPos(0);
vector npcPos = llGetPos() + <1,1,1>;
if(npc_on == FALSE)
{
npc = osNpcCreate("Achille", "PièVeloce", npcPos, toucherkey);
llSetObjectDesc((string)npc);
npc_on = TRUE;
llSetTimerEvent(0.01);
// llSensor("", "", AGENT | NPC, 96.0, PI); //Will always return NPC key regardless of npc create option
return;
}
if(npc_on == TRUE)
{
llSetTimerEvent(0);
osNpcRemove(npc);
llSetObjectDesc("");
llResetScript();
}
}
sensor(integer num)
{
keys = [];
integer i = 0;
for(i; i < num; i++)
{
keys += llDetectedKey(i);
osNpcRemove(llDetectedKey(i));
}
llOwnerSay(llDumpList2String(keys, "\n"));
}
no_sensor()
{
keys = [];
}
}
Comments
0 B
|👍
/👎
0 B
|👍
/👎