prontera,162,174,4 script [Ev] Roleta Russa 4_M_YURI,{ set .Zeny, 0; setarray .ItemID[0], 7180; setarray .ItemAmount[0], 15; setarray .deathdialog$[0], "Sayonara!", "Hasta la vista, baby!", "Morra!", "Muahahahaha !", "Morre, diabo!"; //What do you want the NPC will say when someone dies? setarray .alivedialog$[0], "Que sorte!", "Essa foi por pouco!", "Porque você não morre?!", "Cagadaa !!", "Esse tem sorte hein?!"; //What do you want the NPC will say when someone lives? mes "["+strnpcinfo(1)+"]"; mes "Roleta Russa é um jogo potencialmente letal onde é colocada uma bala no revólver, gira-se o cilindro, aponta-se a arma na cabeça da pessoa e então aperta-se o gatilho."; mes "Ele ocorre de 1h em 1h no Horário de Brasília."; if( .play == 2 ) { if (getgroupid() == 99) { next; select ("Desbugar"); close2; callsub CleanUp; end; } close; } switch (select ("Jogar:"+((getgroupid() >= 99)?"Ativar":"")+"")) { case 1: if((.play == 1) && (.pReg < .maxplayer)) { for(set .@i, 0; .@i < .maxplayer; set .@i, .@i + 1) { if(.playerlist$[.@i] == strcharinfo(0)) { next; mes "["+strnpcinfo(1)+"]"; mes "Você já está registrado!"; close; } } set .playerlist$[.pReg], strcharinfo(0); set .pReg, .pReg + 1; mapannounce "prontera", "[Roleta Russa] ("+.pReg+"/"+.maxplayer+") "+strcharinfo(0)+" está registrado.",bc_map; if( .pReg == .maxplayer ) goto PlayRR; close; } else if((.pReg == .maxplayer) && (.play == 1)) { next; mes "["+strnpcinfo(1)+"]"; mes "Não há mais espaço para jogar esta rodada."; close; } next; mes "["+strnpcinfo(1)+"]"; mes "O evento ainda não começou."; close; case 2: next; mes "["+strnpcinfo(1)+"]"; mes "Qual é o número máximo de jogadores?"; input .maxplayer; if(.maxplayer < 2){ dispbottom "Max player must be greater than 1."; close; } set .maxplayer, .maxplayer; set .play, 1; announce "[Roleta Russa] O cadastro está aberto. "+.maxplayer+" jogadores necessários!",bc_all; close; } OnClock0000: OnClock0100: OnClock0200: OnClock0300: OnClock0400: OnClock0500: OnClock0600: OnClock0700: OnClock0800: OnClock0900: OnClock1000: OnClock1100: OnClock1200: OnClock1300: OnClock1400: OnClock1500: OnClock1600: OnClock1700: OnClock1800: OnClock1900: OnClock2000: OnClock2100: OnClock2200: OnClock2300: set .play, 1; set .maxplayer, 4; announce "[Roleta Russa] O cadastro está aberto. "+.maxplayer+" jogadores necessários!",bc_all; end; PlayRR: close2; detachrid; copyarray .copiedplayer$[0], .playerlist$[0], 128; set .play, 2; mapannounce "prontera", "[Roleta Russa] Os apertos nos gatilhos estão para começar!",bc_map; mapannounce "prontera", "[Roleta Russa] Lista de Jogadores:",bc_map,0xFFFFFF; for(set .@i, 0; .@i < getarraysize(.playerlist$); set .@i, .@i + 1) { set .@j, .@j + 1; mapannounce "prontera", "[Roleta Russa] "+.@j+". "+.playerlist$[.@i]+"",bc_map,0xFFFFFF; sleep2 1000; } mapannounce "prontera", "[Roleta Russa] Não desconecte, você será desqualificado.",bc_map,0xFFFFFF; callsub OnSpin; close; OnSpin: set .spin, rand(0, .pReg - 1); attachrid(getcharid(3, .playerlist$[.spin])); callsub OnCheck; mapannounce "prontera", "[Roleta Russa] O revólver está girando . . .",bc_map; sleep2 3000; mapannounce "prontera", "[Roleta Russa] O revólver está parando lentamente . . .",bc_map; sleep2 2000; mapannounce "prontera", "[Roleta Russa] O revólver está apontando para "+ strcharinfo(0) +" . . .",bc_map; sleep2 3000; mapannounce "prontera", "[Roleta Russa] Aperte o gatilho, "+ strcharinfo(0),bc_map; callsub OnCheck; callsub OnShoot; sleep2 3000; callsub OnSpin; return; OnShoot: if(rand(1, 6) == 1) { soundeffectall "ghost_revolver.wav", 0; sleep2 2300; specialeffect2 669; specialeffect2 531; percentheal -100, -100; deletearray .playerlist$[.spin], 1; set .pReg, .pReg - 1; mapannounce "prontera", "[Roleta Russa] ("+.pReg+"/"+.maxplayer+") "+strcharinfo(0)+" está fora!",bc_map,0xFF0000; mapannounce "prontera", "[Roleta Russa] "+.deathdialog$[rand(1, getarraysize(.deathdialog$))]+"", bc_map,0xFF0000; } else { soundeffectall "ghost_revolver.wav", 0; sleep2 2300; specialeffect2 675; specialeffect2 522 + rand(1,14); mapannounce "prontera", "[Roleta Russa] "+.alivedialog$[rand(1, getarraysize(.alivedialog$))]+"", bc_map,0xFF0000; } return; OnCheck: if( .pReg <= 0 ) { mapannounce "prontera", "[Roleta Russa] Não há vencedores! Todos sumiram!",bc_map; callsub CleanUp; } else if( ( .pReg == 1 ) && ( .maxplayer <= 2 ) && ( getarraysize(.disqualified$) ) ) { mapannounce "prontera", "[Roleta Russa] Sem vencedores! Um jogador foi desqualificado no modo de 2 jogadores.",bc_map; callsub CleanUp; } else if( ( .pReg == 1 ) && ( .maxplayer >= 2) ) { mapannounce "prontera", "[Roleta Russa] Temos um vencedor! Parabéns a "+strcharinfo(0)+"!",bc_map; for( set .@i, 0; .@i < getarraysize(.ItemID); set .@i, .@i + 1 ) { if(.ItemID) { getitem .ItemID[.@i], .ItemAmount[.@i]; } } if(.Zeny) set Zeny, Zeny + .Zeny; callsub CleanUp; } return; OnPCLogoutEvent: if( .play ) { setarray .disqualified$[.@l], strcharinfo(0); set .@l, .@l + 1; for( set .@i, 0; .@i < .maxplayer; set .@i, .@i + 1 ) { if( .playerlist$[.@i] == strcharinfo(0) ) { deletearray .playerlist$[.@i], 1; set .pReg, .pReg - 1; mapannounce "prontera", "[Roleta Russa] ("+.pReg+"/"+.maxplayer+") "+strcharinfo(0)+" foi desqualificad"+((Sex)?"o":"a")+".", bc_map, 0xFF0000; break; } } } end; CleanUp: set .play, 0; set .pReg, 0; set .maxplayer, 0; deletearray .playerlist$, 128; deletearray .copiedplayer$, 128; deletearray .disqualified$, 128; end; }