if only i know the format on making a BG script i will make one..
anyway i can try ripping the script for you .. [hope annie will not got mad at me]
- script bg_emp#control -1,{
OnInit:
set .eventlasting, 20 * 60; // abort the system if there's no progress, 20 mins * seconds
set .register_lasting, 10 * 60; // 10 minutes to joins, else abort registration, 10 mins * seconds
sleep 1;
disablenpc .rednpcname$;
disablenpc .bluenpcname$;
end;
OnStart:
if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
set .red, waitingroom2bg( "guild_vs3", 13,50, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
copyarray .team1aid, $@arenamembers, $@arenamembersnum;
set .blue, waitingroom2bg( "guild_vs3", 86,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
copyarray .team2aid, $@arenamembers, $@arenamembersnum;
.inprogress = 2;
awake strnpcinfo(0);
bg_warp .red, "guild_vs3", 13,50;
bg_warp .blue, "guild_vs3", 86,50;
bg_updatescore "guild_vs3", 0,0;
sleep .eventlasting * 1000;
if ( .start == 2 ) {
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, .red;
}
else if ( .score[1] < .score[2] ) {
mapannounce "guild_vs3", " Blue side wins !", 0;
callsub L_reward, .blue;
}
}
bg_warp .red, "prontera", 155,182;
bg_warp .blue, "prontera", 158,182;
bg_kickall .red;
bg_kickall .blue;
.start = .score[1] = .score[2] = .register_num = 0;
deletearray .register_aid;
end;
L_reward:
getbgusers getarg(0);
for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
getitem 501, 1, $@arenamembers[.@i]; // item reward
return;
Onredout: callsub L_out, 2;
Onblueout: callsub L_out, 1;
L_out:
announce strcharinfo(0) +" is out from the match !", 1;
bg_leave;
warp "SavePoint", 0,0;
.score[ getarg(0) ]++;
bg_updatescore "guild_vs3", .score[1], .score[2];
if ( .score[ getarg(0) ] == .min2start )
awake strnpcinfo(0);
end;
prontera,156,186,5 script gm_start 100,{
if ( getgmlevel() < 99 ) {
mes "I only talk to gm";
close;
}
if ( getvariableofnpc( .inprogress, "bg_emp#control" ) ) {
mes "abort ?";
next;
if ( select ( "Yes", "No" ) == 2 ) close;
set getvariableofnpc( .inprogress, "bg_emp#control" ), 0;
awake "bg_emp#control";
killmonster "bat_a01", "bg_emp#control::OnRedDown";
killmonster "bat_a01", "bg_emp#control::OnBlueDown";
announce strcharinfo(0) +" has abort the battleground", 0;
close;
}
mes "select how many players to start";
next;
if ( input( .@a, 1, 30 ) ) close;
set getvariableofnpc( .minplayer2start, "bg_emp#control" ), .@a;
announce strcharinfo(0) +" has hosted "+ .@a +"vs"+ .@a +" battleground", 0;
enablenpc getvariableofnpc( .rednpcname$, "bg_emp#control" );
enablenpc getvariableofnpc( .bluenpcname$, "bg_emp#control" );
donpcevent getvariableofnpc( .rednpcname$, "bg_emp#control" ) +"::OnStart";
donpcevent getvariableofnpc( .bluenpcname$, "bg_emp#control" ) +"::OnStart";
set getvariableofnpc( .inprogress, "bg_emp#control" ), 1;
donpcevent "bg_emp#control::OnAutoAbort";
close;
}
prontera,155,182,5 script Red side#bg_emp 100,{
end;
OnStart:
waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
end;
OnInit:
set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
end;
}
prontera,158,182,5 script Blue side#bg_emp 100,{
end;
OnStart:
waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
end;
OnInit:
set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
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
guild_vs3 mapflag nobranch
guild_vs3 mapflag noicewall