viewing paste Unknown #6717 | C

Posted on the
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87
-   script  custom_bg#control   -1,{
OnInit:
    set .minplayer2start, 3; // minimum player to start
    setarray .rewarditem,
        673, 5, // reward to the winning team
        673, 3; // reward to the losing team
    set .startingscore, 99; // score at start
    set .eventlasting, 100; // event last 100 seconds
    announce "custom_bg:"+.minplayer2start,8;
    end;
OnStart:
    if ( getwaitingroomstate( 0, "red side" ) < .minplayer2start || getwaitingroomstate( 0, "blue side" ) < .minplayer2start ) end;
    set .red, waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead", "red side" );
    copyarray .team1aid[.@i], $@arenamembers[.@i], $@arenamembersnum;
    set .blue, waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead", "blue side" );
    copyarray .team2aid[.@i], $@arenamembers[.@i], $@arenamembersnum;
    delwaitingroom "red side";
    delwaitingroom "blue side";
    bg_warp .red, "guild_vs3", 13,50;
    bg_warp .blue, "guild_vs3", 86,50;
    set .score[1], .startingscore;
    set .score[2], .startingscore;
    bg_updatescore "guild_vs3", .score[1], .score[2];
    sleep .eventlasting * 1000;
    if ( .score[1] == .score[2] )
        mapannounce "guild_vs3", "Draw !", 0;
    else if ( .score[1] > .score[2] ) {
        mapannounce "guild_vs3", "red side wins !", 0;
        callsub L_reward, 1, 0;
        callsub L_reward, 2, 2;
    }
    else if ( .score[1] < .score[2] ) {
        mapannounce "guild_vs3", "blue side wins !", 0;
        callsub L_reward, 2, 0;
        callsub L_reward, 1, 2;
    }
    bg_warp .red, "prontera", 155,182;
    bg_warp .blue, "prontera", 158,182;
    bg_destroy .red;
    bg_destroy .blue;
    donpcevent "red side::OnInit";
    donpcevent "blue side::OnInit";
    end;
L_reward:
    set .@size, getarraysize( getd(".team"+ getarg(0) +"aid") );
    for ( set .@i, 0; .@i < .@size; set .@i, .@i +1 )
        if ( isloggedin( getd(".team"+ getarg(0) +"aid["+ .@i +"]" ) ) )
            getitem .rewarditem[ getarg(1) ], .rewarditem[ getarg(1) +1 ], getd(".team"+ getarg(0) +"aid["+ .@i +"]" );
    return;
OnredDead: callsub L_dead, 1;
OnblueDead: callsub L_dead, 2;
L_dead:
    set .score[ getarg(0) ], .score[ getarg(0) ] -1;
    bg_updatescore "guild_vs3", .score[1], .score[2];
    if ( .score[ getarg(0) ] == 0 )
        awake strnpcinfo(0);
    end;
OnredQuit: callsub L_quit, 1, .red;
OnblueQuit: callsub L_quit, 2, .blue;
L_quit:
    if ( bg_get_data( getarg(1), 0) ) end;
    set .score[ getarg(0) ], 0;
    awake strnpcinfo(0);
    end;
}
prontera,155,182,5  script  red side    100,{
 
    end;
OnInit:
    announce "red_side:"+getvariableofnpc(.minplayer2start,"custom_bg#control"),8;
    waitingroom "red", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
    end;
}
prontera,158,182,5  script  blue side   100,{
    end;
OnInit:
    announce "blue_side:"+getvariableofnpc(.minplayer2start,"custom_bg#control"),8;
    waitingroom "blue", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::OnStart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
    end;
}
guild_vs3    mapflag    battleground    2
guild_vs3    mapflag    nosave    SavePoint
guild_vs3    mapflag    nowarp
guild_vs3    mapflag    nowarpto
guild_vs3    mapflag    noteleport
guild_vs3    mapflag    nomemo
guild_vs3    mapflag    nopenalty
Viewed 695 times, submitted by Guest.