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;
}