Second Life Copybot
PRTech Roulette Table Scripts 9k - Printable Version

+- Second Life Copybot (https://secondlifecopybot.com)
+-- Forum: SECOND LIFE PRODUCTS (https://secondlifecopybot.com/forum-1.html)
+--- Forum: SCRIPTS (https://secondlifecopybot.com/forum-1022.html)
+---- Forum: SCRIPTS (https://secondlifecopybot.com/forum-8.html)
+----- Forum: Business Scripts (https://secondlifecopybot.com/forum-44.html)
+----- Thread: PRTech Roulette Table Scripts 9k (/thread-635.html)



PRTech Roulette Table Scripts 9k - steadymobbin - 02-18-2013

PHP Code:
/////////////////////////////////////////////////////////////////////////////////////////////////
// PARSER ///////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
string sep ";";
string putVar(string src,string varName,string varValue) {
    list 
varSet llParseString2List(llBase64ToString(src),[sep],[]);   
    
integer count;
    for(
count=0;count<llGetListLength(varSet);count++) {
        list var = 
llParseString2List(llList2String(varSet,count),["="],[]);
        if(
llList2String(var,0) == varName) {
            
varSet llListReplaceList(varSet,[varName "=" varValue],count,count);
            
src llDumpList2String(varSet,sep);
            return 
llStringToBase64(src);
        }    
    }
    
src llDumpList2String(varSet + [varName "=" varValue],sep);
    return 
llStringToBase64(src);
}
string getVar(string src,string varName) {
    list 
varSet llParseString2List(llBase64ToString(src),[sep],[]);
    
integer count;
    for(
count=0;count<llGetListLength(varSet);count++) {
        list var = 
llParseString2List(llList2String(varSet,count),["="],[]);
        if(
llList2String(var,0) == varName) return llList2String(var,1);      
    }
    return 
"";
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// PARSER ///////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

list the_wheel = ["?""2""14""35""23""4""16""26""21""6""18""31""19""8""12""29""25""10""27""00""1""13""36""24""3""15""34""22""5""17""7""33""30""11""32""28""9""20""0"];

float on_spin_time 20.0;
integer time_counter;
integer wheel_busy;  //must be higher than 18, or delay will fail

// MENU
integer menuChannel = -1;
integer menuListenId;
showMenu(string button)
{
    
menuChannel = -(integer)llFrand(10000000) - 1;
    
menuListenId llListen(menuChannel,llKey2Name(llGetOwner()),llGetOwner(),"");
    
    
string strBetLimit "BET LIMIT: (no limit)";
    if((integer)
getVar(llGetObjectDesc(),"betlimit")) strBetLimit "BET LIMIT: " getVar(llGetObjectDesc(),"betlimit") + "L$";
    
string text "CHOOSE AN OPTION\n \n";
    if(
button != ""llDialog(llGetOwner(),text "STATUS: enabled\n" strBetLimit,[button] + ["BET LIMIT","<RESET>","[CLOSE]"],menuChannel);
    else 
llDialog(llGetOwner(),text "STATUS: disabled\n" strBetLimit,["BET LIMIT","<RESET>","[CLOSE]"],menuChannel);
    
}

integer betListenId;
askBetLimit()
{
    
betListenId llListen(0,llKey2Name(llGetOwner()),llGetOwner(),"");
    
osay("Please say the bet limit for this roulette machine (0 = no limit)...");
}

//Function ears (for listen)
string ears(integer channelstring namekey idstring msg)
{
    if(
id != llGetOwner()) return "";
    if(
channel == menuChannel)
    {
        
llListenRemove(menuListenId);
        if(
msg == "ON") return "on";
        else if(
msg == "OFF") return "off";
        else if(
msg == "BET LIMIT"askBetLimit();
        else if(
msg == "<RESET>")
        {
            
llMessageLinked(LINK_ALL_OTHERS1234512345"resetscript"NULL_KEY);
            
llSleep(1.5);
            
llResetScript();
        }
    }
    else if(
channel == 0)
    {
        
llListenRemove(betListenId);
        
llSetObjectDesc(putVar(llGetObjectDesc(),"betlimit",(string)((integer)msg)));
        
llMessageLinked(LINK_ALL_CHILDREN,(integer)getVar(llGetObjectDesc(),"betlimit"),"betlimit",NULL_KEY);
        if((integer)
getVar(llGetObjectDesc(),"betlimit") == 0osay("Bet limit disabled. Any bet amount will be accepted.");
        else 
osay("Bet limit changed to L$" getVar(llGetObjectDesc(),"betlimit") + ".");
    }
    
    return 
"";
}

//Function osay (quick ownersay)
osay (string msg)
{
    
llOwnerSay("Oo. " msg);
}

//this state decides the result, spins the ball, and plays the sound
spinme(){
    
llPlaySound("e87c6247-ed65-2ee0-0d73-8b2f6c83453b"0.2);
    
//determine where the ball will stop
    
integer my_value RandInt(1,38);

    
//0.1653  don't change these numbers
    
float len = (my_value 0.1653) + 13.5664;
    
    
llWhisper(0"Ball now in motion.");
    
//                                          int     int         int         float   float           float
    //                  mode,                   side,   x_frames,   y_frames,   start,  length,         rate);
    //                                                                                  (PI * 4) + 1
    //                                                                                  + s2nd_rate         
    
llSetTextureAnim(ANIM_ON ROTATE SMOOTH,  0,      6,          1,          0,      len,           6);
    
    
string call llList2String(the_wheelmy_value);

    
string color;
    if ((
my_value 2) == 0){color "red";}
    else{
color "black";}
    
    
//set 0 and 00 to house
    
if ((call == "0") || (call == "00")) color "house";
    

    
llSleep(3.5);
    
llWhisper (0call " (" color ")");
    
integer call_num = (integer)call;
    
    if ((
call != "0") && (call != "00"))
    {
                       
//even odd
        
if ((call_num 2) == 0)
        {
            
//here message goes, what won, what won, blank
            
llMessageLinked(88"even"NULL_KEY);
        }else{
            
llMessageLinked(55"odd"NULL_KEY);
        }
        
        
//osay("analyze black red");
        
if (color == "red")
        {
            
//osay("sending linked messages to red and black announcing RED won");
            
llMessageLinked(77"red"NULL_KEY);
        }else{
            
//osay("sending linked messages to red and black announcing BLACK won");
            
llMessageLinked(66"black"NULL_KEY);
        }
        
                
//osay("analyze row");
        
if ((call_num == 1) || (call_num == 4) || (call_num == 7) || (call_num == 10) || (call_num == 13) || (call_num == 16) || (call_num == 19) || (call_num == 22) || (call_num == 25) || (call_num == 28) || (call_num == 31) || (call_num == 34)){
                
llMessageLinked(1313"lowrow"NULL_KEY); //low row

        
}else if((call_num == 2) || (call_num == 5) || (call_num == 8) || (call_num == 11) || (call_num == 14) || (call_num == 17) || (call_num == 20) || (call_num == 23) || (call_num == 26) || (call_num == 29) || (call_num == 32) || (call_num == 35)){
                
llMessageLinked(2626"midrow"NULL_KEY); //mid row

        
}else if((call_num == 3) || (call_num == 6) || (call_num == 9) || (call_num == 12) || (call_num == 15) || (call_num == 18) || (call_num == 21) || (call_num == 24) || (call_num == 27) || (call_num == 30) || (call_num == 33) || (call_num == 36)){
                
llMessageLinked(2727"highrow"NULL_KEY); //high row
        
}
        
        
//osay("analyze 18s");
        
if ((call_num >= 1) && (call_num <= 18)){
                
llMessageLinked(99"1-18"NULL_KEY); //1-18
        
}else if((call_num >= 19) && (call_num <= 36)){
                
llMessageLinked(44"19-36"NULL_KEY); //1-18
        
}
        
        
//osay("analyze 12s");
        
if ((call_num >= 1) && (call_num <= 12)){
                
llMessageLinked(1212"1st 12"NULL_KEY); //1st12
        
}else if ((call_num >= 13) && (call_num <= 24)){
                 
llMessageLinked(1111"2nd 12"NULL_KEY); //2nd12
        
}else if ((call_num >= 24) && (call_num <= 36)){
                
llMessageLinked(1010"3rd 12"NULL_KEY); //3rd12
        
}
        
        
//osay("analyze corners");
        
if ((call_num == 2) || (call_num == 3) || (call_num == 5) || (call_num == 6)) 
            
llMessageLinked(3333"2 3 5 6"NULL_KEY); //2-3-5-6
        
if ((call_num == 8) || (call_num == 9) || (call_num == 11) || (call_num == 12)) 
            
llMessageLinked(3232"8 9 11 12"NULL_KEY); //8-9-11-12
        
if ((call_num == 14) || (call_num == 15) || (call_num == 17) || (call_num == 18)) 
            
llMessageLinked(3131"14 15 17 18"NULL_KEY); //14-15-17-18
        
if ((call_num == 20) || (call_num == 21) || (call_num == 23) || (call_num == 24)) 
            
llMessageLinked(3030"20 21 23 24"NULL_KEY); //20-21-23-24 
        
if ((call_num == 26) || (call_num == 27) || (call_num == 29) || (call_num == 30)) 
            
llMessageLinked(2929"26 27 29 30"NULL_KEY); //26-27-29-30
        
if ((call_num == 32) || (call_num == 33) || (call_num == 35) || (call_num == 36)) 
            
llMessageLinked(2828"32 33 35 36"NULL_KEY); //32-33-35-36
    
        //osay("analyze straight bets");
        
if (call_num == 1llMessageLinked(2525"1"NULL_KEY); //one
        
if (call_num == 4llMessageLinked(2424"4"NULL_KEY); //four
        
if (call_num == 7llMessageLinked(2323"7"NULL_KEY); //seven
        
if (call_num == 10llMessageLinked(2222"10"NULL_KEY); //ten
        
if (call_num == 13llMessageLinked(2121"13"NULL_KEY); //thirteen
        
if (call_num == 16llMessageLinked(2020"16"NULL_KEY); //sixteen
        
if (call_num == 19llMessageLinked(1919"19"NULL_KEY); //nineteen
        
if (call_num == 22llMessageLinked(1818"22"NULL_KEY); //twentytwo
        
if (call_num == 25llMessageLinked(1717"25"NULL_KEY); //twentyfive
        
if (call_num == 28llMessageLinked(1616"28"NULL_KEY); //twentyeight
        
if (call_num == 31llMessageLinked(1515"31"NULL_KEY); //thirtyonehai
        
if (call_num == 34llMessageLinked(1414"34"NULL_KEY); //thirtyfour
            
    
}else
    {
        
llWhisper (0"House wins.");
    }
    
llWhisper(0,"Paying winners. Please wait to reset...");
    
llSleep(1);
    
//below is to empty betting lists
    //llMessageLinked(LINK_ALL_OTHERS, 0, "clear", NULL_KEY);
    //llSleep(2.5);
    //llWhisper(0, "Ready to be reset. Please wait...");
}

integer RandInt(integer lowerinteger higher) {
    
integer Range higher lower;
    
integer Result llFloor(llFrand(Range 1)) + lower;
    return 
Result;
}

reset()
{
    
llSetTextureAnim(ANIM_ON000000);
    
time_counter 0;
    
wheel_busy FALSE;
}

default
{
    
//all the code in default just shoves over to state off
    
state_entry ()
    {
        
llSetText("ROULETTE OFF\n(do not bet)\n.\n.\n.\n.",<1,0,0>,1);
        
llRequestPermissions(llGetOwner(),PERMISSION_DEBIT);
    }
    
    
run_time_permissions(integer perms)
    {
        if(!(
perms PERMISSION_DEBIT)) return;
        
        
osay("starting...");
        
state off;
    }
    
    
touch_start(integer touchers)
    {
        if(
llGetLinkName(llDetectedLinkNumber(0)) == "help")
        {
            
llGiveInventory(llDetectedKey(0),"roulette_player_help");
            return;
        }
        
        if(
llDetectedKey(0) != llGetOwner()) return;
        
//showMenu("");
        
llResetScript();
    }
    
    
listeninteger chanstring namekey idstring message )
    {if(
ears(channameidmessage) == "off"state off;}
    
    
on_rez(integer param)
    {
llResetScript();}
    
changed(integer change)
    {if(
change CHANGED_OWNERllResetScript();}
}

state off
{
    
state_entry ()
    {
        
osay ("Off mode");
        
reset();
        
llSetText("ROULETTE OFF\n(do not bet)\n.\n.\n.\n.",<1,0,0>,1);
        
showMenu("ON");
    }
    
    
touch_start(integer touchers)
    {
        if(
llGetLinkName(llDetectedLinkNumber(0)) == "help")
        {
            
llGiveInventory(llDetectedKey(0),"roulette_player_help");
            return;
        }
        
        if(
llDetectedKey(0) != llGetOwner()) return;
        
showMenu("ON");
    }
    
    
listeninteger chanstring namekey idstring message )
    {if(
ears(channameidmessage) == "on"state on;}
    
    
on_rez(integer param)
    {
llResetScript();}
    
changed(integer change)
    {if(
change CHANGED_OWNERllResetScript();}
}

state on
{
    
state_entry ()
    {
        
osay("On Mode");
        
reset();
        
llSetText("",<0,0,0>,0);
    }
    
    
touch_start(integer touchers)
    {
        if(
llGetLinkName(llDetectedLinkNumber(0)) == "help")
        {
            
llGiveInventory(llDetectedKey(0),"roulette_player_help");
            return;
        }
        
        if(
llDetectedKey(0) != llGetOwner()) return;
        
showMenu("OFF");
    }
    
    
listeninteger chanstring namekey idstring message)
    {if(
ears(channameidmessage) == "off"state off;}
    
    
link_message(integer senderinteger numstring strkey id)
    {
        if(
str == "pay")
        {
            
string av_name llKey2Name(id);
            
llGiveMoney(id,llAbs(num));
            if(
num 0llWhisper(0av_name " won L$" + (string)num " on " llGetLinkName(sender) + "!");    
        }
        else if(
wheel_busy) return;
        if(
str == "gotL")
        {
            
wheel_busy TRUE;
            
llWhisper(0"Wheel spins in " + (string)((integer)on_spin_time) + " seconds.");
            
llSetTimerEvent(on_spin_time 15);
        }
    }
    
    
timer()
    {
        ++
time_counter;
        if((
time_counter 2) == 1)
        {
            
llWhisper(0"Last chance to get your bet in, spinning in 10 seconds.");
            
llSetTimerEvent(10);
        }
        else
        {
            
llSetTimerEvent(0);
            
spinme();
            
llSetTextureAnim(FALSE000000);
            
llSleep(1);
            
llMessageLinked(LINK_ALL_CHILDREN,1234512345,"resetscript",NULL_KEY);
            
wheel_busy FALSE;
            
llWhisper (0"Wheel reset. Ready for new bets.");
        }
            
    }
    
    
on_rez(integer param)
    {
llResetScript();}
    
changed(integer change)
    {if(
change CHANGED_OWNERllResetScript();}


PHP Code:
/////////////////////////////////////////////////////////////////////////////////////////////////
// PARSER ///////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////
string sep ";";
string putVar(string src,string varName,string varValue) {
    list 
varSet llParseString2List(llBase64ToString(src),[sep],[]);   
    
integer count;
    for(
count=0;count<llGetListLength(varSet);count++) {
        list var = 
llParseString2List(llList2String(varSet,count),["="],[]);
        if(
llList2String(var,0) == varName) {
            
varSet llListReplaceList(varSet,[varName "=" varValue],count,count);
            
src llDumpList2String(varSet,sep);
            return 
llStringToBase64(src);
        }    
    }
    
src llDumpList2String(varSet + [varName "=" varValue],sep);
    return 
llStringToBase64(src);
}
string getVar(string src,string varName) {
    list 
varSet llParseString2List(llBase64ToString(src),[sep],[]);
    
integer count;
    for(
count=0;count<llGetListLength(varSet);count++) {
        list var = 
llParseString2List(llList2String(varSet,count),["="],[]);
        if(
llList2String(var,0) == varName) return llList2String(var,1);      
    }
    return 
"";
}
/////////////////////////////////////////////////////////////////////////////////////////////////
// PARSER ///////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////////////////

list people_who_bet = [];

integer win;
start_up()
{
    
string name llGetObjectName();
    if( (
name == "1")||(name == "4")||(name == "7")||(name == "10")||
        (
name == "13")||(name == "16")||(name == "19")||(name == "22")||
        (
name == "25")||(name == "28")||(name == "31")||(name == "34")) win 36;
    else if((
name == "2 3 5 6")||(name == "8 9 11 12")||(name == "14 15 17 18")||
            (
name == "20 21 23 24")||(name == "26 27 29 30")||(name == "32 33 35 36")) win 9;
    else if((
name == "even")||(name == "odd")||(name == "red")||(name == "black")||
            (
name == "1-18")||(name == "19-36")) win 2;
    else if((
name == "1st 12")||(name == "2nd 12")||(name == "3rd 12")||
            (
name == "lowrow")||(name == "midrow")||(name == "highrow")) win 3;
    else 
win 0;
}

pay(key avinteger prize)
{
llMessageLinked(LINK_ROOT,prize,"pay",av);}

reset()
{
people_who_bet = [];}

default
{
    
state_entry()
    {
        
start_up();
        
reset();
    }
    
    
on_rez(integer param)
    {
llResetScript();}

    
touch_start(integer total_number)
    {
llWhisper(0,"Pay me to bet.");}
    
    
money(key giverinteger amount)
    {
        
integer betLimit = (integer)getVar(llGetObjectDesc(),"betlimit");
        if((
betLimit!=0)&&(amount betLimit))
        {
            
integer dif amount betLimit;
            
llWhisper(0,llKey2Name(giver) + ", the current bet limit on this machine is L$" + (string)betLimit ". L$" + (string)dif " change returned.");
            
pay(giver,-dif);
            
amount betLimit;
        }
        
        
people_who_bet += (string)amount "^" + (string)giver;
        
llWhisper(0llKey2Name(giver) + ", you bet L$" + (string)amount " on " llGetObjectName() + ".");
        
llMessageLinked(10"gotL"NULL_KEY);
    }
    
    
link_message(integer sender_numinteger numstring strkey id)
    {
        if((
str == llGetObjectName()) && (num == llGetLinkNumber()))
        {
            
integer len llGetListLengthpeople_who_bet );
            
integer x;
            for (
0lenx++)
            {
                
string data llList2String(people_who_betx);
                
string prize llGetSubStringdata0, (llSubStringIndexdata"^" ) - 1) );
                
key av llGetSubStringdata, (llSubStringIndexdata"^" ) + 1), -);
                
integer payout win * (integer)prize;
                
pay(av,payout);
            }
            
reset();
        }
        else if(
str == "betlimit"llSetObjectDesc(putVar(llGetObjectDesc(),"betlimit",(string)num));
        else if ((
sender_num == 1) && (str == "resetscript") && (num == 1234512345)) llResetScript();
    }