User:Talia Tokugawa/scripts/DialogMenu: Difference between revisions
Jump to navigation
Jump to search
No edit summary |
No edit summary |
||
| Line 44: | Line 44: | ||
if (owner!=llGetOwner()) llResetScript(); | if (owner!=llGetOwner()) llResetScript(); | ||
} | } | ||
touch_start(integer itn) { | touch_start(integer itn) { | ||
if (llDetectedKey(0)==owner) menu(); | if (llDetectedKey(0)==owner) menu(); | ||
} | } | ||
} | } | ||
Latest revision as of 14:48, 23 August 2023
This is just an example dialog menu setup specifically for the owner of the item. Features "remenu", extending time out, random high channel listeners.
key owner;
integer listenChan;
integer listener;
integer count;
menu() {
listenChan=(integer)llFrand(899999) + 100000;
listener=llListen(listenChan, "", owner, "");
llDialog(owner, "Please select an option:", ["Option A", "Option B", "Done"], listenChan);
count=10;
llSetTimerEvent(3.0);
}
default {
listen(integer ich, string sna, key kid, string sme) {
llListenRemove(listener);
if (ich==listenChan&&kid==owner) {
//do stuff with option replies
if (sme=="Done") return;
else {
if (sme=="Option A") //Do something here
else if (sme=="Option B") //Do something else here
menu();
}
}
}
timer() {
--count;
if (count==0) {
llListenRemove(listener);
llSetTimerEvent(0.0);
}
}
state_entry() {
llWhisper(0, "/me are online.");
owner=llGetOwner();
menu();
}
on_rez(integer isp) {
if (owner!=llGetOwner()) llResetScript();
}
touch_start(integer itn) {
if (llDetectedKey(0)==owner) menu();
}
}