yuhsing

Untitled

Jun 13th, 2013
96
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.48 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( .npc_map$ ),.npc_x,.npc_y,.@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. getmapxy( .npc_map$,.npc_x,.npc_y,1,"Date Dungeon#main" );
  120. end;
  121. }
  122.  
  123. // mapname must match with above settings.
  124. 1@room,30,28,4 script Date Dungeon#main 757,{
  125. function DateDungeonMob;
  126.  
  127. if( 'status == 2 ){
  128. npctalk "Kill all monster and survive.";
  129. }else if( getpartyleader( getcharid(1),2 ) != getcharid(0) ){
  130. npctalk "You are not party leader.";
  131. }else if( 'status ){
  132. set 'status,getcharid(1);
  133. set 'instance_id,instance_id(1);
  134. set 'round,0;
  135. set 'mode,@mode;
  136. switch( 'mode ){
  137. default:
  138. Case 1: set 'modename$,"[ Easy ]"; break;
  139. Case 2: set 'modename$,"[ Normal ]"; break;
  140. Case 3: set 'modename$,"[ Hard ]"; break;
  141. }
  142. set 'party_id,getcharid(1);
  143. mes "Date Dungeon will be starting now..";
  144. close2;
  145. initnpctimer;
  146. instance_announce 0,"Welcome to Date Dungeon, and it's starting now...",0;
  147. donpcevent instance_npcname( "Date Dungeon#main",instance_id() )+"::OnInstanceStart";
  148. end;
  149. }else{
  150. npctalk "Please wait...";
  151. }
  152. end;
  153.  
  154. OnPCLogoutEvent:
  155. if( strcharinfo(3) == has_instance( getvariableofnpc( .map$,"Date Dungeon" ) ) ){
  156. instance_announce 0,"Party Member logoff....Dungeon Terminated.",0;
  157. instance_destroy instance_id(1);
  158. }
  159. end;
  160.  
  161. OnInstanceInit:
  162. sleep 2000;
  163. npctalk "Please get yourself ready...Kill all the monster and survive....Resurection Item disabled.";
  164. instance_announce 0,"Welcome to Date Dungeon",0;
  165. sleep 3000;
  166. npctalk "Dungeon will be terminate if party members logoff";
  167. sleep 3000;
  168. npctalk "Click me when you are ready.";
  169. set 'status,1;
  170. set 'mapname$,getvariableofnpc( .map$,"Date Dungeon" );
  171. end;
  172.  
  173. OnNormal:
  174. set 'mobcount,'mobcount - 1;
  175. if( 'mobcount ){
  176. instance_announce 0,"Monster Left : "+'mobcount,0;
  177. end;
  178. }
  179.  
  180. OnInstanceStart:
  181. set 'round,'round + 1;
  182. instance_announce 0,'modename$+" Round "+'round+" start in 5 seconds..",0;
  183. sleep 5000;
  184. switch( 'mode ){
  185. default:
  186. Case 1: // Easy Mode
  187. switch( 'round ){
  188. Case 1: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
  189. Case 2: DateDungeonMob( "OnNormal",1002,1,1002,1,1004,3 ); break;
  190. Case 3: DateDungeonMob( "OnNormal",1002,1,1002,2,1004,3 ); break;
  191. default: // Boss Stage
  192. DateDungeonMob( "OnBoss",1002,2 );
  193. }
  194. break;
  195. Case 2: // Normal Mode
  196. switch( 'round ){
  197. Case 1: DateDungeonMob( "OnNormal",1002,3,1002,5,1004,7 ); break;
  198. Case 2: DateDungeonMob( "OnNormal",1002,3,1002,5,1004,7 ); break;
  199. Case 3: DateDungeonMob( "OnNormal",1002,3,1002,5,1004,7 ); break;
  200. default: // Boss Stage
  201. DateDungeonMob( "OnBoss",1002,6 );
  202. }
  203. break;
  204. Case 3: // Hard Mode
  205. switch( 'round ){
  206. Case 1: DateDungeonMob( "OnNormal",1002,7,1002,9,1004,12 ); break;
  207. Case 2: DateDungeonMob( "OnNormal",1002,7,1002,9,1004,12 ); break;
  208. Case 3: DateDungeonMob( "OnNormal",1002,7,1002,9,1004,12 ); break;
  209. default: // Boss Stage
  210. DateDungeonMob( "OnBoss",1002,12 );
  211. }
  212. break;
  213. }
  214. end;
  215.  
  216. OnBoss:
  217. set 'mobcount,'mobcount - 1;
  218. if( 'mobcount ){
  219. instance_announce 0,'modename$+" Boss Monster Left : "+'mobcount,0;
  220. }else{
  221. stopnpctimer;
  222. set .@timer,getnpctimer(0);
  223. instance_announce 0,'modename$+" Congratz ... Total Time Spent : "+( .@timer / 60000 )+" min. "+( ( .@timer % 60000 ) / 1000 )+" secs.",0;
  224. getpartymember 'status;
  225. switch( 'mode ){
  226. default:
  227. Case 1:
  228. if( $date_easy_record > .@timer || !$date_easy_record ){
  229. set $date_easy_record,.@timer;
  230. set $date_easy_1$,$@partymembername$[0];
  231. set $date_easy_2$,$@partymembername$[1];
  232. }
  233. break;
  234. Case 2:
  235. if( $date_normal_record > .@timer || !$date_normal_record ){
  236. set $date_normal_record,.@timer;
  237. set $date_normal_1$,$@partymembername$[0];
  238. set $date_normal_2$,$@partymembername$[1];
  239. }
  240. break;
  241. Case 3:
  242. if( $date_easy_record > .@timer || !$date_easy_record ){
  243. set $date_hard_record,.@timer;
  244. set $date_hard_1$,$@partymembername$[0];
  245. set $date_hard_2$,$@partymembername$[1];
  246. }
  247. break;
  248. }
  249. sleep 3000;
  250. instance_announce 0,'modename$+" Instance destroy within 10 seconds..",0;
  251. sleep 10000;
  252. instance_destroy 'instance_id;
  253. }
  254. end;
  255.  
  256. function DateDungeonMob {
  257. set .@event$,getarg(0);
  258. set .@i,1;
  259. while( getarg( .@i,0 ) ){
  260. monster 'mapname$,0,0,"--ja--",getarg( .@i ),getarg( .@i+1 ),instance_npcname( "Date Dungeon#main", 'instance_id )+"::"+.@event$;
  261. set .@i,.@i + 2;
  262. }
  263. set 'mobcount,mobcount( 'mapname$,instance_npcname( "Date Dungeon#main",'instance_id )+"::"+.@event$ );
  264. instance_announce 0,'modename$+" Monster Left : "+'mobcount,0;
  265. return;
  266. }
  267.  
  268. }
Advertisement
Add Comment
Please, Sign In to add comment