Simple Lucky Chair Script

Thread Started By Famenig

4708
2
  • 54 Vote(s) - 2.85 Average
  • 1
  • 2
  • 3
  • 4
  • 5
Rate Thread
#1
integer changeletter = 10;
integer timerevent;
string winnerletter;

// ENABLE DEBUG MODE 0 = NO & 1 = YES
integer debug = 0;

// LETS GET TEH ALPHABET!
list letters = ["A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "I", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z"];

// DEBUG SHIT DON'T MESS WITH THIS
deBug(string dmsg)
{
if(debug)
llOwnerSay(dmsg);
}


// THIS IS THE CHECK NAME SUB
checkname(key whositting)
{
// SAYS THE AVATARS KEY IN DEBUG MESSAGE
deBug((string)whositting);
// WE NEED TO KNOW WHO IS SITTING HERE A KEY IS USELESS!
string whothat = llKey2Name(whositting);
// SPLIT THER NAME UP
list name = llParseString2List(whothat, [" "], []);
// 0 is the First name change to 1 if you want to use LASTNAME
string who = llList2String(name, 0);
// Get the Length of the name
integer length = llStringLength(who);
// DELETE EVERYTHING AFTER LAST LETTER
string firstletter= llDeleteSubString(who, 1, length);

// CONVERT IT ALL INTO LOWERCASE
firstletter = llToLower(firstletter);
winnerletter = llToLower(winnerletter);

// OK SO LETS SEE THEN IF THIS MATCHES
if(firstletter == winnerletter)
{
llSay(0, "We Have a Winner!!!");
llUnSit(whositting);

// to give a different inventory item type,
// replace "INVENTORY_OBJECT" with "INVENTORY_NOTECARD", etc.
llGiveInventory(whositting,llGetInventoryName(INVENTORY_OBJECT, 0));

getnewletter();
}
// NOPE THEY LOSE!!
else
{
llSay(0, "Your first name doesn't begin with the letter "+winnerletter+ " it's "+firstletter);
llUnSit(whositting);
}
}

// SUB TO GET A NEW LETTER
getnewletter()
{
// LETS SHUFFLE THE LIST AND GET A LETTER!
list shuffled = llListRandomize(letters, 1);
// NOW LETS SAY
winnerletter = llList2String(shuffled, 0);
llShout(0, "We are now looking for a lucky winner who's firstname starts with "+winnerletter);
llSetText("Current letter is "+winnerletter, <1,1,1>, 1);
}


default
{
state_entry()
{
// OK LETS GET THE DEBIT PERMISSIONS
llRequestPermissions(llGetOwner(), PERMISSION_DEBIT );
}

timer()
{
// TIMER HAS RUN GET A NEW LETTER!!
getnewletter();
}

changed(integer change)
{
if (change & CHANGED_INVENTORY)
{
// YOU CHANGED THE SCRIPT OR SOMETHING IN HERE
// RESET THE SCRIPT
llResetScript();
}
if (change & CHANGED_LINK)
{
key av = llAvatarOnSitTarget();
if (av) { checkname(llAvatarOnSitTarget());}
}
}
// OK CHECKING RUNTIME PERMISSIONS
run_time_permissions (integer perm)
{
// OK WE GRANTED IT DEBIT RIGHTS
if(perm & PERMISSION_DEBIT)
{
// START BE GETTING A LETTER
getnewletter();

// THIS CONVERTS THE MINUITES INTO SECONDS WHICH IS WHAT LSL LIKES FOR TIMERS
timerevent = (changeletter * 60);

// START THE TIMER EVENT
llSetTimerEvent(timerevent);

// MAKE A SIT TARGET
llSitTarget(<0.0, 0.0, 0.1>, ZERO_ROTATION);
}
}
}
Reply


#2
@Famenig good contribution to the forum.
Reply


#3
good stuff, i could have used this a few years back! thanks...keep sharing bro
Reply




Possibly Related Threads…
Thread Author Replies Views Last Post
  Simple paysplit vendor wootwoot 1 2,616 06-28-2016, 05:02 PM
Last Post: Summer
  simple "set pos" steadymobbin 0 2,242 02-18-2013, 02:59 AM
Last Post: steadymobbin
  Camp Chair Get L$ steadymobbin 0 1,997 02-18-2013, 01:51 AM
Last Post: steadymobbin

Forum Jump:

1 Guest(s)
Share this:

About Second Life Copybot

Second Life CopyBot Forum is a place where you can get items for Second Life and other vitual worlds for free. With our CopyBot viewers you can export and import any content from these virtual worlds and modify them in 3D software such as Blender, 3D studio Macx etc...