- 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