Free SL Scripts

  • Increase font size
  • Default font size
  • Decrease font size

Group Add Request

E-mail Print PDF

 // Sends owner a request to join a group

// Athor: unknown 

// Retrieved from Free SL Scripts at http://www.freeSLscripts.com or http://www.freeSLscripts.gendersquare.org

//This script can do two things: It will make a list of all that Touch it, except the owner, and it can Instant Message owner the name of each person Touching as it happens...

//What it cannot do is add people to a group. Unfortunately, that is not yet available in LSL as of now (JAN 2007.)
//A good way to use this script is to place it inside of a sign like I have at my store. Check it once or twice a day, reseting the list after getting the current names and adding them manually to group.
//IMPORTANT: You must Reset the List before it gets to around 125 or the script will stop working.
//
integer sendIM = TRUE; //sends IM to Owner


list names;
integer total;

integer menu_handler;
integer menu_channel;
menu(key user,string title,list buttons)
{
    menu_channel = (integer)(llFrand(99999.0) * -1);
    menu_handler = llListen(menu_channel,"","","");
    llDialog(user,title,buttons,menu_channel);
    llSetTimerEvent(15.0);
}

default
{
    on_rez(integer r)
    {
        llResetScript();
    }
   
    state_entry()
    {
        names = [""];
        total = 0;
        llSetText("Touch to join our Group", <0.90196, 0.72549, 0.35294>, 1.0); //Floating Text, edit or remove
        llOwnerSay("Ready... list is reset to 0.");
    }

    touch_start(integer num_detected)
    {
        integer x;
        for(x;x <= num_detected- 1;x++)
        {
            if ( llDetectedKey(x) != llGetOwner() )
        {
                integer find = llListFindList(names,[llDetectedName(x)]);
                if(find < 1)
                {
                    llInstantMessage(llDetectedKey(x), "Your request has been sent. Please be patient and you will be added to the group as soon as possible."); //Message to Toucher
                    names = names+ [llDetectedName(x)];
                    total = total + 1;
                    if (sendIM)
                    {
                        llInstantMessage(llGetOwner(), " " + llDetectedName(x) + " has requested to be added."); //Message to Owner
                    }
                }
                else
                {
                    llInstantMessage(llDetectedKey(x), "You've already requested to be added."); //Message to repeat Toucher
                }
            }
            else if ( llDetectedKey(x) == llGetOwner() )
            {
                llOwnerSay((string)total + " people have Touched me so far!");
                menu(llGetOwner(),"Please Select One",["Show List","Reset", "Turn Off"]);
            }
        } 
    }
   
    timer()
    {
        llSetTimerEvent(0.0);
        llListenRemove(menu_handler);
    }

    listen(integer channel,string name,key id,string message)
    {
        if (channel == menu_channel)
        {
            if(message == "Show List")
            {
                integer len = llGetListLength( names );
                integer i;
                for( i = 0; i < len; i++ )
                {
                    integer a = i;
                    llOwnerSay((string)a + " : " + llList2String(names, i));
                }
            }
            else if(message == "Reset")
            {
                llOwnerSay("Clearing List & Reseting Script now.");
                llResetScript();
            }
            else if(message == "Turn Off")
            {
                llOwnerSay("Turning Off Now. Touch again to turn back On.");
                state off;
            }
        }
    }
}

state off
{
    on_rez(integer r)
    {
        llResetScript();
    }
   
    state_entry()
    {
        llSetText("", <0, 0, 0>, 1.0);
    }
   
    touch_start(integer total_number)
    {
        if (llGetOwner())
        {
            llOwnerSay("Turning back On now.");
            llResetScript();
        }
    }
}

Comments
Search
Only registered users can write comments!

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."

Last Updated on Monday, 06 July 2009 20:22  

Submit a Free Script

GTranslate

English French German Italian Portuguese Russian Spanish

SL News Feeds

Test SL Script Vendor


Follow Me

Facebook Twitter YouTube

Feedburner

GSyndication

Scripters online in SL