Jump to content
  • 0
Sign in to follow this  
X Seifador X

[Resolvido] Bomb poring

Question

Boa Tarde <3, Bom teria como alguém coloca esse evento pra deixa todas as classes entra?, e também pra roda nesses horários 13:30,16:30, é 18:30 

grato por qual quer ajuda :)

Spoiler

//===== 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) {
    mes "[^FF0000 Evento Bomb Poring ^000000]";
    mes "Somente aprendizes podem participar deste evento.";
    close;
}
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;

OnMinute15:
OnMinute45:
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 

 

Edited by X Seifador X
Adicionando spoiler.

Share this post


Link to post
Share on other sites

3 answers to this question

Recommended Posts

Guest
This topic is now closed to further replies.
Sign in to follow this  

Seja bem vindo ao Cronus-Emulator.
É sempre um prazer te-lo conosco.
Você pode visualizar nossas áreas de suporte para encontrar suas soluções sem a necessidade de se registrar!
Registrando em nossa comunidade, você poderá conhecer mais sobre nosso projeto, criar tópicos, responder tópicos existentes, baixar milhares de recursos em nosso sistema de downloads, participar de nossa comunidade, customizar seu perfil e muito mais... Se você já possui uma conta, faça seu login - ou crie uma conta. Também temos integração com Google+ e Facebook.

×
×
  • Create New...