Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //===== Script editado por: Zwetsch ======//
- //===== Funções adicionadas: ======//
- //===== Restrição de Classes, apenas a classe Aprendiz pode participar do evento. ======//
- //===== Função de verificação se o evento está ativo ou desativo, caso esteja ativo, ele liberará o menu, caso contrário, ele abrirá diálogo avisando que o evento está desativado. ======//
- //===== Pequena mudança no menu, agora você pode consultar/configurar o horário em que o evento é iniciado. ======//
- prontera,65,212,4 script Evento Bomb Poring#BP 1904,{
- if (Class == 0 && $open == 1)
- goto aberto;
- if (Class == 0 && $open == 0)
- goto fechado;
- fechado:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "No momento, esse evento encontra-se fechado.";
- close;
- aberto:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Olá ^0000FF"+strcharinfo(0)+"^000000!";
- mes "Por favor, selecione a ação que você deseja realizar.";
- next;
- switch(select("^FF0000-^000000 Sim, quero entrar.:^FF0000-^000000 Como funciona?:^FF0000-^000000 Horarários do Evento.:^FF0000-^000000 Não, talvez depois.")) {
- case 1:
- if (.BombaPoring != 1) {
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "O evento ainda não começou, verifique os horários em que o evento é iniciado. Até a próxima.";
- close;
- }
- else if (BaseLevel < .BP_MinLevel || Zeny < .BP_Zeny) {
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Desculpe, o nível mínimo para entrar é " + .BP_MinLevel + " e a taxa de entrada é de " + .BP_Zeny + "z.";
- close2;
- cutin "",255;
- end;
- }
- Zeny = Zeny - .BP_Zeny;
- announce "[Evento Bomb Poring]: " + strcharinfo(0) + " entrou no evento Bomb Poring!",8;
- warp "poring_c01",0,0;
- end;
- case 2:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "O Bomb Poring é um evento de sobrevivência!! Se você sobreviver todas as " + .BP_Rounds + " rodadas você vence!";
- next;
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Mas não pense que é fácil, diversos Bomb Porings serão invocados, mais e mais e sua única opção é fugir deles!";
- next;
- if (.BP_Zeny) {
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Eu também cobro uma pequena taxa de entrada de apenas " + .BP_Zeny + "z.";
- next;
- }
- if (.BP_MinLevel) {
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Ahhh! Eu permito apenas jogadores de nível " + .BP_MinLevel + " ou maior no evento. São regras.";
- next;
- }
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "O evento abre a cada meia hora. Você deve falar comigo para entrar. Até lá!";
- close;
- case 3:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Abaixo você poderá visualizar os horário que o evento é iniciado.";
- dispbottom "Horário / Nome do Evento";
- dispbottom "Horário Indefinido / Bomb Poring";
- dispbottom "Horário Indefinido / Bomb Poring";
- dispbottom "Horário Indefinido / Bomb Poring";
- case 4:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Volte quando estiver pronto.";
- close;
- }
- OnInit:
- //===== CONFIGURAÇÕES ========================================================
- .BP_GM = 99; //Nível de GM necessário para acessar as configurações
- .BP_MinLevel = 0; //Nível mínimo para entrar (0=Ignorar)
- .BP_Zeny = 5000; //Zeny necessário para entrar (0=Ignorar)
- .BP_Rounds = 10; //Número de rodadas
- .BP_Interval = 15; //Tempo entre cada rodada (em segundos)
- .BP_Bombs = 10; //Número de BombaPorings invocados a cada rodada
- //IDs dos prémios (O jogador ganha 1 item aleatório)
- setarray .BP_Item,607,608,609,610,19587,12208,12209,12210,12211,12212,12214,12622,2573,2576,2589,7621;
- //===== FIM DAS CONFIGURAÇÕES ================================================
- bindatcmd "gm_bp",strnpcinfo(3)+"::OnAtcommand";
- end;
- OnClock1330:
- OnClock1630:
- OnClock1830:
- OnStartEvent:
- set $open,1;
- if (.BombaPoring != 0 && getmapusers("poring_c01") != 0) end;
- .BombaPoring = 0;
- killmonsterall "poring_c01";
- disablenpc "Evento Bomb Poring#BP2";
- mapwarp "poring_c01","prontera",156,143;
- donpcevent "Evento Bomb Poring#BP::OnEventON";
- announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 3 minutos.",0;
- .BombaPoring = 1;
- sleep 60000;
- if (.BombaPoring != 1) end;
- announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 2 minutos.",0;
- sleep 60000;
- if (.BombaPoring != 1) end;
- announce "[Evento Bomb Poring]: O evento Bomb Poring terá início em 1 minuto.",0;
- sleep 60000;
- if (.BombaPoring != 1) end;
- announce "[Evento Bomb Poring]: O evento Bomb Poring começou!",0;
- donpcevent "Evento Bomb Poring#BP::OnBeginEvent";
- end;
- OnBeginEvent:
- donpcevent "Evento Bomb Poring#BP::OnEventOFF";
- .BombaPoring = 2;
- sleep 3000;
- if (getmapusers("poring_c01") == 0) {
- announce "[Evento Bomb Poring]: O evento foi cancelada, pois nenhum jogador se inscreveu para participar do mesmo.",0;
- .BombaPoring = 0;
- end;
- }
- mapannounce "poring_c01","[Evento Bomb Poring]: Cuidado! Os Porings Bomb estão vindo!",0;
- sleep 3000;
- donpcevent "Evento Bomb Poring#BP::OnMob";
- end;
- OnMob:
- for (.BombaPoring = 2; .BombaPoring-2 < .BP_Rounds; .BombaPoring++) {
- if(getmapusers("poring_c01") == 0)
- goto OnEnd;
- if (.BombaPoring > 3)
- mapannounce "poring_c01","[Evento Bomb Poring]: Cuidado! Mais Porings Bomb estão vindo!",0;
- monster "poring_c01",0,0,"Bomb Poring",1904,.BP_Bombs;
- sleep .BP_Interval*1000;
- }
- .BombaPoring++;
- killmonsterall "poring_c01";
- mapannounce "poring_c01","[Evento Bomb Poring]: Os Porings Bomb se foram! Parabéns!!",0;
- sleep 1000;
- enablenpc "Evento Bomb Poring#BP2";
- end;
- OnGMEnd:
- if (.BombaPoring == 1)
- announce "[Evento Bomb Poring]: Um membro da Equipe do Servidor fechou o portal do Porings Bomb!",0;
- else
- mapannounce "poring_c01","[Evento Bomb Poring]: Um membro da Equipe do Servidor terminou o evento!",0;
- OnEnd:
- donpcevent "Evento Bomb Poring#BP::OnEventOFF";
- .BombaPoring = 0;
- killmonsterall "poring_c01";
- sleep 1000;
- mapwarp "poring_c01","prontera",156,143;
- end;
- OnPCDieEvent:
- if (strcharinfo(3) == "poring_c01" && .BombaPoring) {
- switch(rand(3)) {
- case 1:
- mapannounce "poring_c01","[Evento Bomb Poring]: " + strcharinfo(0) + " explodiu em um milhões de pedaços!",0;
- break;
- case 2:
- mapannounce "poring_c01","[Evento Bomb Poring]: O jogador" + strcharinfo(0) + "! foi desintegrado por um Bomb Poring.",0;
- break;
- case 3:
- mapannounce "poring_c01","[Evento Bomb Poring]: O jogador " + strcharinfo(0) + "! foi explodido por um Bomb Poring.",0;
- break;
- }
- warp "SavePoint",0,0;
- if (getmapusers("poring_c01") == 0)
- goto OnEnd;
- end;
- }
- end;
- OnAtcommand:
- if(getgroupid() < .BP_GM) end;
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "O que você gostaria que eu fizesse?";
- next;
- switch(select("Iniciar evento.:Terminar evento.:Mudar nível mínimo para entrar:Mudar zeny necessário para entrar:Mudar número de rodadas.:Mudar tempo entre cada rodada.:Mudar número de BombaPorings por rodada.:Ir para o mapa.")) {
- case 1:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- if (.BombaPoring == 0) {
- donpcevent "Evento Bomb Poring#BP::OnStartEvent";
- mes "Evento iniciado!";
- close;
- }
- mes "O evento já foi iniciado.";
- close;
- case 2:
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- if (.BombaPoring != 0) {
- donpcevent "Evento Bomb Poring#BP::OnGMEnd";
- mes "Evento terminado!";
- close;
- }
- mes "O evento não foi iniciado.";
- close;
- case 3:
- mes "-Nível mínimo para entrar-";
- mes "Atual: " + .BP_MinLevel;
- mes "Digite o novo número desejado.";
- mes "Digite 0 para cancelar.";
- mes " ";
- input @new;
- if (@new < 1) {
- mes "Ação cancelada.";
- close;
- }
- mes "Número novo: " + @new;
- if(select("Completar mudança!:Cancelar!") == 2) {
- close;
- }
- .BP_MinLevel = @new;
- mes "FEITO!";
- close;
- case 4:
- mes "-Zeny necessário para entrar-";
- mes "Atual: " + .BP_Zeny;
- mes "Digite o novo número desejado.";
- mes "Digite 0 para cancelar.";
- mes " ";
- input @new;
- if (@new < 1) {
- mes "Ação cancelada.";
- close;
- }
- mes "Número novo: " + @new;
- if(select("Completar mudança!:Cancelar!") == 2) {
- close;
- }
- .BP_Zeny = @new;
- mes "FEITO!";
- close;
- case 5:
- mes "-Número de rodadas-";
- mes "Atual: " + .BP_Rounds;
- mes "Digite o novo número desejado.";
- mes "Digite 0 para cancelar.";
- mes " ";
- input @new;
- if (@new < 1) {
- mes "Ação cancelada.";
- close;
- }
- mes "Número novo: " + @new;
- if(select("Completar mudança!:Cancelar!") == 2) {
- close;
- }
- .BP_Rounds = @new;
- mes "FEITO!";
- close;
- case 6:
- mes "-Tempo entre cada rodada-";
- mes "-(em segundos)-";
- mes "Atual: " + .BP_Interval;
- mes "Digite o novo número desejado.";
- mes "Digite 0 para cancelar.";
- mes " ";
- input @new;
- if (@new < 1) {
- mes "Ação cancelada.";
- close;
- }
- mes "Número novo: " + @new;
- if(select("Completar mudança!:Cancelar!") == 2) {
- close;
- }
- .BP_Interval = @new;
- mes "FEITO!";
- close;
- case 7:
- mes "-Número de BombaPorings invocados a cada rodada-";
- mes "Atual: " + .BP_Bombs;
- mes "Digite o novo número desejado.";
- mes "Digite 0 para cancelar.";
- mes " ";
- input @new;
- if (@new < 1) {
- mes "Ação cancelada.";
- close;
- }
- mes "Número novo: " + @new;
- if(select("Completar mudança!:Cancelar!") == 2) {
- close;
- }
- .BP_Bombs = @new;
- mes "FEITO!";
- close;
- case 8:
- warp "poring_c01",0,0;
- end;
- }
- OnEventON:
- waitingroom "BombaPoring ON!",0;
- end;
- OnEventOFF:
- delwaitingroom;
- end;
- }
- poring_c01,104,110,3 script Evento Bomb Poring#BP2 1_M_SMITH,{
- mes "[^FF0000 Evento Bomb Poring ^000000]";
- mes "Aqui está seu prémio!";
- close2;
- copyarray .@premios, getvariableofnpc( .BP_Item, "Evento Bomb Poring#BP" ), 99;
- @id = rand(getarraysize(.@premios));
- getitem .@premios[@id],1;
- warp "SavePoint",0,0;
- end;
- }
- //==================Mapflags========================
- poring_c01 mapflag nowarp
- poring_c01 mapflag nowarpto
- poring_c01 mapflag noteleport
- poring_c01 mapflag nosave
- poring_c01 mapflag nomemo
- poring_c01 mapflag nobranch
- poring_c01 mapflag noloot
- poring_c01 mapflag noskill
- poring_c01 mapflag nopenalty
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement