Project: ActiveNPCs: An interactive-NPC controller
Back to project
File name: peg.lsl
Code: View Raw Code
/* The Peg script for waypoint management */
integer num;
string notecard;
list links;
integer channel;
string name;
string status;
vector pos;
integer zListener;
integer gListener;
integer PEG_CHAN=699;
integer CONTROLLER_CHAN=68;
default
{
on_rez(integer m)
{
num = m;
llSetText("Uninitialized", <1,1,1>, 1.0);
//zListener = llListen(channel, "","","");
gListener = llListen(PEG_CHAN, "","","");
}
touch_start(integer n)
{
string str="Peg Num:"+(string)num+"\nName:"+name+"\nLinks:"+llList2CSV(links)+"\nNotecard:"+notecard;
//llOwnerSay(str);
llRegionSay(CONTROLLER_CHAN, "CLICKED|"+num);
//llDialog(llGetOwner(), " "+ str, ["Name", "Links", "Notecard"], channel);
}
listen(integer chan, string wname, key id, string data)
{
if (data == "die")
{
llDie();
}
else if (data == "REPORT")
{
string str = "MARKER|"+(string)num+"|"+(string)llGetPos()+"|"+name+"|"+(string)llGetKey();
llRegionSay(CONTROLLER_CHAN, str);
}
list l = llParseStringKeepNulls(data, ["|"], []);
if ((integer)llList2String(l,0) != num) return;
string cmd = llList2String(l,1);
if (cmd == "SETDATA")
{
pos = (vector)llList2String(l, 2);
name = llList2String(l, 3);
string lstr = llList2String(l, 4);
notecard = llList2String(l, 5);
links = llParseString2List(lstr, [","],[]);
llSetRegionPos(pos);
llSetText("Num="+(string)num+"\nName="+name+"\nLinks:"+llList2CSV(links), <1,0,0>, 1.0);
}
}
}