yuhsing

Untitled

Aug 22nd, 2013
78
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.71 KB | None | 0 0
  1.  
  2.  
  3.  
  4. prontera,155,181,5 script Special MVP Room 757,{
  5. .@party_id = getcharid(1);
  6. .@size = getarraysize( .queue_party );
  7.  
  8. if( !.@party_id ){
  9. mes "You dont have any Party.";
  10. }else if( getcharid(0) != getpartyleader( .@party_id,2 ) ){
  11. mes "You're not Party Leader.";
  12. }else{
  13. mes "I need these.";
  14. for( .@i = 0; .@i < .required_item_size; .@i++ ){
  15. mes "^FF0000"+getitemname( .required_item[.@i] )+" x "+.required_item_qty[.@i];
  16. if( countitem( .required_item[.@i] ) < .required_item_qty[.@i] ) .@failed++;
  17. }
  18. if( !.@failed ){
  19. next;
  20. if( select( "Pay and Enter","Close" ) ){
  21. if( getmapusers( .map$ ) ){
  22. mes "There are another Party inside. Please try again later.";
  23. mes "There are currently "+.@size+" Queued Party.";
  24. if( select( "Add Party to Queue","Close" ) ){
  25. for( .@i = 0; .@i < .@size; .@i++ )
  26. if( .queue_party[.@i] == .@party_id ){
  27. mes "Your party are now in the queue no. "+( .@i+1 );
  28. close;
  29. }
  30. .queue_party[ .@size ] = .@party_id;
  31. mes "Done added to Queue.";
  32. }
  33.  
  34. }else{
  35. stopnpctimer;
  36. for( .@i = 0; .@i < .required_item_size; .@i++ )
  37. delitem .required_item[.@i],.required_item_qty[.@i];
  38. .party_id = .@party_id;
  39. if( .party_id == .queue_party[0] ) deletearray .queue_party[0],1;
  40. warpparty .map$,0,0,.party_id;
  41. killmonsterall .map$;
  42. .round = 0;
  43. donpcevent "::OnStageStart";
  44. }
  45. }
  46. }
  47. }
  48. close;
  49.  
  50. OnInit:
  51. .map$ = "guild_vs1-4";
  52. // stage boss
  53. .stage_boss = 3;
  54.  
  55. // round pause
  56. .pause = 6;
  57.  
  58. // required item to enter
  59. setarray .required_item,501,502,503;
  60. setarray .required_item_qty,1,2,3;
  61.  
  62. // reward for all party member
  63. setarray .reward_item,501,502,503;
  64. setarray .reward_item_qty,1,2,3;
  65.  
  66. .required_item_size = getarraysize( .required_item );
  67. .reward_item_size = getarraysize( .reward_item );
  68.  
  69. .npcname$ = strnpcinfo(0);
  70. getmapxy( .npc_map$,.npc_x,.npc_y,1 );
  71. end;
  72.  
  73. // round delay
  74. OnStageStart:
  75. .pause_wait = gettimetick(1) + .pause;
  76. .round++;
  77. mapannounce .map$,"Round "+.round+" starting..within "+.pause+" seconds",0;
  78. end;
  79.  
  80. // round start
  81. OnStageStart2:
  82. if( .mob_count ) end;
  83. if( .party_id ){
  84. mapannounce .map$,"Round "+.round+" start...kill all monsters and survive...",0;
  85. switch( .round ){
  86. // add other cases if you need more...
  87. Case 1:
  88. setarray .@monster,1002,1001;
  89. setarray .@mob_amount,10,30;
  90. break;
  91. Case 2:
  92. setarray .@monster,1002,1001;
  93. setarray .@mob_amount,10,30;
  94. break;
  95. default: // boss stage
  96. setarray .@monster,1002,1001;
  97. setarray .@mob_amount,10,30;
  98. break;
  99. }
  100. .@size = getarraysize( .@monster );
  101. for( .@i = 0; .@i < .@size; .@i++ )
  102. monster .map$,50,50,"MONSTER",.@monster[.@i],.@mob_amount[.@i],.npcname$+"::"+( ( .round == .stage_boss )?"OnBossKill":"OnMobKill" );
  103. .mob_count = mobcount( .map$,.npcname$+"::"+( ( .round == .stage_boss )?"OnBossKill":"OnMobKill" ) );
  104. }
  105. end;
  106.  
  107. OnMobKill:
  108. .mob_count--;
  109. if( .mob_count ){
  110. mapannounce .map$,"Left "+.mob_count+" mobs.",0;
  111. }else{
  112. donpcevent "::OnStageStart";
  113. }
  114. end;
  115.  
  116. OnBossKill:
  117. .mob_count--;
  118. if( .mob_count ){
  119. mapannounce .map$,"Left "+.mob_count+" mobs.",0;
  120. }else{
  121. mapannounce .map$,"Congratulations to all survivor...",0;
  122. sleep2 3000;
  123. .@size = getarraysize( .queue_party );
  124. .party_id = 0;
  125. if( .@size )
  126. initnpctimer;
  127. attachrid( getpartyleader( getcharid(1),1 ) );
  128. for( .@i = 0; .@i < .reward_item_size; .@i++ )
  129. getitem .reward_item[.@i],.reward_item_qty[.@i];
  130. message strcharinfo(0),"Leader Gained Rewards.";
  131. mapwarp .map$,"prontera",155,181;
  132. }
  133. end;
  134.  
  135. OnTimer3000:
  136. awake .npcname$;
  137. awake "#tick";
  138. warpparty .npc_map$,.npc_x,.npc_y,.queue_party[0];
  139. announce "Next party ( "+getpartyname( .queue_party[0] )+" ) have 2 minutes to register.",0;
  140. end;
  141. OnTimer60000:
  142. announce "Next party ( "+getpartyname( .queue_party[0] )+" ) have 1 minutes to register.",0;
  143. end;
  144. OnTimer120000:
  145. deletearray .queue_party[0],1;
  146. if( .queue_party[0] ) initnpctimer;
  147. end;
  148.  
  149. OnPCLogoutEvent:
  150. .@party_id = getcharid(1);
  151. if( getcharid(0) == getpartyleader( .party_id,2 ) && .@party_id ){
  152. mapannounce .map$,"Party Leader disconnected, everyone will be kicked out.",0;
  153. sleep 1000;
  154. mapwarp .map$,"prontera",155,181;
  155. .party_id = 0;
  156. if( getarraysize( .queue_party ) ) initnpctimer;
  157. }
  158. end;
  159.  
  160. }
  161. guild_vs1-4,50,50,5 script #tick 858,{
  162. end;
  163.  
  164. OnStageStart:
  165. hideoffnpc strnpcinfo(0);
  166. while( 1 ){
  167. .@time = ( getvariableofnpc(.pause_wait,"Special MVP Room") - gettimetick(1) );
  168. if( .@time > 0 ){
  169. delwaitingroom;
  170. waitingroom " "+.@time+" seconds.",0;
  171. }else{
  172. break;
  173. }
  174. sleep 1000;
  175. }
  176. delwaitingroom;
  177. hideonnpc strnpcinfo(0);
  178. donpcevent "::OnStageStart2";
  179. end;
  180. }
  181.  
  182.  
  183. guild_vs1-4 mapflag nosave Savepoint
  184. guild_vs1-4 mapflag nocommand 90
Advertisement
Add Comment
Please, Sign In to add comment