09-21-2014, 06:32 PM
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);
}
}
}
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);
}
}
}