Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- - script bg_emp#control -1,{
- OnInit:
- setarray .rewarditem, 7828, 12; // reward to the winning team
- set .winningscore, 2; // final score to win
- 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( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
- copyarray .team1aid, $@arenamembers, $@arenamembersnum;
- set .blue, waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
- copyarray .team2aid, $@arenamembers, $@arenamembersnum;
- .inprogress = 2;
- awake strnpcinfo(0);
- bg_warp .red, "bat_a01", 171,346;
- bg_warp .blue, "bat_a01", 162,50;
- setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
- setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
- bg_updatescore "bat_a01", 0, 0;
- sleep 6000; if ( .inprogress == 0 ) goto L_Abort;
- mapannounce "bat_a01", "Las reglas son simples. Quien rompa primero la piedra del enemigo gana un punto.", 0;
- sleep 3000; if ( .inprogress == 0 ) goto L_Abort;
- mapannounce "bat_a01", "Se gana con "+ .winningscore +" puntos ! ... PREPARAOS PARA LA BATALLA!", 0;
- sleep 2000; if ( .inprogress == 0 ) goto L_Abort;
- while (1) {
- for ( .@i = 5; .@i > 0; .@i-- ) {
- mapannounce "bat_a01", .@i +"", 0;
- sleep 1000; if ( .inprogress == 0 ) goto L_Abort;
- }
- if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
- mapannounce "bat_a01", "Comienza Round Decisivo!!", 0;
- else
- mapannounce "bat_a01", "Round "+ .round++ +" comiencen!!", 0;
- bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
- bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
- delwall "bg_emp_town_red";
- delwall "bg_emp_town_blue";
- sleep .eventlasting * 1000; if ( .inprogress == 0 ) goto L_Abort;
- .score[ .winside ]++;
- bg_updatescore "bat_a01", .score[1], .score[2];
- killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
- killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
- if ( .winside )
- mapannounce "bat_a01", .empkiller$ +" Destruyo "+( ( .winside == 1 )?"Glacial":"Vulcan" )+"'s Stone. "+( ( .winside == 1 )?"Vulcan":"Glacial" )+" ganan un punto !", 0;
- if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
- sleep 5000; if ( .inprogress == 0 ) goto L_Abort;
- bg_warp .red, "bat_a01", 171,346;
- bg_warp .blue, "bat_a01", 162,50;
- setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
- setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
- .winside = 0;
- }
- if ( .winside ) {
- mapannounce "bat_a01", ( ( .winside == 1 )?"Vulcan":"Glacial" )+" Team gana !", 0;
- .@size = getarraysize( getd(".team"+ .winside +"aid") );
- for ( .@i = 0; .@i < .@size; .@i++ )
- getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
- } else
- mapannounce "bat_a01", "Tiempo Fuera. Abortando la partida.", 0;
- sleep 5000;
- L_Abort:
- bg_warp .red, "turbo_room", 90,133;
- bg_warp .blue, "turbo_room", 79,133;
- bg_destroy .red;
- bg_destroy .blue;
- delwall "bg_emp_town_red";
- delwall "bg_emp_town_blue";
- deletearray .team1aid;
- deletearray .team2aid;
- .round = .winside = .score[2] = .score[1] = .inprogress = 0;
- end;
- OnRedDown: callsub L_EmpDown, 2;
- OnBlueDown: callsub L_EmpDown, 1;
- L_EmpDown:
- .empkiller$ = strcharinfo(0);
- .winside = getarg(0);
- awake strnpcinfo(3);
- OnRedDead:
- OnBlueDead:
- end;
- OnRedQuit: callsub L_quit, .red, "Vulcan", "Glacial", 2;
- OnBlueQuit: callsub L_quit, .blue, "Glacial", "Vulcan", 1;
- L_quit:
- if ( bg_get_data( getarg(0), 0 ) ) end;
- mapannounce "bat_a01", "Todos "+ getarg(1) +" se han marchado ! "+ getarg(2) +"'s ganan !", 0;
- .@size = getarraysize( getd(".team"+ getarg(3) +"aid") );
- for ( .@i = 0; .@i < .@size; .@i++ )
- getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(3) +"aid["+ .@i +"]" );
- goto L_Abort;
- OnAutoAbort:
- sleep .register_lasting * 1000;
- delwaitingroom .rednpcname$;
- delwaitingroom .bluenpcname$;
- disablenpc .rednpcname$;
- disablenpc .bluenpcname$;
- if ( .inprogress == 1 ) {
- .inprogress = 0;
- announce "Se detuvo el BG por falta de miembros", 0;
- }
- end;
- }
- izlude,88,138,5 script gm_start 100,{
- if ( getgmlevel() < 99 ) {
- mes "Espera al admin para jugar";
- 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) +" ha iniciado un "+ .@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;
- }
- turbo_room,90,139,4 script Red side#bg_emp 100,{
- end;
- OnStart:
- waitingroom "Vulcan 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;
- }
- turbo_room,79,139,5 script Blue side#bg_emp 100,{
- end;
- OnStart:
- waitingroom "Glacial 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;
- }
- bat_a01 mapflag battleground 2
- bat_a01 mapflag nosave SavePoint
- bat_a01 mapflag nowarp
- bat_a01 mapflag nowarpto
- bat_a01 mapflag noteleport
- bat_a01 mapflag nomemo
- bat_a01 mapflag nopenalty
- bat_a01 mapflag nobranch
- bat_a01 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement