Advertisement
Guest User

Untitled

a guest
Jan 24th, 2018
246
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.07 KB | None | 0 0
  1. //#####################################################################
  2. //##### ESte NPC foi idealizado e produzido por Mclzeszen™ ############
  3. //##### ©Copy Saga Brasil Ragnarok Online #############################
  4. //##### Todos os direitos reservados® #################################
  5. //##### Antes de qualquer modificação por favor mandar PM #############
  6. //##### para mclzeszen Forum Cronus Emulator ### LOTERIA v2.5 #########
  7. //#####################################################################
  8. //Links
  9. //Exibição http://forum.cronus-emulator.com/pastebin/1r66uav4shq87/
  10. //BBCode Exibição [url=http://forum.cronus-emulator.com/pastebin/1r66uav4shq87/]Script: 1r66uav4shq87[/url]
  11. //Download http://forum.cronus-emulator.com/pastebin/1r66uav4shq87/dl/
  12. //BBCode Baixar [url=http://forum.cronus-emulator.com/pastebin/1r66uav4shq87/dl/]Baixar paste: 1r66uav4shq87[/url]
  13.  
  14.  
  15. //
  16. //--
  17. //-- Structure for table `loteria_b`
  18. //--
  19.  
  20. // DROP TABLE IF EXISTS `loteria_b`;
  21. // CREATE TABLE IF NOT EXISTS `loteria_b` (
  22. // `id_b` int(11) NOT NULL DEFAULT '1',
  23. // `char_id` int(11) NOT NULL,
  24. // `bilhete` int(11) NOT NULL,
  25. // `aposta` int(11) NOT NULL
  26. // ) ENGINE=MyISAM;
  27. //
  28. //--
  29. //-- Structure for table `loteria_s`
  30. //--
  31.  
  32. // DROP TABLE IF EXISTS `loteria_s`;
  33. // CREATE TABLE IF NOT EXISTS `loteria_s` (
  34. // `sort_id` int(11) NOT NULL,
  35. // `sorteio` int(11) NOT NULL
  36. // ) ENGINE=MyISAM;
  37.  
  38. //Fim tabelas mysql
  39.  
  40. //Variaveis
  41. prontera,115,142,5 script Loteria 1_M_LIBRARYMASTER,{
  42.  
  43. set @npc$,"^0006D3...:::LOTERIA:::...^000000"; //nome do npc
  44. set @price,500000; //valor do bilhete
  45. set @maxApostas,30; //Numero maximo de apostas para cada char
  46. set @Servidor$,"AegirRO"; //Nome do seu servidor
  47. if(!$acumulado){ set $premio,10000000;} //se tiver acumulado o valor não é 10kk caso contrário é.
  48. query_sql "SELECT `bilhete`,`id_b` FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"'",.@blot,.@id; //Conta as apostas
  49. query_sql "SELECT `sorteio` FROM `loteria_s`",.@slot; //consulta numeros do ultimo sorteio
  50. //Fim variaveis
  51.  
  52. if($fechado){ //Se estiver em horário de pagamento de ganhadores apostas fechadas de 17 às 23 horas
  53. mes @npc$;
  54. mes "Me desculpe!";
  55. mes "Estamos reorganizando nosso sistema para o proximo sorteio.";
  56. mes "Volte para fazer apostas às 23 Horas";
  57. mes "Agradecemos pela preferência.";
  58. next;
  59. mes @npc$;
  60. mes "Gostaria consultar algo?";
  61. next;
  62. switch(select("- Ver meus bilhetes","- Ver o resultado,","- Sair")){
  63. case 1:
  64. goto L_NUMEROS;
  65. end;
  66. case 2:
  67. goto LRS;
  68. end;
  69. case 3:
  70. goto L_FIM;
  71. end;
  72.  
  73. }
  74. close;
  75. }
  76.  
  77. if(getarraysize(.@blot) >= @maxApostas) goto L_INI; //Se o player já tiver feito o max de apostas
  78. callfunc("bilhete",.@bilhete); //Verifica se já existe os numeros na lista de bilhetes dele.
  79. query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"' and `bilhete` = '"+.@bilhete+"'",.@valida;
  80. if(.@valida){ //Se já tiver ele vai pedir pra tentar novamente. Não coloquei loop pra evitar travamentos
  81. mes @npc$;
  82. mes "Desculpe... Meu iPad Travou.";
  83. mes "Por favor tente novamente em alguns segundos.";
  84. close;
  85.  
  86. }
  87.  
  88.  
  89. //parte de explicação
  90. L_INI:
  91. if(Sex == 1){set .sex$,"o";}else{set .sex$,"a";} //Coloquei esta condição pq meu emuilador não funciona a função strsex()
  92. mes @npc$;
  93. mes "Seja bem vind"+.sex$+" à Loteria!";
  94. mes "Eu trabalho na loteria do "+@Servidor$+".";
  95. mes "Eu faço parte da comissão de apostas,";
  96. mes "e você pode ficar milhonário em uma jogada só.";
  97. mes "É assim... Você faz uma aposta e eu lhe dou os números aleatórios gerados";
  98. mes "no meu iPad, e todos os dias às 17:00 Horas (Brasilia)";
  99. mes "ocorre o sorteio.";
  100. mes "Se ninguém ganhar o premio fica acumulado.";
  101. mes "O prêmio atual está em:";
  102. mes "^ff0000"+$premio+"^000000 Zenys,";
  103. mes "Se ninguém ganhar o prêmio será acumulado.";
  104. mes "Quanto mais acumulado estiver maior será a bolada do ganhador!";
  105. next;
  106. //Fim explicação
  107.  
  108. //Valores
  109. mes @npc$;
  110. mes "E ai? Vai arriscar uma apostinha?";
  111. mes "O valor da aposta é de: "+@price;
  112. mes "Você pode apostar ^ff0000"+@maxApostas+"^000000 vezes por personagem.";
  113. next;
  114. //Fim valores
  115.  
  116.  
  117. switch(select("- Vou apostar","- Números do ultimo sorteio","- Deixa pra próxima","- Meus Bilhetes","- Ultimo resultado")){ //Menu principal
  118. case 1:
  119. if(getarraysize(.@blot) >= @maxApostas) goto L_CHEGA;
  120. if(Zeny < @price) goto L_NZ; //Verifica se tem Zenys
  121. mes @npc$;
  122. mes "Muito bem "+strcharinfo(0)+"!";
  123. mes "Estou processando sua aposta aqui no iPad.";
  124. next;
  125.  
  126. //Gera gera bilhete e conclui a aposta mandando o bilhete pra tabela Mysql
  127. set Zeny,Zeny-@price;
  128. mes @npc$;
  129. mes "Só mais um instante está gerando seu bilhete.";
  130. next;
  131. mes @npc$;
  132. mes "Pronto. Me desculpe a demora.";
  133. mes "Este é seu número: ^C4258B"+.@bilhete+"^000000";
  134. mes "Se você for ganhador... será anunciado e você tem até 23:00 Horas pra pegar seu prêmio.";
  135. mes "Você tambem pode consultar seu bilhete aqui comigo sempre que quizer!";
  136. mes "Tchau, até mais";
  137. query_sql "INSERT INTO `loteria_b` (`char_id`,`bilhete`,`aposta`) VALUES ('"+getcharid(0)+"','"+.@bilhete+"','"+@price+"')";
  138. close;
  139. //Fim aposta
  140.  
  141. //Consulta ultimo sorteio
  142. case 2:
  143. if (.@slot == 0) {
  144. mes @npc$;
  145. mes strcharinfo(0)+".";
  146. mes "Não houve sorteio ontem!!!";
  147. mes "Sinto muito!";
  148. close;
  149. }else{
  150. mes @npc$;
  151. mes strcharinfo(0)+".";
  152. mes "Os números do ultimo sorteio são: ^C47030"+.@slot+"^000000";
  153. close;
  154. }
  155. //Fim consulta sorteio
  156.  
  157. //Nada
  158. case 3:
  159. mes @npc$;
  160. mes "Ok! "+strcharinfo(0)+"!";
  161. mes "Volte quando quizer...";
  162. mes "Pense bem. Você pode ser um milhonário rs...";
  163. close;
  164.  
  165. case 4:
  166. goto L_NUMEROS;
  167. close2;
  168.  
  169. case 5:
  170. goto L_LAST;
  171. close2;
  172. }
  173.  
  174.  
  175. L_NUMEROS:
  176.  
  177. //query para confirmar o premio ao player
  178. query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"' and `char_id` = '"+getcharid(0)+"'",.@winner;
  179. //query para pegar os nomes nos chares que ganharam
  180. if($nameW$ == ""){query_sql "SELECT `name` FROM `char` WHERE `char_id` IN (SELECT `char_id` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"')",$nameW$;}
  181. if(.@winner){
  182. set .@LotWon,getarraysize($nameW$);
  183. set .@SeuPremio,$premio*getarraysize($nameW$);
  184.  
  185. ///Importando seu premio direto para o banco
  186. query_sql "UPDATE `account_data` SET `bank_vault` = `bank_vault` + '"+$premio+"' WHERE `account_id` = '"+getcharid(3)+"'";
  187.  
  188. //Dados do ganhadores do sorteio
  189. mes @npc$;
  190. if(.@LotWon > 1){ set .@a1$,"Você foi um dos ganhadores."; }else{ set .@a1$,"Você foi o único ganhador."; }
  191. mes .@a1$;
  192. mes "Seu prêmio no valor de ^ff0000"+$premio+"^000000";
  193. mes "Foi depositado na sua conta bancária.";
  194. mes "Verifique seu saldo no BANCO,";
  195. mes "E seus bilhetes foram deletados do nosso sistema";
  196. mes "Para evitar fraudes";
  197. next;
  198. mes @npc$;
  199. mes "^2EA686LISTA DE GANHADORES^000000";
  200. mes "^8A4D29|||^000000 = Nome do ganhador";
  201. mes "^FF0000|||^000000 = Valor do prêmio";
  202. mes "____________________________";
  203. for(set @i,0; @i < .@LotWon; set @i,@i+1)
  204. mes "-^8A4D29"+ $nameW$[@i] +"^000000 :^ff0000 "+$premio+"^000000";
  205.  
  206. //
  207. //mes .@winner;
  208. next;
  209. mes @npc$;
  210. mes "Número de ganhadores: "+.@LotWon;
  211. mes "Número sorteado: "+.@slot;
  212. mes "Prêmio para cada um dos envolvidos!";
  213. mes "z$:^ff0000"+ $premio+"^000000";
  214. set $acumulado,0;
  215. query_sql "DELETE FROM `loteria_b` WHERE `char_id` = '"+getcharid(0)+"'"; //Deleta o bilhete de quem ja recebeu o premio
  216. close;
  217. //Fim dos dados do sorteio
  218.  
  219. }
  220.  
  221. //Se não é ganhador e não está em horario de premiação o player confere os numeros da sua aposta
  222. mes @npc$;
  223. mes "^C4258B|||^000000 = Números do bilhete.";
  224. mes "^FF0000|||^000000 = Código do bilhete.";
  225. mes "__________________________";
  226. mes "Estes são seus bilhetes.";
  227. for(set .@n,0;.@n < getarraysize(.@blot); set .@n,.@n+1 ){
  228. set @cod,.@n+1;
  229. mes "Bilhete ^ff0000[ "+@cod+" ]^000000 : ^C4258B[ "+.@blot[.@n]+" ]^000000";
  230. }
  231. close;
  232. L_NZ:
  233. //SEm Zenys
  234. mes @npc$;
  235. mes "Você não tem Zenys suficiente para apostar.";
  236. mes "Volte quando tiver dinheiro!";
  237. close;
  238.  
  239. LRS:
  240. query_sql "SELECT `bilhete` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"' and `char_id` = '"+getcharid(0)+"'",.@winner;
  241. if(.@winner){ goto L_NUMEROS; }
  242. if($nameW$ == ""){query_sql "SELECT `name` FROM `char` WHERE `char_id` in (SELECT `char_id` FROM `loteria_b` WHERE `bilhete` = '"+.@slot+"')",$nameW$;}
  243. query_sql "SELECT `char_id` FROM `loteria_b` WHERE `bilhete`",.@sorteado;
  244. if($nameW$ == ""){
  245. mes @npc$;
  246. mes "^2EA686NÃO HOUVE GANHADORES^000000";
  247. mes "O número sorteado foi: ^ff0000"+.@slot+"^000000";
  248. mes "O prêmio acumulou para: z$^ff0000"+$premio+"^000000";
  249. close;
  250. }else{
  251. mes @npc$;
  252. mes "^2EA686LISTA DE GANHADORES^000000";
  253. mes "O número sorteado foi: ^ff0000"+.@slot+"^000000";
  254. mes "^8A4D29|||^000000 = Nome do ganhador";
  255. mes "^FF0000|||^000000 = Valor do prêmio";
  256. mes "____________________________";
  257. //mes $nameW$;
  258. for(set @i,0; @i < getarraysize($nameW$); set @i,@i+1)
  259. mes "-^8A4D29 "+$nameW$[@i]+"^000000 :^ff0000 "+$recebeu+"^000000";
  260. close;
  261. }
  262.  
  263.  
  264. L_CHEGA:
  265. mes @npc$;
  266. mes "Você já fez ^ff0000"+@maxApostas+"^000000 apostas!!!";
  267. mes "Acho bom parar por aqui.";
  268. close;
  269.  
  270. L_FIM:
  271. mes @npc$;
  272. mes "Volte sempre!!!";
  273. close;
  274.  
  275.  
  276. L_LAST:
  277. if($nameW$ == ""){
  278. mes @npc$;
  279. mes "^2EA686NÃO HOUVE GANHADORES^000000";
  280. mes "O número sorteado foi: ^ff0000"+.@sorteado+"^000000";
  281. mes "O prêmio acumulou para: z$^ff0000"+$premio+"^000000";
  282. close;
  283. }else{
  284. mes @npc$;
  285. mes "^2EA686LISTA DE GANHADORES^000000";
  286. mes "^8A4D29|||^000000 = Nome do ganhador";
  287. mes "^FF0000|||^000000 = Valor do prêmio";
  288. mes "____________________________";
  289. //mes $nameW$;
  290. for(set @i,0; @i < getarraysize($nameW$); set @i,@i+1)
  291. mes "-^8A4D29 "+$nameW$[@i]+"^000000 :^ff0000 "+$recebeu+"^000000";
  292. close;
  293. }
  294.  
  295. }
  296.  
  297.  
  298. //Script responsagem pelo sorteio
  299. - script sorteio -1,{
  300.  
  301. OnClock1701:
  302. set $recebeu,0;
  303. set $nameW$,"";
  304. set $fechado,1; //Torna as o periodo de apostas fechado
  305. query_sql "DELETE FROM `loteria_s`"; //Delete os numeros do ultimo sorteio
  306. callfunc("bilhete",.@resultado); //Chama a função para gerar os numeros do sorteio
  307. query_sql "INSERT INTO `loteria_s` (`sorteio`) VALUES ('"+.@resultado+"')"; //Insere os numeros sorteados na tabela
  308. announce "[Loteria] : ATENÇÃO! Resultado do sorteio da loteria: "+.@resultado+"!",8; //mensagem Global
  309. end;
  310.  
  311.  
  312. ///##################################################################################################################
  313.  
  314.  
  315. OnClock1702: //Anuncio de ganhadores ou acumulado
  316.  
  317. 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)
  318.  
  319. if(.res <= 0){ //Se não tivemrem ganhadores
  320. set $premio,$premio*2+500000; //Premio acumulado (Calculo do premio)
  321. announce "[Loteria] : Não houve ganhadores desta vêz!!! Prêmio acumulado para "+$premio+"! ",8; //Mensagem global
  322. set $acumulado,1; //O premio deixa de ser 10kk
  323. end;
  324. }
  325.  
  326. if(getarraysize(.res) == 1){ //Se tiver um ganhador
  327. set $recebeu,$premio;
  328. announce "[Loteria] : Meus parabéns. Tivemos [ 1 ] ganhador do prêmio de z$: "+$premio,8; //Mensagem global
  329. end;
  330. }else if(getarraysize(.res) > 1){ //Se tiverem mais de um ganhador
  331. set $premio,$premio/getarraysize(.res); //Divide o premio para os ganhadores
  332. announce "[Loteria] : Meus parabéns. Tivemos [ "+getarraysize(.res)+" ] ganhadores! E cada um vai levar z$: "+$premio,8;
  333. set $recebeu,$premio;
  334. }
  335.  
  336.  
  337. ////#################################################################################################################
  338.  
  339.  
  340.  
  341.  
  342. OnClock2305: //As 23 horas abrem as apostas e os ganhadores não poderam mais resgatar o prêmio (Perderam o premio!!!)
  343. set $fechado,0;
  344. query_sql "DELETE FROM `loteria_b`"; //para reiniciar as apostas
  345. announce "[Loteria] : A Loteria já está aberta para apostas. Boa Sorte!",8;
  346. end;
  347.  
  348.  
  349.  
  350.  
  351. ///##################################################################################################################
  352.  
  353.  
  354. //Uso restrito Administrador para dar reload no npc // Volta ao premio de 10kk e abre as apostas se tiver fechado
  355. //Só use este se tiver certeza do que está fazendo
  356. OnWhisperGlobal:
  357. if(@whispervar0$ == "reload"){
  358. if(getgroupid() <= 80){
  359. //if(getgroupid() <= 80){ //Para novas versões do emulador
  360. end;
  361. }else{
  362. set $fechado,0;
  363. set $acumulado,0;
  364. query_sql "DELETE FROM `loteria_b`";
  365. dispbottom "Loteria: Variaveis resetadas!!!";
  366. }
  367. }
  368.  
  369. if(@whispervar0$ == "fechar"){
  370. if(getgroupid() <= 80){
  371. //if(getgroupid() <= 80){ //Para novas versões do emulador
  372. set $fechado,1;
  373. dispbottom "Loteria: Loteria fechada!!!";
  374. }
  375.  
  376. }
  377. }
  378.  
  379.  
  380. //##################################### FUNÇÂO PARA GERAR O BILHETE ############################################
  381. ///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
  382. function script bilhete {
  383.  
  384. set .@lt1,rand(1,9);
  385. L_1:
  386. set .@lt2,rand(1,9);
  387. if(.@lt2 == .@lt1) goto L_1;
  388. L_2:
  389. set .@lt3,rand(1,9);
  390. if((.@lt3 == .@lt1) || (.@lt3 == .@lt2)) goto L_2;
  391. L_3:
  392. set .@lt4,rand(1,9);
  393. if((.@lt4 == .@lt1) || (.@lt4 == .@lt2) || (.@lt4 == .@lt3)) goto L_3;
  394.  
  395. ///################################################################################
  396. ///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)
  397. set getarg(0),.@lt1+""+.@lt2+""+.@lt3; //Gera Números de 3 digitos para os bilhetes
  398. //set getarg(0),.@lt1+""+.@lt2+""+.@lt3+""+.@lt4; //Para ativar Números de 4 Digitos para os bilhetes
  399.  
  400. return;
  401.  
  402. }
  403.  
  404. vip,63,271,5 duplicate(Loteria) Loteria#01 1_M_LIBRARYMASTER
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement