Jump to content
  • 0
Sign in to follow this  
Helena

Consolation prize for custom BG losers?

Question

Hey Hercules!

Does anyone know how i can make it so the losers of this script will also get 3x platinum coin (677) instead of only the winners?

 

I've tried to throw in a getitem before the bg_warp when the match is over but it doesn't quite work (player not attached message).

Thank you so much!
 

-    script    bg_emp#control    HIDDEN_NPC,{
OnInit:
    .minplayer2start = 1; // minimum player to start
    .winningscore = 3; // final score to win
    .eventlasting = 20 * 60; // abort the system if there's no progress, 20 mins * seconds
    setarray .rewarditem, 677, 10; // reward to the winning team
    end;
OnStart:
    if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
    .red = waitingroom2bg( "bat_b01", 66,149, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
    copyarray .team1aid, $@arenamembers, $@arenamembersnum;
    .team1count = .minplayer2start;
    .blue = waitingroom2bg( "bat_b01", 331,149, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
    copyarray .team2aid, $@arenamembers, $@arenamembersnum;
    .team2count = .minplayer2start;
    delwaitingroom .rednpcname$;
    delwaitingroom .bluenpcname$;
    disablenpc .rednpcname$;
    disablenpc .bluenpcname$;
    bg_warp .red, "bat_b01", 66,149;
    bg_warp .blue, "bat_b01", 331,149;
    bg_updatescore "bat_b01", 0, 0;
    sleep 6000 * !.skip;
    mapannounce "bat_b01", "Mini WoE : Welcome to the Mini WoE Event! Both guilds have an Emperium summoned both at the opposite side of the arena. The guild that destroys the other guild's Emperium (3 times) first is the winner!", 0;
    sleep 3000 * !.skip;
    mapannounce "bat_b01", "Mini WoE : All participants, please get ready! The battle is about to begin!", 0;
    sleep 2000 * !.skip;
    while (1) {
        for ( .@i = 5; .@i > 0; .@i-- ) {
            mapannounce "bat_b01", "["+ .@i +"]", 0;
            sleep 1000 * !.skip;
        }
        if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
            mapannounce "bat_b01", "Mini WoE : Final round, get ready!", 0;
        else
            mapannounce "bat_b01", "Mini WoE : Round " + (1+(.round++ ))+"/3... go!", 0;
        bg_monster .red,"bat_b01",61,149, "--ja--",1288, strnpcinfo(3)+"::OnRedDown";
        bg_monster .blue,"bat_b01",331,149, "--ja--",1288, strnpcinfo(3)+"::OnBlueDown";
        delwall "bg_emp_town_red";
        delwall "bg_emp_town_blue";
        sleep .eventlasting * 1000 * !.skip;
        bg_updatescore "bat_b01", .score[1], .score[2];
        killmonster "bat_b01", strnpcinfo(3)+"::OnRedDown";
        killmonster "bat_b01", strnpcinfo(3)+"::OnBlueDown";
        if ( getstrlen( .empkiller$ ) )
            mapannounce "bat_b01", .empkiller$ +" has destroyed "+( ( .winside == 1 )?"Blue":"Red" )+" Guild's Emperium! The "+( ( .winside == 1 )?"Red":"Blue" )+" Team scores a point!", 0;
        if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
        sleep 5000 * !.skip;
        bg_warp .red, "bat_b01", 66,149;
        bg_warp .blue, "bat_b01", 326,149;
        sleep 1000 * !.skip;
        .winside = 0;
    }
    if ( .winside ) {
        mapannounce "bat_b01","The "+( ( .winside == 1 )?"Red":"Blue" )+" Guild is the winner of this Mini WoE! Thank you all for participating!", 0;
        for ( .@i = 0; .@i < getd(".team"+ .winside +"count"); .@i++ )
            getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
    } else
        mapannounce "bat_b01", "Time Out. Aborting the match.", 0;
    sleep 5000;
    bg_warp .red, "prontera", 155,182;
    bg_warp .blue, "prontera", 158,182;
    bg_destroy .red;
    bg_destroy .blue;
    delwall "bg_emp_town_red";
    delwall "bg_emp_town_blue";
    deletearray .team1aid;
    deletearray .team2aid;
    .round = .winside = .skip = .score[1] = .score[2] = .team1count = .team2count = 0;
    enablenpc .rednpcname$;
    enablenpc .bluenpcname$;
    donpcevent .rednpcname$ +"::OnStart";
    donpcevent .bluenpcname$ +"::OnStart";
    end;
OnRedDown: callsub L_EmpDown, 2;
OnBlueDown: callsub L_EmpDown, 1;
L_EmpDown:
    .empkiller$ = strcharinfo(0);
    .winside = getarg(0);
    .score[ .winside ]++;
    awake strnpcinfo(0);
    end;
OnRedDead: callsub L_dead, 2;
OnBlueDead: callsub L_dead, 1;
L_dead:
    for ( .@i = 0; .@i < getd(".team"+ getarg(0) +"count"); .@i++ )
        getitem 608, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a ygg leaf here
    sleep2 1250;
    percentheal 100,100;
    end;
OnRedQuit: callsub L_quit, 1, "Red", 2;
OnBlueQuit: callsub L_quit, 2, "Blue", 1;
L_quit:
    percentheal 100, 100;
    while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") ) .@i++;
    deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
    setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
    if ( getd(".team"+ getarg(0) +"count") ) end;
    mapannounce "bat_a01", "All "+ getarg(1) +" team members have quit the Mini WoE Event!", 0, 0xff3333; // purposely use different color
    .score[ getarg(2) ] = .winningscore;
    .winside = getarg(2);
    .skip = 1;
    awake strnpcinfo(0);
    end;
}
 
quiz_00,59,37,3    script    Red Guild#bg_emp    4_M_CRU_KNT,{
    end;
OnInit:
    sleep 1;
    set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
    disablenpc "Guildsman Recruiter";
    waitingroom "Red Guild", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
    end;
OnJoin:
//    announce "The Red Guild has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
    donpcevent "bg_emp#control::OnStart";
    end;
}
 
z_agit,24,186,3    script    Blue Guild#bg_emp    4_M_KY_SOLD,{
    end;
OnInit:
    sleep 1;
    set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
OnStart:
    disablenpc "Guildsman Recruiter";
    waitingroom "Blue Guild", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, strnpcinfo(0)+"::OnJoin", 1;
    end;
OnJoin:
//    announce "The Blue Guild has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User", 0;
    donpcevent "bg_emp#control::OnStart";
    end;
}
 
bat_b01    mapflag    battleground    2
bat_b01    mapflag    nosave    SavePoint
bat_b01    mapflag    nowarp
bat_b01    mapflag    nowarpto
bat_b01    mapflag    noteleport
bat_b01    mapflag    nomemo
bat_b01    mapflag    nopenalty
bat_b01    mapflag    nobranch
bat_b01    mapflag    noicewall
Edited by Helena

Share this post


Link to post
Share on other sites

0 answers to this question

Recommended Posts

There have been no answers to this question yet

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...
Sign in to follow this  

×
×
  • Create New...

Important Information

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