yuhsing

Untitled

Jun 12th, 2013
40
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.17 KB | None | 0 0
  1.  
  2.  
  3.  
  4. prontera,155,171,5 script Date Dungeon 757,{
  5. if( select( "Participate Date Dungeon","View Records" ) == 2 ){
  6. switch( select( "[ Easy ]","[ Normal ]","[ Hard ]" ) ){
  7. default:
  8. Case 1:
  9. mes "^0055FF[ Easy Mode ]^000000";
  10. mes "Time : ^777777"+( $date_easy_record / 60000 )+" min. "+( ( $date_easy_record % 60000 ) / 1000 )+" secs.^000000";
  11. mes "^0055FFPartner :^000000";
  12. mes " ~ ^777777"+$date_easy_1$+"^000000";
  13. mes " ~ ^777777"+$date_easy_2$+"^000000";
  14. break;
  15. Case 2:
  16. mes "^0055FF[ Normal Mode ]^000000";
  17. mes "Time : ^777777"+( $date_normal_record / 60000 )+" min. "+( ( $date_normal_record % 60000 ) / 1000 )+" secs.^000000";
  18. mes "^0055FFPartner :^000000";
  19. mes " ~ ^777777"+$date_normal_1$+"^000000";
  20. mes " ~ ^777777"+$date_normal_2$+"^000000";
  21. break;
  22. Case 3:
  23. mes "^0055FF[ Hard Mode ]^000000";
  24. mes "Time : ^777777"+( $date_hard_record / 60000 )+" min. "+( ( $date_hard_record % 60000 ) / 1000 )+" secs.^000000";
  25. mes "^0055FFPartner :^000000";
  26. mes " ~ ^777777"+$date_hard_1$+"^000000";
  27. mes " ~ ^777777"+$date_hard_2$+"^000000";
  28. break;
  29. }
  30. }else if( .npc_usage >= .max_npc_usage ){
  31. mes "Daily Limit ("+.max_npc_usage+" attempts) reached. You cant join anymore for today.";
  32. }else if( !ispartneron() ){
  33. mes "Your partner isnt online.";
  34. }else if( !instance_id(1) ){
  35.  
  36. set .@party_id,getcharid(1);
  37. if( !.@party_id ){
  38. mes "You dont have a party.";
  39. close;
  40. }
  41. if( getpartyleader( .@party_id,2 ) != getcharid(0) ){
  42. mes "You are not party leader.";
  43. close;
  44. }
  45. getpartymember .@party_id,1;
  46. if( $@partymembercount != 2 || !instance_check_party( .@party_id,2,1,150 ) ){
  47. mes "Required 2 members in one party where both members must online and between level 1 ~ 150";
  48. close;
  49. }
  50. set .@getpartnerid,getpartnerid();
  51. for( set .@i,0; .@i < $@partymembercount; set .@i,.@i + 1 )
  52. if( $@partymembercid[.@i] == .@getpartnerid ){
  53.  
  54. set @mode,select( "[ Easy ]","[ Normal ]","[ Hard ]" );
  55. set .@instance,instance_create( " Date Dungeon ",.@party_id );
  56.  
  57. if( .@instance < 0 ){
  58. switch( .@instance ){
  59. Case -2: mes "Invalid Party ID"; break;
  60. Case -3: mes "Max Instances Exceed."; break;
  61. Case -4:
  62. Case -1:
  63. default:
  64. mes "Failed to Create an Instances.";
  65. }
  66.  
  67. }else{
  68. instance_attachmap( .map$,.@instance );
  69. instance_set_timeout ( .dungeon_duration * 60 ),( .idle_duration * 60 ),.@instance;
  70. instance_init .@instance;
  71. instance_attach .@instance;
  72. set .npc_usage,.npc_usage + 1;
  73. warpparty has_instance( .map$ ),0,0,.@party_id;
  74. donpcevent instance_npcname( "Date Dungeon#main",instance_id() )+"::OnInstanceInit";
  75. end;
  76. }
  77. close;
  78. }
  79. mes "Your spouse isnt in the party.";
  80.  
  81. }else{
  82. mes "You cant enter now.";
  83. }
  84. close;
  85.  
  86. OnClock0001:
  87. set .npc_usage,0;
  88. end;
  89.  
  90. OnInit:
  91. // dungeon map ( use instance mapname )
  92. set .map$,"1@room";
  93. // max entry every day
  94. set .max_npc_usage,10;
  95. // dungeon duration
  96. set .dungeon_duration,60;
  97. // dungeon ( out of room kick )
  98. set .idle_duration,1;
  99.  
  100. setarray .mapflag,
  101. mf_nomemo,
  102. mf_noteleport,
  103. mf_nosave,
  104. mf_nobranch,
  105. mf_nowarp,
  106. mf_partylock,
  107. mf_nogo,
  108. mf_nomobloot,
  109. mf_nomvploot,
  110. mf_noreturn,
  111. mf_nowarpto,
  112. mf_monster_noteleport;
  113. set .mapflag_size,getarraysize( .mapflag );
  114. for( set .@i,0; .@i < .mapflag_size; set .@i,.@i + 1 )
  115. setmapflag .map$,.mapflag[.@i];
  116. end;
  117. }
  118.  
  119. // mapname must match with above settings.
  120. 1@room,30,28,4 script Date Dungeon#main 757,{
  121. function DateDungeonMob;
  122.  
  123. if( 'status == 2 ){
  124. npctalk "Kill all monster and survive.";
  125. }else if( getpartyleader( getcharid(1),2 ) != getcharid(0) ){
  126. npctalk "You are not party leader.";
  127. }else if( 'status ){
  128. set 'status,getcharid(1);
  129. set 'instance_id,instance_id(1);
  130. set 'round,0;
  131. set 'mode,@mode;
  132. switch( 'mode ){
  133. default:
  134. Case 1: set 'modename$,"[ Easy ]";
  135. Case 2: set 'modename$,"[ Normal ]";
  136. Case 3: set 'modename$,"[ Hard ]";
  137. }
  138. set 'party_id,getcharid(1);
  139. mes "Date Dungeon will be starting now..";
  140. close2;
  141. initnpctimer;
  142. instance_announce 0,"Welcome to Date Dungeon, and it's starting now...",0;
  143. donpcevent instance_npcname( "Date Dungeon#main",instance_id() )+"::OnInstanceStart";
  144. end;
  145. }else{
  146. npctalk "Please wait...";
  147. }
  148. end;
  149.  
  150. OnPCLogoutEvent:
  151. if( strcharinfo(3) == has_instance( getvariableofnpc( .map$,"Date Dungeon" ) ) ){
  152. instance_announce 0,"Party Member logoff....Dungeon Terminated.",0;
  153. instance_destroy instance_id(1);
  154. }
  155. end;
  156.  
  157. OnInstanceInit:
  158. sleep 2000;
  159. npctalk "Please get yourself ready...Kill all the monster and survive....Resurection Item disabled.";
  160. instance_announce 0,"Welcome to Date Dungeon",0;
  161. sleep 3000;
  162. npctalk "Dungeon will be terminate if party members logoff";
  163. sleep 3000;
  164. npctalk "Click me when you are ready.";
  165. set 'status,1;
  166. set 'mapname$,getvariableofnpc( .map$,"Date Dungeon" );
  167. end;
  168.  
  169. OnNormal:
  170. set 'mobcount,'mobcount - 1;
  171. if( 'mobcount ){
  172. instance_announce 0,"Monster Left : "+'mobcount,0;
  173. end;
  174. }
  175.  
  176. OnInstanceStart:
  177. set 'round,'round + 1;
  178. instance_announce 0,'modename$+" Round "+'round+" start in 5 seconds..",0;
  179. sleep 5000;
  180. switch( 'mode ){
  181. default:
  182. Case 1: // Easy Mode
  183. switch( 'round ){
  184. Case 1: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
  185. Case 2: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
  186. Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  187. default: // Boss Stage
  188. DateDungeonMob( "OnBoss",1002,2 );
  189. }
  190. break;
  191. Case 2: // Normal Mode
  192. switch( 'round ){
  193. Case 1: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  194. Case 2: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  195. Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  196. default: // Boss Stage
  197. DateDungeonMob( "OnBoss",1002,2 );
  198. }
  199. break;
  200. Case 3: // Hard Mode
  201. switch( 'round ){
  202. Case 1: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  203. Case 2: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  204. Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  205. default: // Boss Stage
  206. DateDungeonMob( "OnBoss",1002,2 );
  207. }
  208. break;
  209. }
  210. end;
  211.  
  212. OnBoss:
  213. set 'mobcount,'mobcount - 1;
  214. if( 'mobcount ){
  215. instance_announce 0,'modename$+" Boss Monster Left : "+'mobcount,0;
  216. }else{
  217. stopnpctimer;
  218. set .@timer,getnpctimer(0);
  219. instance_announce 0,'modename$+" Congratz ... Total Time Spent : "+( .@timer / 60000 )+" min. "+( ( .@timer % 60000 ) / 1000 )+" secs.",0;
  220. getpartymember 'status;
  221. switch( 'mode ){
  222. default:
  223. Case 1:
  224. if( $date_easy_record > .@timer || !$date_easy_record ){
  225. set $date_easy_record,.@timer;
  226. set $date_easy_1$,$@partymembername$[0];
  227. set $date_easy_2$,$@partymembername$[1];
  228. }
  229. break;
  230. Case 2:
  231. if( $date_normal_record > .@timer || !$date_normal_record ){
  232. set $date_normal_record,.@timer;
  233. set $date_normal_1$,$@partymembername$[0];
  234. set $date_normal_2$,$@partymembername$[1];
  235. }
  236. break;
  237. Case 3:
  238. if( $date_easy_record > .@timer || !$date_easy_record ){
  239. set $date_hard_record,.@timer;
  240. set $date_hard_1$,$@partymembername$[0];
  241. set $date_hard_2$,$@partymembername$[1];
  242. }
  243. break;
  244. }
  245. sleep 3000;
  246. instance_destroy 'instance_id;
  247. }
  248. end;
  249.  
  250. function DateDungeonMob {
  251. set .@event$,getarg(0);
  252. set .@i,1;
  253. while( getarg( .@i,0 ) ){
  254. monster 'mapname$,0,0,"--ja--",getarg( .@i ),getarg( .@i+1 ),instance_npcname( "Date Dungeon#main", 'instance_id )+"::"+.@event$;
  255. set .@i,.@i + 2;
  256. }
  257. set 'mobcount,mobcount( 'mapname$,instance_npcname( "Date Dungeon#main",'instance_id )+"::"+.@event$ );
  258. instance_announce 0,'modename$+" Monster Left : "+'mobcount,0;
  259. return;
  260. }
  261.  
  262. }
Advertisement
Add Comment
Please, Sign In to add comment