-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathspanker_listen.lsl
56 lines (40 loc) · 1.29 KB
/
spanker_listen.lsl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
/*
Small API for 3rd party stuff to interface with the spanker
-----------------------------------------------------------
All messages send to the listener need to be prefixed with PREFIX
1st parameter is the method used, can be HAND or CANE or anything else
2nd parameter is optional LEFT or RIGHT, if omitted will default to both
Example:
llRegionSayTo(g_kTarget, CHANNEL, PREFIX+"|HAND|LEFT");
The following channels can be used:
-5550555 = bottom
-6660666 = chest
*/
string PREFIX = "spanker-1.0";
integer CHANNEL = -5550555;
default
{
state_entry()
{
llListen(CHANNEL, "", "", "");
}
on_rez(integer i)
{
if (llGetAttached()) llResetScript();
}
listen(integer iChannel, string sName, key kID, string sMsg)
{
list lParams = llParseString2List(sMsg, ["|"], []);
string sPrefix = llList2String(lParams, 0);
if (sPrefix != PREFIX) return;
string sMethod;
if (llGetListLength(lParams) >= 2) {
sMethod = llToUpper(llList2String(lParams, 1));
} else return;
integer iSide = -1;
if (llGetListLength(lParams) == 3) {
iSide = (llToUpper(llList2String(lParams, 2)) == "RIGHT");
}
llMessageLinked(LINK_THIS, iSide, sMethod, NULL_KEY);
}
}