yuhsing

Untitled

Mar 31st, 2013
60
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.81 KB | None | 0 0
  1. prontera,149,167,5 script bg_emp_register 100,{
  2. end;
  3. OnStart:
  4. getmapxy .@map$, .@x, .@y, 1;
  5. warpwaitingpc .@map$, .@x, .@y;
  6. callfunc "rand__", .minplayer2start *2, $@rand;
  7. for ( .@i = 0; .@i < $@warpwaitingpcnum; .@i++ )
  8. setbgid ( .@i % 2 )? .red : .blue, $@warpwaitingpc[ $@rand[.@i] ];
  9. delwaitingroom strnpcinfo(0);
  10. bg_warp .red, "bat_c01", 50,124;
  11. bg_warp .blue, "bat_c01", 149,59;
  12. setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
  13. setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
  14. setwall "bat_c01",140,56,6,7,0,"batc01wall_c";
  15. setwall "bat_c01",140,57,5,7,0,"batc01wall_d";
  16. bg_updatescore "bat_c01", 0, 0;
  17. sleep 6000;
  18. areapercentheal "bat_c01",50,123,58,131,100,100;
  19. areapercentheal "bat_c01",141,52,149,60,100,100;
  20. mapannounce "bat_c01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
  21. sleep 3000;
  22. mapannounce "bat_c01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
  23. while (1) {
  24. for ( .@i = 5; .@i > 0; .@i-- ) {
  25. mapannounce "bat_c01","[ "+ .@i +" ]", 0;
  26. sleep 1000;
  27. }
  28. if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
  29. mapannounce "bat_c01", "Final Round start!", 0;
  30. else
  31. mapannounce "bat_c01", "Round "+ .round++ +" Start!", 0;
  32. bg_monster .red,"bat_c01",50,131, "--ja--",1915, strnpcinfo(0)+"::OnRedDown";
  33. bg_monster .blue,"bat_c01",149,52, "--ja--",1914, strnpcinfo(0)+"::OnBlueDown";
  34. delwall "batc01wall_a";
  35. delwall "batc01wall_b";
  36. delwall "batc01wall_c";
  37. delwall "batc01wall_d";
  38. if ( .score[1] != .winningscore || .score[2] != .winningscore )
  39. sleep .eventlasting * 1000;
  40. .score[ .winside ]++;
  41. bg_updatescore "bat_c01", .score[1], .score[2];
  42. killmonster "bat_c01", strnpcinfo(0)+"::OnRedDown";
  43. killmonster "bat_c01", strnpcinfo(0)+"::OnBlueDown";
  44. if ( .winside && .empkiller$ != "" )
  45. mapannounce "bat_c01","[ "+ .empkiller$ +" ] has Destroy "+( ( .winside == 1 )?"Blue":"Red" )+" Team's Emperium. "+( ( .winside == 1 )?"Red":"Blue" )+" Team score a point !", 0;
  46. if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
  47. sleep 5000;
  48. bg_warp .red, "bat_c01", 50,124;
  49. bg_warp .blue, "bat_c01", 149,59;
  50. setwall "bat_c01",54,122,6,7,0,"batc01wall_a";
  51. setwall "bat_c01",55,122,5,7,0,"batc01wall_b";
  52. setwall "bat_c01",140,56,6,7,0,"batc01wall_c";
  53. setwall "bat_c01",140,57,5,7,0,"batc01wall_d";
  54. .winside = 0;
  55. .empkiller$ = "";
  56. sleep 1000;
  57. }
  58. if ( .winside ) {
  59. mapannounce "bat_c01", "[ "+( ( .winside == 1 )?"Red":"Blue" )+" Team] won !", 0;
  60. // Winner Rewards.
  61. getbgusers ( .winside == 1 )? .red : .blue;
  62. for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
  63. getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i]; // item reward
  64.  
  65. // Loser Rewards.
  66. getbgusers ( .winside == 1 )? .blue : .red;
  67. for ( .@i = 0; .@i < $@arenamembersnum; .@i++ )
  68. getitem .rewarditem[0], .rewarditem[1], $@arenamembers[.@i]; // item reward
  69. } else
  70. mapannounce "bat_c01", "Time Out. Aborting the match.", 0;
  71. sleep 5000;
  72. bg_warp .red, "prontera", 155,182;
  73. bg_warp .blue, "prontera", 158,182;
  74. bg_kickall .red;
  75. bg_kickall .blue;
  76. delwall "batc01wall_a";
  77. delwall "batc01wall_b";
  78. delwall "batc01wall_c";
  79. delwall "batc01wall_d";
  80. .round = .winside = .score[0] = .score[1] = .score[2] = 0;
  81. .empkiller$ = "";
  82. waitingroom "BG Emperium", .minplayer2start*2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start*2;
  83. end;
  84. OnRedDown: callsub L_EmpDown, 2;
  85. OnBlueDown: callsub L_EmpDown, 1;
  86. L_EmpDown:
  87. .empkiller$ = strcharinfo(0);
  88. .winside = getarg(0);
  89. awake strnpcinfo(0);
  90. end;
  91. OnRedQuit: callsub L_quit, .red, "Red", 2;
  92. OnBlueQuit: callsub L_quit, .blue, "Blue", 1;
  93. L_quit:
  94. if ( bg_get_data( getarg(0), 0 ) ) end;
  95. mapannounce "bat_c01", "All "+ getarg(1) +" team members has Quit !", 0;
  96. .score[ getarg(2) ] = .winningscore -1;
  97. .winside = getarg(2);
  98. awake strnpcinfo(0);
  99. end;
  100. OnRedDead:
  101. OnBlueDead:
  102. sleep2 1250;
  103. percentheal 100,100;
  104. end;
  105. OnInit:
  106. .red = 3; // red team bg ID
  107. .blue = 4; // blue team bg ID
  108. set .minplayer2start, 1; // minimum player to start
  109. setarray .rewarditem, 501, 1; // reward to the winning team
  110. set .winningscore, 2; // final score to win
  111. set .eventlasting, 1200; // abort the system if there's no progress, 1200 seconds = 20 mins
  112. createbgid .red, "bat_c01", 50,124, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead";
  113. createbgid .blue, "bat_c01", 149,59, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead";
  114. waitingroom "BG Emperium", .minplayer2start*2 +1, strnpcinfo(0) +"::OnStart", .minplayer2start*2;
  115. end;
  116. }
  117.  
  118. bat_c01 mapflag battleground 2
  119. bat_c01 mapflag nosave SavePoint
  120. bat_c01 mapflag nowarp
  121. bat_c01 mapflag nowarpto
  122. bat_c01 mapflag noteleport
  123. bat_c01 mapflag nomemo
  124. bat_c01 mapflag nopenalty
  125. bat_a01 mapflag nobranch
  126. bat_a01 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment