yuhsing

Untitled

Apr 17th, 2013
52
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 7.21 KB | None | 0 0
  1.  
  2. - script bg_emp#control -1,{
  3. OnInit:
  4. set .minplayer2start,1; // minimum player to start
  5. set .winningscore,2; // final score to win
  6. set .eventlasting,20 * 60; // abort the system if there's no progress, 20 mins * seconds
  7. setarray .rewarditem,7227,100; // reward to the winning team
  8. end;
  9. OnStart:
  10. if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start )
  11.  
  12. end;
  13. set .red,waitingroom2bg( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
  14. copyarray .team1aid, $@arenamembers, $@arenamembersnum;
  15. set .team1count,.minplayer2start;
  16. set .blue,waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
  17. copyarray .team2aid, $@arenamembers, $@arenamembersnum;
  18. set .team2count,.minplayer2start;
  19. delwaitingroom .rednpcname$;
  20. delwaitingroom .bluenpcname$;
  21. disablenpc .rednpcname$;
  22. disablenpc .bluenpcname$;
  23. bg_warp .red, "bat_a01", 171,346;
  24. bg_warp .blue, "bat_a01", 162,50;
  25. setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
  26. setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
  27. bg_updatescore "bat_a01", 0, 0;
  28. sleep 6000 * !.skip;
  29. mapannounce "bat_a01", "Game Rules : The first one to Break the opponent's Emperium will get a Score.", 0;
  30. sleep 3000 * !.skip;
  31. mapannounce "bat_a01", "Score [ "+ .winningscore +" ] Rounds to Win the Game.", 0;
  32. sleep 3000 * !.skip;
  33. mapannounce "bat_a01", "Get Ready.",0;
  34. sleep 2000 * !.skip;
  35. while (1) {
  36. //set .Round, .Round + 1;
  37. for ( set .@i,5; .@i > 0; set .@i,.@i - 1 ) {
  38. mapannounce "bat_a01", "[ "+ .@i +" ]", 0;
  39. sleep 1000 * !.skip;
  40. }
  41. if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
  42. mapannounce "bat_a01", "Final Round Start.", 0;
  43. else
  44. //mapannounce "bat_a01", "Round 0"+ .round +" Start.", 0;
  45. mapannounce "bat_a01", "Round "+( set( .round, .round +1 ) )+" Start.", 0;
  46. bg_monster .red,"bat_a01",171,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
  47. bg_monster .blue,"bat_a01",162,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
  48. //--------------------------
  49. bg_monster .red,"bat_a01",171,346, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  50. bg_monster .red,"bat_a01",171,346, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  51. bg_monster .red,"bat_a01",171,346, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  52.  
  53. bg_monster .blue,"bat_a01",162,50, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  54. bg_monster .blue,"bat_a01",162,50, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  55. bg_monster .blue,"bat_a01",162,50, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  56. //--------------------------
  57. delwall "bg_emp_town_red";
  58. delwall "bg_emp_town_blue";
  59. sleep .eventlasting * 1000 * !.skip;
  60. bg_updatescore "bat_a01", .score[1], .score[2];
  61. killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
  62. killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
  63. //--------------------------
  64. killmonster "bat_a01", strnpcinfo(3)+"::Onguardian";
  65. //--------------------------
  66. if ( getstrlen( .empkiller$ ) )
  67. mapannounce "bat_a01", "'"+.empkiller$ +"' broke the "+( ( .winside == 1 )? "Blue" : "Red" )+" Team's Emperium.",0;
  68. sleep2 1000;
  69. mapannounce "bat_a01", "[ "+( ( .winside == 1 )? "Red" : "Blue" )+" Team ] Scores a Point.", 0;
  70. if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
  71. sleep 5000 * !.skip;
  72. bg_warp .red, "bat_a01", 171,346;
  73. bg_warp .blue, "bat_a01", 162,50;
  74. setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
  75. setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
  76. sleep 1000 * !.skip;
  77. set .winside,0;
  78. }
  79. if ( .winside ) {
  80. mapannounce "bat_a01","Tribe War has Ended.",0;
  81. sleep2 3000;
  82. mapannounce "bat_a01", ""+ ( ( .winside == 1 ) ? "Red Team Wins !!" : "Blue Team Wins !!" ) +"", 0;
  83. // win team
  84. for ( set .@i,0; .@i < getd(".team"+ .winside +"count"); set .@i,.@i + 1 )
  85. getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
  86. // lose team
  87. for ( set .@i,0; .@i < getd(".team"+ .loseside +"count"); set .@i,.@i + 1 )
  88. getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .loseside +"aid["+ .@i +"]" );
  89. } else
  90. mapannounce "bat_a01", "Time Out. Aborting the match.", 0;
  91. sleep 5000;
  92. bg_warp .red, "prontera", 270,349;
  93. bg_warp .blue, "prontera", 69,63;
  94. bg_destroy .red;
  95. bg_destroy .blue;
  96. delwall "bg_emp_town_red";
  97. delwall "bg_emp_town_blue";
  98. deletearray .team1aid;
  99. deletearray .team2aid;
  100. set .round,0;
  101. set .winside,0;
  102. set .loseside,0;
  103. set .skip,0;
  104. set .score[1],0;
  105. set .score[2],0;
  106. set .team1count,0;
  107. set .team2count,0;
  108. enablenpc .rednpcname$;
  109. enablenpc .bluenpcname$;
  110. donpcevent .rednpcname$ +"::OnStart";
  111. donpcevent .bluenpcname$ +"::OnStart";
  112. end;
  113.  
  114. //--------------------------
  115. Onguardian:
  116. end;
  117. //--------------------------
  118.  
  119. OnRedDown: callsub L_EmpDown, 2,1;
  120. OnBlueDown: callsub L_EmpDown, 1,2;
  121. L_EmpDown:
  122. set .empkiller$,strcharinfo(0);
  123. set .winside,getarg(0);
  124. set .loseside,getarg(1);
  125. set .score[ .winside ],.score[ .winside ] + 1;
  126. awake strnpcinfo(0);
  127. end;
  128.  
  129. OnRedDead: callsub L_dead, 2;
  130. OnBlueDead: callsub L_dead, 1;
  131. L_dead:
  132. for ( set .@i,0; .@i < getd(".team"+ getarg(0) +"count"); set .@i,.@i + 1 )
  133. getitem 607, 1, getd(".team"+ getarg(0) +"aid["+ .@i +"]" ); // give a yggdrasil berry
  134. sleep2 1250;
  135. percentheal 100,100;
  136. end;
  137. OnRedQuit: callsub L_quit, 1, "Red", 2;
  138. OnBlueQuit: callsub L_quit, 2, "Blue", 1;
  139. L_quit:
  140. percentheal 100, 100;
  141. while ( getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ) != getcharid(3) && .@i < getd(".team"+ getarg(0) +"count") )
  142. set .@i,.@i + 1;
  143. deletearray getd( ".team"+ getarg(0) +"aid["+ .@i +"]" ), 1;
  144. setd ".team"+ getarg(0) +"count", getd(".team"+ getarg(0) +"count") -1;
  145. if ( getd(".team"+ getarg(0) +"count") ) end;
  146. mapannounce "bat_a01", "All "+ getarg(1) +" team members has Quit !", 0, 0xff3333; // purposely use different color
  147. set .score[ getarg(2) ],.winningscore;
  148. set .winside,getarg(2);
  149. set .skip,1;
  150. awake strnpcinfo(0);
  151. end;
  152. }
  153.  
  154. prontera,271,351,3 script Red side#bg_emp 450,{
  155. end;
  156. OnInit:
  157. sleep 1;
  158. set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
  159. OnStart:
  160. waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ), strnpcinfo(0)+"::OnJoin", 1;
  161. end;
  162. OnJoin:
  163. announce "The Red side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User",
  164.  
  165. 0;
  166. donpcevent "bg_emp#control::OnStart";
  167. end;
  168. }
  169.  
  170. prontera,71,66,3 script Blue side#bg_emp 624,{
  171. end;
  172. OnInit:
  173. sleep 1;
  174. set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
  175. OnStart:
  176. waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ), strnpcinfo(0)+"::OnJoin", 1;
  177. end;
  178. OnJoin:
  179. announce "The Blue side has ["+ getwaitingroomstate(0) +"/"+ getvariableofnpc( .minplayer2start, "bg_emp#control" ) +"] User",
  180.  
  181. 0;
  182. donpcevent "bg_emp#control::OnStart";
  183. end;
  184. }
  185.  
  186. bat_a01 mapflag battleground 2
  187. bat_a01 mapflag nosave SavePoint
  188. bat_a01 mapflag nowarp
  189. bat_a01 mapflag nowarpto
  190. bat_a01 mapflag noteleport
  191. bat_a01 mapflag nomemo
  192. bat_a01 mapflag nopenalty
  193. bat_a01 mapflag nobranch
  194. bat_a01 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment