yuhsing

Untitled

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