Advertisement
Guest User

Untitled

a guest
Mar 6th, 2013
194
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 14.50 KB | None | 0 0
  1. - script bg_emp#control -1,{
  2. OnInit:
  3. setarray .rewarditem, 29003, 5; // reward to the winning team
  4. set .winningscore, 3; // final score to win
  5. set .eventlasting, 20 * 60; // abort the system if there's no progress, 20 mins * seconds
  6. set .register_lasting, 1 * 60; // 3 minutes to joins, else abort registration, 10 mins * seconds
  7. sleep 1;
  8. disablenpc .rednpcname$;
  9. disablenpc .bluenpcname$;
  10. end;
  11. OnStart:
  12. if ( getwaitingroomstate( 0, .rednpcname$ ) < .minplayer2start || getwaitingroomstate( 0, .bluenpcname$ ) < .minplayer2start ) end;
  13. set .red, waitingroom2bg( "bat_a01", 171,346, strnpcinfo(0)+"::OnRedQuit", strnpcinfo(0)+"::OnRedDead", .rednpcname$ );
  14. copyarray .team1aid, $@arenamembers, $@arenamembersnum;
  15. set .blue, waitingroom2bg( "bat_a01", 162,50, strnpcinfo(0)+"::OnBlueQuit", strnpcinfo(0)+"::OnBlueDead", .bluenpcname$ );
  16. copyarray .team2aid, $@arenamembers, $@arenamembersnum;
  17. .inprogress = 2;
  18. bg_warp .red, "bat_a01", 171,346;
  19. bg_warp .blue, "bat_a01", 162,50;
  20. setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
  21. setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
  22. bg_updatescore "bat_a01", 0, 0;
  23. sleep 6000; if ( .inprogress == 0 ) goto L_Abort;
  24. mapannounce "bat_a01", "Rules are simple. The first one to break the opponent's emperium will get a score.", 0;
  25. sleep 3000; if ( .inprogress == 0 ) goto L_Abort;
  26. mapannounce "bat_a01", "Score "+ .winningscore +" rounds to win ! ... GET READY", 0;
  27. sleep 2000; if ( .inprogress == 0 ) goto L_Abort;
  28. while (1) {
  29. for ( .@i = 5; .@i > 0; .@i-- ) {
  30. mapannounce "bat_a01", .@i +"", 0;
  31. sleep 1000; if ( .inprogress == 0 ) goto L_Abort;
  32. }
  33. if ( .score[1] == .winningscore -1 && .score[2] == .winningscore -1 )
  34. mapannounce "bat_a01", "Final Round start!", 0;
  35. else
  36. mapannounce "bat_a01", "Round "+ .round++ +" start!", 0;
  37. bg_monster .red,"bat_a01",157,346, "--ja--",1915, strnpcinfo(3)+"::OnRedDown";
  38. bg_monster .blue,"bat_a01",148,50, "--ja--",1914, strnpcinfo(3)+"::OnBlueDown";
  39. bg_monster .red,"bat_a01",171,346, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  40. bg_monster .red,"bat_a01",171,346, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  41. bg_monster .red,"bat_a01",171,346, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  42. bg_monster .blue,"bat_a01",162,50, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  43. bg_monster .blue,"bat_a01",162,50, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  44. bg_monster .blue,"bat_a01",162,50, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  45. //Outside
  46. bg_monster .red,"bat_a01",193,271, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  47. bg_monster .red,"bat_a01",193,271, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  48. bg_monster .red,"bat_a01",193,271, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  49. bg_monster .blue,"bat_a01",177,123, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  50. bg_monster .blue,"bat_a01",177,123, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  51. bg_monster .blue,"bat_a01",177,123, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  52. //Outside Left Side
  53. bg_monster .red,"bat_a01",279,235, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  54. bg_monster .red,"bat_a01",279,235, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  55. bg_monster .red,"bat_a01",279,235, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  56. bg_monster .red,"bat_a01",279,235, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  57. bg_monster .red,"bat_a01",279,235, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  58. bg_monster .red,"bat_a01",279,235, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  59. bg_monster .blue,"bat_a01",268,163, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  60. bg_monster .blue,"bat_a01",268,163, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  61. bg_monster .blue,"bat_a01",268,163, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  62. bg_monster .blue,"bat_a01",268,163, "--ja--",1285, strnpcinfo(3)+"::Onguardian";
  63. bg_monster .blue,"bat_a01",268,163, "--ja--",1286, strnpcinfo(3)+"::Onguardian";
  64. bg_monster .blue,"bat_a01",268,163, "--ja--",1287, strnpcinfo(3)+"::Onguardian";
  65. delwall "bg_emp_town_red";
  66. delwall "bg_emp_town_blue";
  67. sleep .eventlasting * 1000; if ( .inprogress == 0 ) goto L_Abort;
  68. .score[ .winside ]++;
  69. bg_updatescore "bat_a01", .score[1], .score[2];
  70. killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
  71. killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
  72. killmonster "bat_a01", strnpcinfo(3)+"::Onguardian";
  73. if ( .winside )
  74. mapannounce "bat_a01", .empkiller$ +" has Destroy "+( ( .winside == 1 )?"Blue":"Red" )+"'s side Emperium. "+( ( .winside == 1 )?"Red":"Blue" )+" team score a point !", 0;
  75. if ( .score[1] == .winningscore || .score[2] == .winningscore || !.winside ) break;
  76. sleep 5000; if ( .inprogress == 0 ) goto L_Abort;
  77. bg_warp .red, "bat_a01", 171,346;
  78. bg_warp .blue, "bat_a01", 162,50;
  79. setwall "bat_a01", 154,51, 6, 4, 0, "bg_emp_town_blue";
  80. setwall "bat_a01", 164,347, 6, 4, 0, "bg_emp_town_red";
  81. .winside = 0;
  82. }
  83. if ( .winside ) {
  84. mapannounce "bat_a01", ( ( .winside == 1 )?"Red":"Blue" )+" side wins !", 0;
  85. .@size = getarraysize( getd(".team"+ .winside +"aid") );
  86. for ( .@i = 0; .@i < .@size; .@i++ )
  87. getitem .rewarditem[0], .rewarditem[1], getd(".team"+ .winside +"aid["+ .@i +"]" );
  88. goto L_Abort;
  89. } else
  90. mapannounce "bat_a01", "Time Out. Aborting the match.", 0;
  91. goto L_Abort;
  92. sleep 5000;
  93. L_Abort:
  94. bg_warp .red, "prontera", 155,182;
  95. bg_warp .blue, "prontera", 158,182;
  96. bg_destroy .red;
  97. bg_destroy .blue;
  98. set $@startE,0;
  99. set $@TeamRed,0;
  100. set $@TeamBlue,0;
  101. killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
  102. killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
  103. killmonster "bat_a01", strnpcinfo(3)+"::Onguardian";
  104. delwall "bg_emp_town_red";
  105. delwall "bg_emp_town_blue";
  106. deletearray .team1aid;
  107. deletearray .team2aid;
  108. .round = .winside = .score[2] = .score[1] = .inprogress = 0;
  109. end;
  110. OnRedDown: callsub L_EmpDown, 2;
  111. OnBlueDown: callsub L_EmpDown, 1;
  112. L_EmpDown:
  113. .empkiller$ = strcharinfo(0);
  114. .winside = getarg(0);
  115. awake strnpcinfo(3);
  116. OnRedDead:
  117. OnBlueDead:
  118. sleep2 1500;
  119. percentheal 100,100;
  120. sc_start SC_BASILICA,5000,1;
  121. end;
  122. Onguardian:
  123. end;
  124. OnRedQuit: callsub L_quit, .red, "Red", "Blue", 2;
  125. OnBlueQuit: callsub L_quit, .blue, "Blue", "Red", 1;
  126. L_quit:
  127. if ( bg_get_data( getarg(0), 0 ) ) end;
  128. mapannounce "bat_a01", "All "+ getarg(1) +" team members has Quit ! "+ getarg(2) +" side wins !", 0;
  129. .@size = getarraysize( getd(".team"+ getarg(3) +"aid") );
  130. for ( .@i = 0; .@i < .@size; .@i++ )
  131. getitem .rewarditem[0], .rewarditem[1], getd(".team"+ getarg(3) +"aid["+ .@i +"]" );
  132. goto L_Abort;
  133. OnAutoAbort:
  134. sleep .register_lasting * 1000;
  135. delwaitingroom .rednpcname$;
  136. delwaitingroom .bluenpcname$;
  137. disablenpc .rednpcname$;
  138. disablenpc .bluenpcname$;
  139. set $@startE,0;
  140. set $@TeamRed,0;
  141. set $@TeamBlue,0;
  142. mapwarp "quiz_01","prontera",156,191;
  143. if ( .inprogress == 1 ) {
  144. .inprogress = 0;
  145. announce "battleground has self-aborted because not enough members", 0;
  146. }
  147. end;
  148. }
  149. gonryun,151,110,6 script Crystal Wars::crystalwar 456,{
  150. if (getgmlevel() >= 99){
  151. menu "Register Team",standard,"Reset",lend;
  152. }
  153. standard:
  154. set .@a,7; // number of party members change this to your party size you want
  155. set $@members,7; // number of party members change this to your party size you want
  156. set getvariableofnpc( .minplayer2start, "bg_emp#control" ), .@a;
  157. enablenpc getvariableofnpc( .rednpcname$, "bg_emp#control" );
  158. enablenpc getvariableofnpc( .bluenpcname$, "bg_emp#control" );
  159. donpcevent getvariableofnpc( .rednpcname$, "bg_emp#control" ) +"::OnStart";
  160. donpcevent getvariableofnpc( .bluenpcname$, "bg_emp#control" ) +"::OnStart";
  161. set getvariableofnpc( .inprogress, "bg_emp#control" ), 1;
  162. set $@startE,0;
  163. getpartymember(getcharid(1));
  164. set @partymembercount,$@partymembercount;
  165. if ( $@startE == 1 ) {
  166. mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
  167. close;
  168. }
  169. if ( @partymembercount == $@members ) {
  170. if ( $@TeamRed == getcharid(1) ) {
  171. mes "Do you wish to sign out your team in crystal wars?";
  172. next;
  173. if (select("I Give up ~.","Never Say Quit !!")==2) close;
  174. announce "Team 1 : [ " + getpartyname($@TeamRed) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map;
  175. set $@TeamRed, 0;
  176. close;
  177. }
  178. if ($@TeamID2==getcharid(1)) {
  179. mes "Do you wish to sign out your team in crystal wars?";
  180. next;
  181. if (select("I Give up ~.","Never Say Quit !!")==2) close;
  182. announce "Team 2 : [ " + getpartyname($@TeamBlue) + " ] has sign out. We need another Party to sign up now!",bc_yellow|bc_map;
  183. set $@TeamBlue, 0;
  184. close;
  185. }
  186. mes "Hello "+strcharinfo(0)+" what do you want?";
  187. if (($@TeamRed!=0) && ($@TeamBlue!=0)) {
  188. mes "The Sign Ups are currently unavailable because a match is in progress. Don't hesitate to try again in a few minutes!";
  189. close;
  190. }
  191. if ( getpartyleader(getcharid(1),2) != getcharid(0) ) {
  192. mes "Only party leader have the right to sign up / out from the game with me..";
  193. close;
  194. }
  195. mes "Choose your team to register.";
  196. switch(select("Red Team - [" + GetPartyName($@TeamRed) + "] :Blue Team - [" + GetPartyName($@TeamBlue) + "]")) {
  197. case 1: mes "[ Crystal War ]";
  198. if ($@TeamRed==0 || getpartyname($@TeamRed)=="null") {
  199. getpartymember(getcharid(1)),1;
  200. getpartymember(getcharid(1)),2;
  201. copyarray $@partymembercidt1[0],$@partymembercid[0],$@members;
  202. copyarray $@partymemberaidt1[0],$@partymemberaid[0],$@members;
  203. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  204. if(isloggedin($@partymemberaidt1[.@i],$@partymembercidt1[.@i])) set .@count,.@count+1;
  205. }
  206. if(.@count < $@members) {
  207. mes "You need all your party members to be online to Register";
  208. close;
  209. }
  210. set $@TeamRed, getcharid(1);
  211. initnpctimer;
  212. mes "Your Party is now subscribed, good luck!";
  213. announce "Team 1 : [ " +getpartyname($@TeamRed)+ " ] has sign up For the Crystal Wars!",bc_blue|bc_map;
  214. donpcevent "bg_emp#control::OnAutoAbort";
  215. doevent "crystalwar::OnSubscriptionTeam";
  216. close;
  217. } else {
  218. mes "I'm sorry! Another Team has sign up before you...";
  219. close;
  220. }
  221. case 2: mes "[ Crystal War ]";
  222. if ($@TeamBlue==0 || getpartyname($@TeamBlue)=="null") {
  223. getpartymember(getcharid(1)),1;
  224. getpartymember(getcharid(1)),2;
  225. copyarray $@partymembercidt2[0],$@partymembercid[0],$@members;
  226. copyarray $@partymemberaidt2[0],$@partymemberaid[0],$@members;
  227. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  228. if(isloggedin($@partymemberaidt2[.@i],$@partymembercidt2[.@i])) set .@count,.@count+1;
  229. }
  230. if(.@count < $@members) {
  231. mes "You need all your party members to be online to Register";
  232. close;
  233. }
  234. set $@TeamBlue, getcharid(1);
  235. initnpctimer;
  236. mes "Your Party is now subscribed, good luck!";
  237. announce "Team 2 : [ " +getpartyname($@TeamBlue)+ " ] has sign up For the Crystal Wars!",bc_blue|bc_map;
  238. donpcevent "bg_emp#control::OnAutoAbort";
  239. doevent "crystalwar::OnSubscriptionTeam";
  240. close;
  241. } else {
  242. mes "I'm sorry! Another Team has sign up before you...";
  243. close;
  244. }
  245. }
  246. } else {
  247. mes "[Event Handler]";
  248. mes "Please contact your party leader.";
  249. mes "Your team must have a party consisting of "+$@members+" members.";
  250. close;
  251. }
  252.  
  253. OnSubscriptionTeam:
  254. getpartymember($@TeamBlue),1;
  255. getpartymember($@TeamBlue),2;
  256. copyarray $@partymembercidtc2[0],$@partymembercid[0],$@members;
  257. copyarray $@partymemberaidc2[0],$@partymemberaid[0],$@members;
  258. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  259. if(isloggedin($@partymemberaidc2[.@i],$@partymembercidtc2[.@i])) set .@countx,.@countx+1;
  260. }
  261. if(.@countx < $@members) {
  262. announce "Crystal War : "+getpartyname($@TeamBlue)+"are not all online the match has been canceled",0;
  263. announce "Crystal War : Registration for [2] New Team is now Available",0;
  264. goto lend;
  265. }
  266. if ( $@TeamBlue && $@partymembercount != $@members ) {
  267. announce getpartyname($@TeamBlue) +" has extra party members, Registration is now Reset!", 0;
  268. goto lend;
  269. }
  270. getpartymember($@TeamRed),1;
  271. getpartymember($@TeamRed),2;
  272. copyarray $@partymembercidtc1[0],$@partymembercid[0],$@members;
  273. copyarray $@partymemberaidc1[0],$@partymemberaid[0],$@members;
  274. for (set .@i,0; .@i<$@members; set .@i,.@i+1) {
  275. if(isloggedin($@partymemberaidc1[.@i],$@partymembercidtc1[.@i])) set .@countz,.@countz+1;
  276. }
  277. if(.@countz < $@members) {
  278. announce "Crystal War : "+getpartyname($@TeamRed)+"are not all online the match has been canceled",0;
  279. announce "Crystal War : Registration for [2] New Team is now Available",0;
  280. goto lend;
  281. }
  282. if ( $@TeamRed && $@partymembercount != $@members ) {
  283. announce getpartyname($@TeamRed) +" has extra party members !", 0;
  284. goto lend;
  285. }
  286. if($@TeamRed!=0 && $@TeamBlue!=0){
  287. announce "Crystal War : We have 2 Teams signed up now : "+getpartyname($@TeamRed)+" and "+getpartyname($@TeamBlue)+".",bc_blue|bc_map;
  288. warpparty "quiz_01",37,74,$@TeamRed;
  289. warpparty "quiz_01",73,73,$@TeamBlue;
  290. setcell "quiz_01",34,81,40,81,cell_walkable,0;
  291. setcell "quiz_01",70,81,76,81,cell_walkable,0;
  292. }
  293. end;
  294.  
  295. lend:
  296. stopnpctimer;
  297. set $@TeamRed,0;
  298. set $@TeamBlue,0;
  299. set $@startE,0;
  300. set @partymembercount,$@members;
  301. awake "bg_emp#control";
  302. killmonster "bat_a01", strnpcinfo(3)+"::OnRedDown";
  303. killmonster "bat_a01", strnpcinfo(3)+"::OnBlueDown";
  304. delwaitingroom getvariableofnpc( .rednpcname$, "bg_emp#control" );
  305. delwaitingroom getvariableofnpc( .bluenpcname$, "bg_emp#control" );
  306. disablenpc getvariableofnpc( .rednpcname$, "bg_emp#control" );
  307. disablenpc getvariableofnpc( .bluenpcname$, "bg_emp#control" );
  308. announce "Thanks for playing",0;
  309. end;
  310. }
  311.  
  312. quiz_01,37,74,5 script Red side#bg_emp 100,{
  313. end;
  314. OnStart:
  315. waitingroom "Red side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
  316. end;
  317. OnInit:
  318. set getvariableofnpc( .rednpcname$, "bg_emp#control" ), strnpcinfo(0);
  319. end;
  320. }
  321.  
  322. quiz_01,73,76,5 script Blue side#bg_emp 100,{
  323. end;
  324. OnStart:
  325. waitingroom "Blue side", getvariableofnpc( .minplayer2start, "bg_emp#control" ) +1, "bg_emp#control::OnStart", getvariableofnpc( .minplayer2start, "bg_emp#control" );
  326. end;
  327. OnInit:
  328. set getvariableofnpc( .bluenpcname$, "bg_emp#control" ), strnpcinfo(0);
  329. end;
  330. }
  331.  
  332. bat_a01 mapflag battleground 2
  333. bat_a01 mapflag nosave SavePoint
  334. bat_a01 mapflag nowarp
  335. bat_a01 mapflag nowarpto
  336. bat_a01 mapflag noteleport
  337. bat_a01 mapflag nomemo
  338. bat_a01 mapflag nopenalty
  339. bat_a01 mapflag nobranch
  340. bat_a01 mapflag noicewall
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement