Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- prontera,149,167,5 script bg_emp_register 100,{
- end;
- OnStart:
- getmapxy .@map$, .@x, .@y, 1;
- warpwaitingpc .@map$, .@x, .@y;
- callfunc "rand__", .minplayer2start *2, $@rand;
- for ( .@i = 0; .@i < $@warpwaitingpcnum; .@i++ )
- setbgid ( .@i % 2 )? .red : .blue, $@warpwaitingpc[ $@rand[.@i] ];
- delwaitingroom strnpcinfo(0);
- bg_warp .red, "bat_c01", 50,124;
- bg_warp .blue, "bat_c01", 149,59;
- setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
- setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
- setwall "bat_c01",140,56,6,7,0,"batc01wall_c";
- setwall "bat_c01",140,57,5,7,0,"batc01wall_d";
- bg_updatescore "bat_c01", 0, 0;
- sleep 6000;
- areapercentheal "bat_c01",50,123,58,131,100,100;
- areapercentheal "bat_c01",141,52,149,60,100,100;
- mapannounce "bat_c01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
- sleep 3000;
- mapannounce "bat_c01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
- while (1) {
- for ( .@i = 5; .@i > 0; .@i-- ) {
- mapannounce "bat_c01","[ "+ .@i +" ]", 0;
- sleep 1000;
- }
- if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
- mapannounce "bat_c01", "Final Round start!", 0;
- else
- mapannounce "bat_c01", "Round "+ .round++ +" Start!", 0;
- bg_monster .red,"bat_c01",50,131, "--ja--",1915, strnpcinfo(0)+"::OnRedDown";
- bg_monster .blue,"bat_c01",149,52, "--ja--",1914, strnpcinfo(0)+"::OnBlueDown";
- delwall "batc01wall_a";
- delwall "batc01wall_b";
- delwall "batc01wall_c";
- delwall "batc01wall_d";
- if ( .score[1] != .winningscore || .score[2] != .winningscore )
- sleep .eventlasting * 1000;
- .score[ .winside ]++;
- bg_updatescore "bat_c01", .score[1], .score[2];
- killmonster "bat_c01", strnpcinfo(0)+"::OnRedDown";
- killmonster "bat_c01", strnpcinfo(0)+"::OnBlueDown";
- if ( .winside && .empkiller$ != "" )
- mapannounce "bat_c01","[ "+ .empkiller$ +" ] has Destroy "+( ( .winside == 1 )?"Blue":"Red" )+" Team's Emperium. "+( ( .winside == 1 )?"Red":"Blue" )+" Team score a point !", 0;
- if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
- sleep 5000;
- bg_warp .red, "bat_c01", 50,124;
- bg_warp .blue, "bat_c01", 149,59;
- setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
- setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
- setwall "bat_c01",140,56,6,7,0,"batc01wall_c";
- setwall "bat_c01",140,57,5,7,0,"batc01wall_d";
- .winside = 0;
- .empkiller$ = "";
- sleep 1000;
- }
- if ( .winside ) {
- mapannounce "bat_c01", "[ "+( ( .winside == 1 )?"Red":"Blue" )+" Team] won !", 0;
- // Winner Rewards.
- getbgusers ( .winside == 1 )? .red : .blue;
- for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
- getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i]; // item reward
- // Loser Rewards.
- getbgusers ( .winside == 1 )? .blue : .red;
- for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
- getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i]; // item reward
- } else
- mapannounce "bat_c01", "Time Out. Aborting the match.", 0;
- sleep 5000;
- bg_warp .red, "prontera", 155,182;
- bg_warp .blue, "prontera", 158,182;
- bg_kickall .red;
- bg_kickall .blue;
- delwall "batc01wall_a";
- delwall "batc01wall_b";
- delwall "batc01wall_c";
- delwall "batc01wall_d";
- .round = .winside = .score[0] = .score[1] = .score[2] = 0;
- .empkiller$ = "";
- waitingroom "BG Emperium", .minplayer2start*2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start*2;
- end;
- OnRedDown: callsub L_EmpDown, 2;
- OnBlueDown: callsub L_EmpDown, 1;
- L_EmpDown:
- .empkiller$ = strcharinfo(0);
- .winside = getarg(0);
- awake strnpcinfo(0);
- end;
- OnRedQuit: callsub L_quit, .red, "Red", 2;
- OnBlueQuit: callsub L_quit, .blue, "Blue", 1;
- L_quit:
- if ( bg_get_data( getarg(0), 0 ) ) end;
- mapannounce "bat_c01", "All "+ getarg(1) +" team members has Quit !", 0;
- .score[ getarg(2) ] = .winningscore -1;
- .winside = getarg(2);
- awake strnpcinfo(0);
- end;
- OnRedDead:
- OnBlueDead:
- sleep2 1250;
- percentheal 100,100;
- end;
- OnInit:
- .red = 3; // red team bg ID
- .blue = 4; // blue team bg ID
- set .minplayer2start, 1; // minimum player to start
- setarray .rewarditem, 501, 1; // reward to the winning team
- set .winningscore, 2; // final score to win
- set .eventlasting, 1200; // abort the system if there's no progress, 1200 seconds = 20 mins
- createbgid .red, "bat_c01", 50,124, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead";
- createbgid .blue, "bat_c01", 149,59, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead";
- waitingroom "BG Emperium", .minplayer2start*2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start*2;
- end;
- }
- bat_c01 mapflag battleground 2
- bat_c01 mapflag nosave SavePoint
- bat_c01 mapflag nowarp
- bat_c01 mapflag nowarpto
- bat_c01 mapflag noteleport
- bat_c01 mapflag nomemo
- bat_c01 mapflag nopenalty
- bat_a01 mapflag nobranch
- bat_a01 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment