User:Fox Diller/EventRequests
<lsl> // Crystal Studio Request Script // Version 1.0 // // Use this at your own risk. // Desc: You can use this to have a request system inside a club that it might be hard to get requests from end-users.
// User Modifiable Settings:\
// Change this to the channel you want to listen too. // If you change it to '0', the script will not run! // This is used to keep this script lag free. integer CHAN_NUM = 69;
// Change this to the name of your event. string EVENT_NAME = "Graveyard Shift";
// You could change this to another language if needed, or something different. Ex: "Questions." string REQ_NAME = "Requests";
// BEGIN CODE // Warning: Do not change anything below this line unless you know absolutely what you are doing!!!! omgz
// DEFINE integer LISTEN_OFFLINE; integer LISTEN_ONLINE; integer REQ_AMM; // DONE.
// Custom Functions setText(integer TEXT_STATE) {
if (TEXT_STATE) llSetText( EVENT_NAME + " " + REQ_NAME + " - ON\n---------------------------------------------\n" + "Please type: \"/" + (string)CHAN_NUM + " [" + llToLower(REQ_NAME) + "] to send a " + llToLower(REQ_NAME), <0,1,0>, 1.0); if (!TEXT_STATE) llSetText(EVENT_NAME + " " + REQ_NAME + " - OFF", <1,0,0>, 1.0);
}
default {
state_entry() { llOwnerSay("Request System Startup... Please click on me to turn the request machine on."); }
touch_start(integer total_number) { state on; }
}
state on {
state_entry() { if (CHAN_NUM) LISTEN_ONLINE = llListen(CHAN_NUM, "", "", ""); else { llOwnerSay("Fatal Error: CHAN_NUM is set to 0! SCRIPT RUNTIME ERROR"); llSetScriptState(llGetScriptName(), FALSE); } setText(1); } touch_start(integer total_number) { llListenRemove(LISTEN_ONLINE); llInstantMessage(llGetOwner(), "You have recieved " + (string)REQ_AMM + " " + REQ_NAME); state off; } listen(integer LISTEN_CHAN, string LISTEN_NAME, key LISTEN_ID, string LISTEN_MSG) { llInstantMessage(llGetOwner(), LISTEN_NAME + " " + REQ_NAME + ": " + LISTEN_MSG); llInstantMessage(LISTEN_ID, EVENT_NAME + " thanks you for your " + REQ_NAME); REQ_AMM++; setText(1); }
}
state off {
state_entry() { LISTEN_OFFLINE = llListen(CHAN_NUM, "", "", ""); REQ_AMM = 0; setText(0); } touch_start(integer total_number) { llListenRemove(LISTEN_OFFLINE); state on; } listen(integer LISTEN_CHAN, string LISTEN_NAME, key LISTEN_ID, string LISTEN_MSG) { llInstantMessage(LISTEN_ID, REQ_NAME + " are not being taken at this time. Sorry."); }
} </lsl>