Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //#####################################################################
- //##### ESte NPC foi idealizado e produzido por Mclzeszen™ ############
- //##### ©Copy Saga Brasil Ragnarok Online #############################
- //##### Todos os direitos reservados® #################################
- //##### Antes de qualquer modificação por favor mandar PM #############
- //#####################################################################
- prontera,147,154,5 script Loteria 1_M_LIBRARYMASTER,{
- set @npc$,"^0006D3...:::LOTERIA:::...^000000"; //nome do npc
- set @price,500000; //valor do bilhete
- set @maxApostas,30; //Numero maximo de apostas para cada char
- set @Servidor$,"ProvidenceRO"; //Nome do seu servidor
- if(!$acumulado){ set $premio,10000000;} //se tiver acumulado o valor não é 10kk caso contrário é.
- query_sql "SELECT `bilhete`,`id_b` FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"'",.@blot,.@id; //Conta as apostas
- query_sql "SELECT `sorteio` FROM `loteria_s`",.@slot; //consulta numeros do ultimo sorteio
- //Fim variaveis
- if($fechado){ //Se estiver em horário de pagamento de ganhadores apostas fechadas de 17 às 23 horas
- mes @npc$;
- mes "Me desculpe!";
- mes "Estamos reorganizando nosso sistema para o proximo sorteio.";
- mes "Volte para fazer apostas às 23 Horas";
- mes "Agradecemos pela preferência.";
- next;
- mes @npc$;
- mes "Gostaria consultar algo?";
- next;
- switch(select("- Ver meus bilhetes","- Ver o resultado,","- Sair")){
- case 1:
- goto L_NUMEROS;
- end;
- case 2:
- goto LRS;
- end;
- case 3:
- goto L_FIM;
- end;
- }
- close;
- }
- if(getarraysize(.@blot) >= @maxApostas) goto L_INI; //Se o player já tiver feito o max de apostas
- callfunc("bilhete",.@bilhete); //Verifica se já existe os numeros na lista de bilhetes dele.
- query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"' and `bilhete` = '"+.@bilhete+"'",.@valida;
- if(.@valida){ //Se já tiver ele vai pedir pra tentar novamente. Não coloquei loop pra evitar travamentos
- mes @npc$;
- mes "Desculpe... Meu iPad Travou.";
- mes "Por favor tente novamente em alguns segundos.";
- close;
- }
- //parte de explicação
- L_INI:
- if(Sex == 1){set .sex$,"o";}else{set .sex$,"a";} //Coloquei esta condição pq meu emuilador não funciona a função strsex()
- mes @npc$;
- mes "Seja bem vind"+.sex$+" à Loteria!";
- mes "Eu trabalho na loteria do "+@Servidor$+".";
- mes "Eu faço parte da comissão de apostas,";
- mes "e você pode ficar milhonário em uma jogada só.";
- mes "É assim... Você faz uma aposta e eu lhe dou os números aleatórios gerados";
- mes "no meu iPad, e todos os dias às 17:00 Horas (Brasilia)";
- mes "ocorre o sorteio.";
- mes "Se ninguém ganhar o premio fica acumulado.";
- mes "O prêmio atual está em:";
- mes "^ff0000"+$premio+"^000000 Zenys,";
- mes "Se ninguém ganhar o prêmio será acumulado.";
- mes "Quanto mais acumulado estiver maior será a bolada do ganhador!";
- next;
- //Fim explicação
- //Valores
- mes @npc$;
- mes "E ai? Vai arriscar uma apostinha?";
- mes "O valor da aposta é de: "+@price;
- mes "Você pode apostar ^ff0000"+@maxApostas+"^000000 vezes por personagem.";
- next;
- //Fim valores
- switch(select("- Vou apostar","- Números do ultimo sorteio","- Deixa pra próxima","- Meus Bilhetes","- Ultimo resultado")){ //Menu principal
- case 1:
- if(getarraysize(.@blot) >= @maxApostas) goto L_CHEGA;
- if(Zeny < @price) goto L_NZ; //Verifica se tem Zenys
- mes @npc$;
- mes "Muito bem "+strcharinfo(0)+"!";
- mes "Estou processando sua aposta aqui no iPad.";
- next;
- //Gera gera bilhete e conclui a aposta mandando o bilhete pra tabela Mysql
- set Zeny,Zeny-@price;
- mes @npc$;
- mes "Só mais um instante está gerando seu bilhete.";
- next;
- mes @npc$;
- mes "Pronto. Me desculpe a demora.";
- mes "Este é seu número: ^C4258B"+.@bilhete+"^000000";
- mes "Se você for ganhador... será anunciado e você tem até 23:00 Horas pra pegar seu prêmio.";
- mes "Você tambem pode consultar seu bilhete aqui comigo sempre que quizer!";
- mes "Tchau, até mais";
- query_sql "INSERT INTO `loteria_b` (`char_id`,`bilhete`,`aposta`) VALUES ('"+getcharid(0)+"','"+.@bilhete+"','"+@price+"')";
- close;
- //Fim aposta
- //Consulta ultimo sorteio
- case 2:
- if (.@slot == 0) {
- mes @npc$;
- mes strcharinfo(0)+".";
- mes "Não houve sorteio ontem!!!";
- mes "Sinto muito!";
- close;
- }else{
- mes @npc$;
- mes strcharinfo(0)+".";
- mes "Os números do ultimo sorteio são: ^C47030"+.@slot+"^000000";
- close;
- }
- //Fim consulta sorteio
- //Nada
- case 3:
- mes @npc$;
- mes "Ok! "+strcharinfo(0)+"!";
- mes "Volte quando quizer...";
- mes "Pense bem. Você pode ser um milhonário rs...";
- close;
- case 4:
- goto L_NUMEROS;
- close2;
- case 5:
- goto L_LAST;
- close2;
- }
- L_NUMEROS:
- //query para confirmar o premio ao player
- query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"' and `char_id` = '"+getcharid(0)+"'",.@winner;
- //query para pegar os nomes nos chares que ganharam
- if($nameW$ == ""){query_sql "SELECT `name` FROM `char` WHERE `char_id` IN (SELECT `char_id` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"')",$nameW$;}
- if(.@winner){
- set .@LotWon,getarraysize($nameW$);
- set .@SeuPremio,$premio*getarraysize($nameW$);
- ///Importando seu premio direto para o banco
- set #bankstorage,#bankstorage+$premio;
- //Dados do ganhadores do sorteio
- mes @npc$;
- if(.@LotWon > 1){ set .@a1$,"Você foi um dos ganhadores."; }else{ set .@a1$,"Você foi o único ganhador."; }
- mes .@a1$;
- mes "Seu prêmio no valor de ^ff0000"+$premio+"^000000";
- mes "Foi depositado na sua conta bancária.";
- mes "Verifique seu saldo no BANCO,";
- mes "E seus bilhetes foram deletados do nosso sistema";
- mes "Para evitar fraudes";
- next;
- mes @npc$;
- mes "^2EA686LISTA DE GANHADORES^000000";
- mes "^8A4D29|||^000000 = Nome do ganhador";
- mes "^FF0000|||^000000 = Valor do prêmio";
- mes "____________________________";
- for(set @i,0; @i < .@LotWon; set @i,@i+1)
- mes "-^8A4D29"+ $nameW$[@i] +"^000000 :^ff0000 "+$premio+"^000000";
- //
- //mes .@winner;
- next;
- mes @npc$;
- mes "Número de ganhadores: "+.@LotWon;
- mes "Número sorteado: "+.@slot;
- mes "Prêmio para cada um dos envolvidos!";
- mes "z$:^ff0000"+ $premio+"^000000";
- set $acumulado,0;
- query_sql "DELETE FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"'"; //Deleta o bilhete de quem ja recebeu o premio
- close;
- //Fim dos dados do sorteio
- }
- //Se não é ganhador e não está em horario de premiação o player confere os numeros da sua aposta
- mes @npc$;
- mes "^C4258B|||^000000 = Números do bilhete.";
- mes "^FF0000|||^000000 = Código do bilhete.";
- mes "__________________________";
- mes "Estes são seus bilhetes.";
- for(set .@n,0;.@n < getarraysize(.@blot); set .@n,.@n+1 ){
- set @cod,.@n+1;
- mes "Bilhete ^ff0000[ "+@cod+" ]^000000 : ^C4258B[ "+.@blot[.@n]+" ]^000000";
- }
- close;
- L_NZ:
- //SEm Zenys
- mes @npc$;
- mes "Você não tem Zenys suficiente para apostar.";
- mes "Volte quando tiver dinheiro!";
- close;
- LRS:
- query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"' and `char_id` = '"+getcharid(0)+"'",.@winner;
- if(.@winner){ goto L_NUMEROS; }
- if($nameW$ == ""){query_sql "SELECT `name` FROM `char` WHERE `char_id` in (SELECT `char_id` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"')",$nameW$;}
- query_sql "SELECT `char_id` FROM `loteria_b` WHERE `bilhete`",.@sorteado;
- if($nameW$ == ""){
- mes @npc$;
- mes "^2EA686NÃO HOUVE GANHADORES^000000";
- mes "O número sorteado foi: ^ff0000"+.@slot+"^000000";
- mes "O prêmio acumulou para: z$^ff0000"+$premio+"^000000";
- close;
- }else{
- mes @npc$;
- mes "^2EA686LISTA DE GANHADORES^000000";
- mes "O número sorteado foi: ^ff0000"+.@slot+"^000000";
- mes "^8A4D29|||^000000 = Nome do ganhador";
- mes "^FF0000|||^000000 = Valor do prêmio";
- mes "____________________________";
- //mes $nameW$;
- for(set @i,0; @i < getarraysize($nameW$); set @i,@i+1)
- mes "-^8A4D29 "+$nameW$[@i]+"^000000 :^ff0000 "+$recebeu+"^000000";
- close;
- }
- L_CHEGA:
- mes @npc$;
- mes "Você já fez ^ff0000"+@maxApostas+"^000000 apostas!!!";
- mes "Acho bom parar por aqui.";
- close;
- L_FIM:
- mes @npc$;
- mes "Volte sempre!!!";
- close;
- L_LAST:
- if($nameW$ == ""){
- mes @npc$;
- mes "^2EA686NÃO HOUVE GANHADORES^000000";
- mes "O número sorteado foi: ^ff0000"+.@sorteado+"^000000";
- mes "O prêmio acumulou para: z$^ff0000"+$premio+"^000000";
- close;
- }else{
- mes @npc$;
- mes "^2EA686LISTA DE GANHADORES^000000";
- mes "^8A4D29|||^000000 = Nome do ganhador";
- mes "^FF0000|||^000000 = Valor do prêmio";
- mes "____________________________";
- //mes $nameW$;
- for(set @i,0; @i < getarraysize($nameW$); set @i,@i+1)
- mes "-^8A4D29 "+$nameW$[@i]+"^000000 :^ff0000 "+$recebeu+"^000000";
- close;
- }
- }
- //Script responsagem pelo sorteio
- - script sorteio -1,{
- OnClock1701:
- set $recebeu,0;
- set $nameW$,"";
- set $fechado,1; //Torna as o periodo de apostas fechado
- query_sql "DELETE FROM `loteria_s`"; //Delete os numeros do ultimo sorteio
- callfunc("bilhete",.@resultado); //Chama a função para gerar os numeros do sorteio
- query_sql "INSERT INTO `loteria_s` (`sorteio`) VALUES ('"+.@resultado+"')"; //Insere os numeros sorteados na tabela
- announce "[Loteria] : ATENÇÃO! Resultado do sorteio da loteria: "+.@resultado+"!",8; //mensagem Global
- end;
- ///##################################################################################################################
- OnClock1702: //Anuncio de ganhadores ou acumulado
- query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `bilhete` IN (SELECT `sorteio` FROM `loteria_s`)",.res; //Pega os bilhetes que não foram deletados (Ganhadores)
- if(.res <= 0){ //Se não tivemrem ganhadores
- set $premio,$premio*2+500000; //Premio acumulado (Calculo do premio)
- announce "[Loteria] : Não houve ganhadores desta vêz!!! Prêmio acumulado para "+$premio+"! ",8; //Mensagem global
- set $acumulado,1; //O premio deixa de ser 10kk
- end;
- }
- if(getarraysize(.res) == 1){ //Se tiver um ganhador
- set $recebeu,$premio;
- announce "[Loteria] : Meus parabéns. Tivemos [ 1 ] ganhador do prêmio de z$: "+$premio,8; //Mensagem global
- end;
- }else if(getarraysize(.res) > 1){ //Se tiverem mais de um ganhador
- set $premio,$premio/getarraysize(.res); //Divide o premio para os ganhadores
- announce "[Loteria] : Meus parabéns. Tivemos [ "+getarraysize(.res)+" ] ganhadores! E cada um vai levar z$: "+$premio,8;
- set $recebeu,$premio;
- }
- ////#################################################################################################################
- OnClock2305: //As 23 horas abrem as apostas e os ganhadores não poderam mais resgatar o prêmio (Perderam o premio!!!)
- set $fechado,0;
- query_sql "DELETE FROM `loteria_b`"; //para reiniciar as apostas
- announce "[Loteria] : A Loteria já está aberta para apostas. Boa Sorte!",8;
- end;
- ///##################################################################################################################
- //Uso restrito Administrador para dar reload no npc // Volta ao premio de 10kk e abre as apostas se tiver fechado
- //Só use este se tiver certeza do que está fazendo
- OnWhisperGlobal:
- if(@whispervar0$ == "reload"){
- if(getgroupid() <= 80){
- //if(getgroupid() <= 80){ //Para novas versões do emulador
- end;
- }else{
- set $fechado,0;
- set $acumulado,0;
- query_sql "DELETE FROM `loteria_b`";
- dispbottom "Loteria: Variaveis resetadas!!!";
- }
- }
- if(@whispervar0$ == "fechar"){
- if(getgroupid() <= 80){
- //if(getgroupid() <= 80){ //Para novas versões do emulador
- set $fechado,1;
- dispbottom "Loteria: Loteria fechada!!!";
- }
- }
- }
- //##################################### FUNÇÂO PARA GERAR O BILHETE ############################################
- ///Ps.: Os números gerados aqui não podem conter zeros e não podem ter digitos repetidos no mesmo numero. Facilitando a vida dos apostadores
- function script bilhete {
- set .@lt1,rand(1,9);
- L_1:
- set .@lt2,rand(1,9);
- if(.@lt2 == .@lt1) goto L_1;
- L_2:
- set .@lt3,rand(1,9);
- if((.@lt3 == .@lt1) || (.@lt3 == .@lt2)) goto L_2;
- L_3:
- set .@lt4,rand(1,9);
- if((.@lt4 == .@lt1) || (.@lt4 == .@lt2) || (.@lt4 == .@lt3)) goto L_3;
- ///################################################################################
- ///Se for ativar números de 4 digitos é preciso desativar o de 3 digitos... (Ps.: 4 digitos é bem dificil de ganhar, (Bom para SERVERS Grandes)
- set getarg(0),.@lt1+""+.@lt2+""+.@lt3; //Gera Números de 3 digitos para os bilhetes
- //set getarg(0),.@lt1+""+.@lt2+""+.@lt3+""+.@lt4; //Para ativar Números de 4 Digitos para os bilhetes
- return;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement