// randomly scratching for http://upaste.me/r/9cd410072d49faa6c // didnt test .. unsure about result .. prontera,166,198,5 script Klotterygenerator 817,{ end; OnInit: $@keno_ticket_price = 10; // TICKET COST $@keno_prize_zeny = 30000000; // JACKPOT AMOUNT $@number_count = 20; // multiple of 5 $@number_range = 80; // max 127 $@announce_format$ = "[%d] [%d] [%d] [%d] [%d]"; // number range ( 1-80 ) while( .@i < $@number_range ){ $@array_number[.@i] = ( .@i + 1 ); .@i++; } waitingroom "Let's Play Keno Lotto",0; if ($LKID == 0) goto KENO_GenID; end; //Modify for own time //add any other HOURS OnMinute00: OnGenerate: if( !$KENO_Rigged ){ copyarray .@new_array_number[0],$@array_number[0],$@number_range; .@new_array_size = $@number_range; while( .@new_array_size && .@number_count < $@number_count ){ .@index = rand( .@new_array_size ); .@number_count++; if( !$KENO_Rigged ){ getd( "$LkW"+.@number_count ),.@new_array_number[.@index]; } deletearray .@new_array_number[.@index],1; .@new_array_size--; } } KENO_Broadcast: announce "Keno Teller: Welcome to KENO Lotto draw!",bc_all; for( .@i = 0; .@i < ( $@number_count / 5 ); .@i++ ){ .@count = 0; while( .@count < 5 ){ .@index = (( .@i * 5 ) + .@count ); .@value[.@count] = getd( "$LkW"+( .@index + 1 ); .@count++; } announce "The numbers are: "+sprintf( $@announce_format$,.@value[0],.@value[1],.@value[2],[.@value[3],.@value[4] ),bc_all; } announce "Congratulations to the winners of " + gettimestr("%H:%M",21) + " Keno Draw ",bc_all; KENO_GenID: set $LKID2,$LKID; set $LKID,rand (100000,999999); end; } // setS DRAW TO RIGGED NUMBERS // OnRiggedDraw: $KENO_Rigged = 1; for( .@i = 1; .@i <= 20 ) setd( "$LkW"+.@i ),getd( "$LkR"+.@i ); goto KENO_Broadcast; } // BEGIN LOTTERY SCRIPT - script klottery 76,{ KENO_Begin: .@gm_level = getgmlevel(); mes "[^008800Keno Teller^000000]"; mes "Winning KENO Lotto Numbers (^00FF00"+$LKID2+"^000000):"; for( .@i = 0; .@i < ( $@number_count / 5 ); .@i++ ){ .@count = 0; while( .@count < 5 ){ .@index = (( .@i * 5 ) + .@count ); .@value[.@count] = getd( "$LkW"+( .@index + 1 ); .@count++; } mes "^FF0000"+sprintf( $@announce_format$,.@value[0],.@value[1],.@value[2],[.@value[3],.@value[4] )+"^000000"; } if( $LKID > 99999 ){ mes "Your Ticket ("+#LkID+"):"; mes "^FF0000"+sprintf( $@announce_format$,#LkW1,#LkW2,#LkW3,#LkW4,#LkW5 )+"^000000"; mes "^FF0000"+sprintf( $@announce_format$,#LkW6,#LkW7,#LkW8,#LkW9,#LkW10 )+"^000000"; } mes "Next Draw-ID: ^FF0000" + $LKID + "^000000."; next; switch( select( "Claim Reward", "Buy Ticket", ( .@gm_level < 90 )?"":"[GM] Do Draw", ( .@gm_level < 90 )?"":"[GM] Rig Lottery", "Cancel" )){ case 1: if (#LkID != $LKID2){ mes "I'm sorry but it appears that you have an invalid ticket."; close; } // CHECKS HOW MANY NUMBERS MATCHED set @LkPrize,0; for( .@x = 1; .@x < 10; .@x++ ){ .@value = getd( "#LkW"+.@x ); for( .@y = 1; .@y < $@number_count; .@y++ ) if( .@value == getd( "$LkW"+.@y ) ){ .@Lk_prize++; break; } } mes "[^008800Keno Teller^000000]"; mes "You have matched ^0000FF"+.@Lk_prize+"^000000 numbers!"; if( !.@Lk_prize ){ mes "Bad luck, it appears you do not hold a winning ticket."; mes "Better luck next time!."; } else{ for( .@i = .@Lk_prize; .@i >= 1; .@i-- ) .@keno_price_zeny += ( $@keno_ticket_price * .@i ); .@keno_price_zeny -= 6288000; mes "Jackpot!"; mes "You've won ^0000FF"+.@keno_price_zeny+" Zeny^000000."; Zeny += .@keno_price_zeny; announce "Keno Teller: "+strcharinfo(0)+" has won "+.@keno_price_zeny+" Zeny!",bc_all; #LkID = 0; } break; case 2: if (#LkID == $LKID && #LkW1 != 0){ mes "It appears that you already have a ticket for today."; mes "You may only purchase one ticket per draw."; close; } mes "[^008800Keno Teller^000000]"; mes "Tickets cost ^0000FF" + $@keno_ticket_price + "z^000000."; mes "The Jackpot is ^FF0000" + $@keno_prize_zeny + "z^000000."; next; if( select( "Buy Ticket","Cancel" ) == 2 ) close; if (Zeny < $@keno_ticket_price){ mes "You can't afford a Keno ticket."; close; } Zeny -= $@keno_ticket_price; mes "[^008800Keno Teller^000000]"; mes "Would you like your numbers hand Picked or computer generated?"; next; switch( select( "Computer Generate","Hand Pick","Renew Ticket" ) ){ case 1: do{ // generate 10 number copyarray .@new_array_number[0],$@array_number[0],$@number_range; .@new_array_size = $@number_range; while( .@new_array_size && .@number_count < 10 ){ .@index = rand( .@new_array_size ); @Lk[.@number_count] = .@new_array_number[.@index]; .@number_count++; deletearray .@new_array_number[.@index],1; .@new_array_size--; } mes "[^008800Keno Teller^000000]"; mes "The computer has selected the following numbers:"; mes "^FF0000"+sprintf( $@announce_format$,@Lk[0],@Lk[1],@Lk[2],@Lk[3],@Lk[4] )+"^000000"; mes "^FF0000"+sprintf( $@announce_format$,@Lk[5],@Lk[6],@Lk[7],@Lk[8],@Lk[9] )+"^000000"; next; }while( select( "Confirm","Re-generate" ) == 2 ); break; case 2: OnRigger: .@char_name$ = strcharinfo(0); do{ .@string_compare$ = "|"; .@i = 0; while( .@i < 10 ){ mes "[^008800Keno Teller^000000]"; mes "Please Pick your numbers#"+( .@i+1 )+" (1-"+$@number_range+"):"; next; input .@value,1,$@number_range; if( !compare( .@string_compare$+"|","|"+.@value+"|" ) ){ .@string_compare$ = .@string_compare$ + .@value "|"; @Lk[.@i] = .@value; .@i++; }else{ message .@char_name$,"You cant enter same number twice."; } } mes "[^008800Keno Teller^000000]"; mes "Your numbers are:"; mes "^FF0000"+sprintf( $@announce_format$,@Lk[0],@Lk[1],@Lk[2],@Lk[3],@Lk[4] )+"^000000"; mes "^FF0000"+sprintf( $@announce_format$,@Lk[5],@Lk[6],@Lk[7],@Lk[8],@Lk[9] )+"^000000"; next; }while( select( "Confirm","Re-Pick" ) == 2 ); break; case 3: if( $LKID < 99999 ){ mes "I'm sorry but it appears that you have an invalid ticket."; close; } #LkID = LKID; break; default: close; } if( !$KENO_Rigged ){ // save to account if( @menu != 3 ){ for( .@i = 0; .@i < 20; .@i++ ) setd( "#LkW"+( .@i + 1 ) ),@Lk[.@i]; } } else{ for( .@i = 0; .@i < 20; .@i++ ) setd( "$LkW"+( .@i + 1 ) ),@Lk[.@i]; } mes "[^008800Keno Teller^000000]"; mes "Wait for the live broadcasted draw every hour!"; mes "You can claim your ticket between then and the next draw."; next; mes "[^008800Keno Teller^000000]"; mes "Good luck!"; break; case 3: doevent "Klotterygenerator::OnGenerate"; break; case 4: mes "[^008800Keno Teller^000000]"; mes "Lottery rigged for next draw."; $KENO_Rigged = 1; goto OnRigger; default: break; } close; } prontera,166,198,5 duplicate(klottery) Keno Lotto Teller 817