yuhsing

Untitled

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