// 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