Jump to content
  • 0
butasro

Royal Rumble with Que

Question

any one can convert this or tried this here in herc?


//===== eAthena Script =======================================
//= Royal Rumble Event
//===== By: ==================================================
//= Masao
//===== Current Version: =====================================
//= 2.0
//===== Compatible With: =====================================
//= Any Athena Version
//===== Description: =========================================
//= Starts an little PvP Event when a total of 10 Players
//= have Signed Up. After that every 30 seconds
//= a new Player will be warped onto the PvP Map until
//= all 10 Players have been warped.
//===== Additional Comments: =================================
//= Version 1.0 [Masao]
//= Verison 1.1 added GM Control Panel & Autostart [Masao]
//= Version 2.0 complete re-script [Masao]
//============================================================
prontera,182,207,4    script    Royal Rumble    946,{

    set .@n$,"[Royal Rumble]";

    if (getgmlevel() >= 40) goto L_GMCP;

    mes .@n$;
    mes "Hello "+strcharinfo(0)+",";
    mes "I'm the Royal Rumble NPC, you can Sign Up here for the Royal Rumble Event!";
    mes "";
    mes "So, would you like to Sign Up?";
    next;
    menu "Yes, please!",-,"Royal Rumble?!",L_R,"No, thanks.",L_E;
    
    if(.rrp == 10)
    {
        mes .@n$;
        mes "I'm sorry but the Event already begun!";
        close;
    }
    set .@myaid, getcharid(3);
    for ( set .@i, 1; .@i <= .rrp; set .@i, .@i +1 )
        if ( .rra[.@i] == .@myaid ) break;
    if ( .@i > .rrp ) {
        set .rrp,.rrp+1;
        set .rra[.rrp],getcharid(3);
    }
    set @rre,1;
    set @rre2,1;
    if(.rrp < 10)
    {
        mes .@n$;
        mes "Allright, you have been signed up. As soon as the Event begins you'll see an Broadcast.";
        close;
    }
    mes .@n$;
    mes "Allright, you have been signed up. The Event begins now!";
    close2;
    initnpctimer;
    disablenpc "Royal Rumble";
    announce "The Royal Rumble Event begins now! The first 2 players will now be warped into the Royal Rumble Arena!",bc_all;
    end;

L_R:
    mes .@n$;
    mes "The Rules are very easy!";
    mes "Just Sign Up to the Game and then wait until a total of 10 Players have Signed Up, as soon as this happens the Game will start.";
    mes "When the Event starts 2 Players will be warped onto an PvP Map, then they fight each other, the loser get warped out and the Winner stays.";
    mes "And after the first 2 Players have been warped in, every 30 Seconds a new Player will be warped onto the Map.";
    mes "As soon as the last player is killed on the Map the Game will end and the last survivor is the Winner!";
    mes "And that's all, have Fun and good Luck!";
    close;

L_E:
    mes .@n$;
    mes "Ok, bye.";
    close;

L_GMCP:
    mes .@n$;
    mes "Hello "+strcharinfo(0)+",";
    mes "what can i do for you?";
    switch(select("Start Event!:End Event.:Set Prize:Cancel")) {
        case 1:
            next;
            mes .@n$;
            mes "Allright, the Event starts now!";
            close2;
            enablenpc "Royal Rumble";
            for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
            {
                if(attachrid(.rra[.@i])){
                    if (@rre == 1) {
                        set @rre,0;
                        set @rre2,0;
                        detachrid;
                    }
                }
            }
            set .rrp,0;
            deletearray .rra[0],128;
            mapwarp "guild_vs3","prontera",155,185;
            announce "The Royal Rumble Event is Open now!",bc_all;
            end;
        case 2:
            next;
            mes .@n$;
            mes "Allright, the Event ends now!";
            close2;
            disablenpc "Royal Rumble";
            for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
            {
                if(attachrid(.rra[.@i])){
                    if (@rre == 1) {
                        set @rre,0;
                        set @rre2,0;
                        detachrid;
                    }
                }
            }
            set .rrp,0;
            deletearray .rra[0],128;
            mapwarp "guild_vs3","prontera",155,185;
            announce "The Royal Rumble Event has been ended by an GM!",bc_all;
            end;
        case 3:
            next;
            mes .@n$;
            mes "The current Prize is "+getitemname($rr_id)+", would you like to change it?";
            switch(select("No:Yes")) {
                case 1:
                    next;
                    mes .@n$;
                    mes "Ok, bye.";
                    close;
                case 2:
                    next;
                    mes .@n$;
                    mes "Ok, then please insert now the new Item ID";
                    input $rr_id;
                    next;
                    mes .@n$;
                    mes "And now the Amount please.";
                    input $rr_amount;
                    next;
                    mes .@n$;
                    mes "Allright, so the Prize now is ^008000"+$rr_amount+" "+getitemname($rr_id)+"^000000";
                    close;
            }
        case 4:
            next;
            mes .@n$;
            mes "Ok, bye";
            close;
    }

OnPCDieEvent:
    getmapxy .@m$,.@x,.@y,0;
    if(.@m$ == "guild_vs3")
    {
        for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
        {
            if(attachrid(.rra[.@i])){
                if (@rre == 1) {
                    set @rre,0;
                    warp "prontera",155,185;
                }
                detachrid;
            }
        }
        set .rrp,.rrp-1;
    }
    end;

OnPCLogoutEvent:
    getmapxy .@m$,.@x,.@y,0;
    if(.@m$ == "guild_vs3")
    {
        for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
        {
            if(attachrid(.rra[.@i])){
                if (@rre == 1) {
                    set @rre,0;
                    save "prontera",155,185;
                }
                detachrid;
            }
        }
        set .rrp,.rrp-1;
    }
    end;

OnPCKillEvent:
    getmapxy .@m$,.@x,.@y,0;
    if(.@m$ == "guild_vs3")
    {
        if(.rrp <= 1)
        {
            for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
            {
                if(attachrid(.rra[.@i])){
                    if (@rre == 1)
                    {
                        dispbottom "Congratulations "+strcharinfo(0)+"!";
                        dispbottom "You won the Royal Rumble Event!";
                        dispbottom "Here is your Prize, and see you next time!";
                        getitem $rr_id,$rr_amount;
                        set @rre,0;
                        warp "prontera",155,185;
                    }
                    detachrid;
                    announce strcharinfo(0)+" won this Game of Royal Rumble! Congratulations!",bc_all;
                }
            }
            deletearray .rra[0],128;
        }
    }
    end;

OnTimer1000:
    for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
    {
        if(attachrid(.rra[.@i])){
            if (@rre2 == 1) {
                set @rre2,0;
                warpchar "guild_vs3",0,0,.rra[.@i];
            }
            end;
        }
    }
    end;
OnTimer1100:
    for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
    {
        if(attachrid(.rra[.@i])){
            if (@rre2 == 1) {
                set @ree2,0;
                warpchar "guild_vs3",0,0,.rra[.@i];
            }
            end;
        }
    }
    end;
OnTimer30000:
OnTimer60000:
OnTimer90000:
OnTimer120000:
OnTimer150000:
OnTimer180000:
OnTimer210000:
OnTimer240000:
OnTimer270000:
OnTimer300000:
    for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
    {
        if(attachrid(.rra[.@i])){
            if (@rre2 == 1) {
                set @rre2,0;
                warpchar "guild_vs3",0,0,.rra[.@i];
            }
            end;
        }
    }
    end;

OnClock0108:
OnClock0808:
OnClock1208:
OnClock1608:
OnClock2008:
OnClock0008:
    enablenpc "Royal Rumble";
    for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
    {
        if(attachrid(.rra[.@i])){
            if (@rre == 1) {
                set @rre,0;
                set @rre2,0;
            }
            detachrid;
        }
    }
    set .rrp,0;
    deletearray .rra[0],128;
    mapwarp "guild_vs3","prontera",155,185;
    announce "The Royal Rumble Event starts now! You have 3 Minutes to Sign Up!",bc_all;
    end;
    
OnClock0403:
OnClock0803:
OnClock1203:
OnClock1603:
OnClock2003:
OnClock0003:
    if(.rrp < 10)
    {
        disablenpc "Royal Rumble";
        announce "The Royal Rumble Event is closed now! Since there were not 10 Players the Event will not take place.",bc_all;
        for(set .@i,1;.@i<=.rrp;set .@i,.@i+1)
        {
            if(attachrid(.rra[.@i])){
                if (@rre == 1) {
                    set @rre,0;
                    set @rre2,0;
                }
                detachrid;
            }
        }
        set .rrp,0;
        deletearray .rra[0],128;
    }
    end;

OnInit:
    disablenpc "Royal Rumble";
    end;
}

//============== Mapflags ====================
//guild_vs3    mapflag    nogo
guild_vs3    mapflag    pvp_noguild
guild_vs3    mapflag    pvp_noparty
guild_vs3    mapflag    nobranch
guild_vs3    mapflag    nomemo
guild_vs3    mapflag    nopenalty
guild_vs3    mapflag    noreturn
guild_vs3    mapflag    noteleport
guild_vs3    mapflag    nowarp
guild_vs3    mapflag    nowarpto
guild_vs3    mapflag    noicewall
 

Share this post


Link to post
Share on other sites

2 answers to this question

Recommended Posts

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.