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>