Advertisement
Guest User

Untitled

a guest
May 15th, 2015
75
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 12.54 KB | None | 0 0
  1. 1@spa,189,205,5 script Devil Square 406,{
  2.  
  3. // -- Name
  4. set .@ds_name$,"Devil Square";
  5.  
  6. if( BaseLevel < 90 ) {
  7. mes "[ Devil Square Guardian ]";
  8. mes "Only users between Levels ^ff000090 ~ 99^000000 can enter this Dungeon.";
  9. close;
  10. }
  11.  
  12. mes "[ Devil Square Guardian ]";
  13. mes "Welcome to the entrance door to ^FF0000" + .@ds_name$ + "^000000";
  14. next;
  15. switch( select("Reserve the " + .@ds_name$ + " and enter:Enter the Dungeon:Leave") ) {
  16. case 1:
  17. set .@party_id, getcharid(1);
  18. // -----------------------------
  19. if( .@party_id == 0 )
  20. {
  21. mes "[ Devil Square Guardian ]";
  22. mes "You need to be in a group.";
  23. close;
  24. }
  25.  
  26. if( getpartyleader(.@party_id,2) != getcharid(0) )
  27. {
  28. mes "[ Devil Square Guardian ]";
  29. mes "Only the party leader can register for " + .@ds_name$ + ".";
  30. close;
  31. }
  32.  
  33. if( DSquare_Timer >= gettimetick(2) )
  34. {
  35. mes "[ Devil Square Guardian ]";
  36. mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000";
  37. //close;
  38. }
  39.  
  40. if( Zeny < 100000 )
  41. {
  42. mes "[ Devil Square Guardian ]";
  43. mes "...I'm sorry, not enough zeny.";
  44. close;
  45. }
  46.  
  47. set .ds_instance, instance_create(.@ds_name$, .@party_id);
  48. if( .ds_instance == -1 )
  49. {
  50. mes "[ Devil Square Guardian ]";
  51. mes "Your group is already registered on a Memorial Dungeon.";
  52. close;
  53. }
  54. else if( .ds_instance < 0 )
  55. {
  56. mes "[ Devil Square Guardian ]";
  57. mes "Instance creation failed: " + .ds_instance;
  58. mes "Please report this to a Game Master.";
  59. close;
  60. }
  61. if( instance_attachmap( "ordeal_1-1",.ds_instance ) == "" ){
  62. npctalk "Devil Square reservation failed.";
  63. mes "- ^FF0000Reservation Failed!^000000";
  64. instance_destroy( .ds_instance );
  65. close;
  66. }
  67.  
  68. instance_attach( .ds_instance );
  69.  
  70. set 'dsparty_id, getcharid(1);
  71. set 'dsnext_open, gettimetick(2) + 7200; // Next allowed open time for players
  72. deletearray 'dsMembers[0],127;
  73.  
  74. set DSquare_Timer, 'dsnext_open;
  75. set 'dsMembers[0], getcharid(0); // Stores First Char ID
  76. set 'dsNext_i, 1;
  77. set Zeny, Zeny - 100000;
  78.  
  79. instance_init( .ds_instance );
  80. //warp
  81. warp instance_mapname("ordeal_1-1"),245,245;
  82. close;
  83.  
  84. case 2:
  85. if( has_instance("ordeal_1-1") == "" ) {
  86. mes "[ Devil Square Guardian ]";
  87. mes "Instance Dungeon " + .@ds_name$ + " does not exist.";
  88. mes "You are not registered for DS.";
  89. close;
  90. }
  91.  
  92. instance_attach(.ds_instance);
  93.  
  94. for( set .@i, 0; .@i < 'dsNext_i; set .@i, .@i + 1 )
  95. {
  96. if( getcharid(0) == 'dsMembers[.@i] )
  97. break;
  98. }
  99.  
  100. if( .@i == 'dsNext_i )
  101. {
  102. if( DSquare_Timer >= gettimetick(2) )
  103. {
  104. // User joined the party but has Devil Square Delay
  105. mes "[ Devil Square Guardian ]";
  106. mes "You cannot enter " + .@ds_name$ + " again until ^0000FF" + callfunc("Time2Str",DSquare_Timer) + "^000000";
  107. close;
  108. }
  109. else if( 'dsNext_i == 127 )
  110. {
  111. // This party has invited lots of users to join Devil Square
  112. mes "[ Devil Square Guardian ]";
  113. mes "No more users can enter " + .@ds_name$ + " registered with this party.";
  114. close;
  115. }
  116. else
  117. {
  118. // Add this new user to the member list
  119. set DSquare_Timer, 'next_open;
  120. set 'dsMembers['dsNext_i], getcharid(0);
  121. set 'dsNext_i, 'dsNext_i + 1;
  122. }
  123. }
  124. warp instance_mapname("ordeal_1-1"),245,245;
  125. end;
  126.  
  127. case 3:
  128. close;
  129. }
  130. }
  131.  
  132. function script Time2Str {
  133. set .@Time_Left, getarg(0) - gettimetick(2);
  134.  
  135. set .@Days, .@Time_Left / 86400;
  136. set .@Time_Left, .@Time_Left - (.@Days * 86400);
  137. set .@Hours, .@Time_Left / 3600;
  138. set .@Time_Left, .@Time_Left - (.@Hours * 3600);
  139. set .@Minutes, .@Time_Left / 60;
  140. set .@Time_Left, .@Time_Left - (.@Minutes * 60);
  141.  
  142. set .@Time$, "";
  143. if( .@Days > 1 )
  144. set .@Time$, .@Time$ + .@Days + " days, ";
  145. else if( .@Days > 0 )
  146. set .@Time$, .@Time$ + .@Days + " day, ";
  147.  
  148. if( .@Hours > 1 )
  149. set .@Time$, .@Time$ + .@Hours + " hours, ";
  150. else if( .@Hours > 0 )
  151. set .@Time$, .@Time$ + .@Hours + " hour, ";
  152.  
  153. if( .@Minutes > 1 )
  154. set .@Time$, .@Time$ + .@Minutes + " minutes, ";
  155. else if( .@Minutes > 0 )
  156. set .@Time$, .@Time$ + .@Minutes + " minute, ";
  157.  
  158. if( .@Time_Left > 1 || .@Time_Left == 0 )
  159. set .@Time$, .@Time$ + .@Time_Left + " seconds.";
  160. else if( .@Time_Left == 1 )
  161. set .@Time$, .@Time$ + .@Time_Left + " second.";
  162.  
  163. return .@Time$;
  164. }
  165.  
  166. ordeal_1-1,44,155,0 script HiddenNpc::HiddenNpc -1,{
  167. end;
  168.  
  169. OnDisable:
  170. killmonster instance_mapname("ordeal_1-1"),instance_npcname("HiddenNpc")+"::OnDevilDead";
  171. end;
  172.  
  173. OnInstanceInit:
  174. areamonster "ordeal_1-1",183,182,246,244,"[DS] ALICEL",1735,25,instance_npcname("HiddenNpc")+"::OnDevilDead";
  175. areamonster "ordeal_1-1",183,182,246,244,"[DS] ALIOT",1736,15,instance_npcname("HiddenNpc")+"::OnDevilDead";
  176. areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHDAM",1668,15,instance_npcname("HiddenNpc")+"::OnDevilDead";
  177. areamonster "ordeal_1-1",183,182,246,244,"[DS] CONSTANT",1745,20,instance_npcname("HiddenNpc")+"::OnDevilDead";
  178. areamonster "ordeal_1-1",183,182,246,244,"[DS] DARK PRIEST",1198,4,instance_npcname("HiddenNpc")+"::OnDevilDead";
  179. areamonster "ordeal_1-1",183,182,246,244,"[DS] ARCHANGELING",1388,1,instance_npcname("HiddenNpc")+"::OnDevilDead";
  180. end;
  181.  
  182. OnDevilDead:
  183. set .@mobnumber,80;
  184. set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead");
  185. set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
  186. if( .@mob_dead_number == 55 )
  187. instance_announce 0, "Devil Square : 25 mobs to enter the 2nd round..",bc_map,"0xffff00";
  188. if( .@mob_dead_number == 75 )
  189. instance_announce 0, "Devil Square : 5 mobs to enter 2nd round..",bc_map,"0xffff00";
  190. if( .@mob_dead_number == 80 )
  191. {
  192. instance_announce 0, "Devil Square : will enter to 2nd round!!!",bc_map,"0xffff00";
  193. callsub OnDevilRound_2;
  194. }
  195. end;
  196.  
  197. OnDevilRound_2:
  198. areamonster "ordeal_1-1",183,182,246,244,"[DS] DROSERA",1781,20,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  199. areamonster "ordeal_1-1",183,182,246,244,"[DS] NECROMANCER",1870,30,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  200. areamonster "ordeal_1-1",183,182,246,244,"[DS] RETRIBUTION",1702,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  201. areamonster "ordeal_1-1",183,182,246,244,"[DS] OBSERVATION",1700,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  202. areamonster "ordeal_1-1",183,182,246,244,"[DS] LADY SOLACE",1703,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  203. areamonster "ordeal_1-1",183,182,246,244,"[DS] SHELTER",1701,5,instance_npcname("HiddenNpc")+"::OnDevilDead_2";
  204. end;
  205.  
  206. OnDevilDead_2:
  207. set .@mobnumber,70;
  208. set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_2");
  209. set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
  210. if( .@mob_dead_number == 45 )
  211. instance_announce 0, "Devil Square : 25 mobs to enter the 3rd round..",bc_map,"0xffff00";
  212. if( .@mob_dead_number == 65 )
  213. instance_announce 0, "Devil Square : 5 mobs to enter the 3rd round..",bc_map,"0xffff00";
  214. if( .@mob_dead_number == 70 )
  215. {
  216. instance_announce 0, "Devil Square : will enter to 3rd round!!!",bc_map,"0xffff00";
  217. callsub OnDevilRound_3;
  218. }
  219. end;
  220.  
  221. OnDevilRound_3:
  222. areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1673,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  223. areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1672,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  224. areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1671,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  225. areamonster "ordeal_1-1",183,182,246,244,"[DS] DIMIK",1670,10,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  226. areamonster "ordeal_1-1",183,182,246,244,"[DS] HIGH PRIEST MAGARETA",1637,6,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  227. areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1921,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  228. areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1918,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  229. areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1920,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  230. areamonster "ordeal_1-1",183,182,246,244,"[DS] MORROC SHADOW",1919,3,instance_npcname("HiddenNpc")+"::OnDevilDead_3";
  231. end;
  232.  
  233. OnDevilDead_3:
  234. set .@mobnumber,58;
  235. set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_3");
  236. set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
  237. if( .@mob_dead_number == 33 )
  238. instance_announce 0, "Devil Square : 25 mobs to enter the 4th round..",bc_map,"0xffff00";
  239. if( .@mob_dead_number == 53 )
  240. instance_announce 0, "Devil Square : 5 mobs to enter the 4th round..",bc_map,"0xffff00";
  241. if( .@mob_dead_number == 58 )
  242. {
  243. instance_announce 0, "Devil Square : will enter to 4th round!!!!!!",bc_map,"0xffff00";
  244. donpcevent instance_npcname("dswarp-12")+"::OnEnable";
  245. callsub OnDevilRound_4;
  246. }
  247. end;
  248.  
  249. OnDevilRound_4:
  250. areamonster "ordeal_1-1",149,148,149,148,"[DS] Entweihen Crothen",1957,1,instance_npcname("HiddenNpc")+"::OnDevilDead_4";
  251. areamonster "ordeal_1-1",135,135,165,165,"[DS] Thorny Skeleton",1958,11,instance_npcname("HiddenNpc")+"::OnDevilDead_4";
  252. end;
  253.  
  254. OnDevilDead_4:
  255. set .@mobnumber,12;
  256. set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_4");
  257. set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
  258. if( .@mob_dead_number == 12 )
  259. {
  260. instance_announce 0, "Devil Square : CONGRATULATION - 10 Treasure Boxs will be yours now",bc_map,"0xffff00";
  261. donpcevent instance_npcname("dswarp-12")+"::OnInstanceInit";
  262. donpcevent instance_npcname("dswarp-11")+"::OnEnable";
  263. callsub OnDevilRound_5; // Treasure Spawn Round
  264. }
  265. end;
  266.  
  267. OnDevilRound_5:
  268. monster "ordeal_1-1",231,250,"Treasure Box",1324,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  269. monster "ordeal_1-1",234,247,"Treasure Box",1328,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  270. monster "ordeal_1-1",237,244,"Treasure Box",1332,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  271. monster "ordeal_1-1",240,241,"Treasure Box",1336,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  272. monster "ordeal_1-1",243,238,"Treasure Box",1340,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  273. monster "ordeal_1-1",246,235,"Treasure Box",1344,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  274. monster "ordeal_1-1",249,232,"Treasure Box",1348,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  275. monster "ordeal_1-1",252,229,"Treasure Box",1352,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  276. monster "ordeal_1-1",249,241,"Treasure Box",1356,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  277. monster "ordeal_1-1",240,249,"Treasure Box",1360,1,instance_npcname("HiddenNpc")+"::OnDevilDead_5";
  278. end;
  279.  
  280. OnDevilDead_5:
  281. set .@mobnumber,10;
  282. set .@mob_cnumber,mobcount("ordeal_1-1",instance_npcname("HiddenNpc")+"::OnDevilDead_5");
  283. set .@mob_dead_number,.@mobnumber - .@mob_cnumber;
  284. instance_announce 0, "Devil Square : "+ strcharinfo(0) +" has opened the treasure box at Devil Square",bc_map,"0xffff00";
  285. if( .@mob_dead_number == 10 )
  286. {
  287. donpcevent instance_npcname("HiddenNpc")+"::OnDestroyInstance";
  288. getpartymember getcharid(1),2;
  289. copyarray .@partymemberaid, $@partymemberaid, $@partymembercount;
  290. detachrid;
  291. for ( set .@i, 0; .@i < $@partymembercount; set .@i, .@i +1 ) {
  292. if (attachrid(.@partymemberaid[.@i]))
  293. callfunc("AddPoints", getcharid(3), 5);
  294. detachrid;
  295. }
  296. }
  297. end;
  298.  
  299. OnDestroyInstance:
  300. initnpctimer;
  301. end;
  302.  
  303. OnTimer500:
  304. instance_announce 0, "Devil Square will be closed in few seconds..", bc_map, 0xCCFF00;
  305. end;
  306.  
  307. OnTimer19000:
  308. instance_warpall "prontera", 100,100;
  309. end;
  310.  
  311. OnTimer22500:
  312. stopnpctimer;
  313. instance_destroy(instance_id());
  314. end;
  315.  
  316. }
  317.  
  318. // -- Warp
  319. ordeal_1-1,168,168,0 script #dswarp-11::dswarp-11 45,0,0,{
  320.  
  321. OnInstanceInit:
  322. disablenpc instance_npcname("dswarp-11");
  323. end;
  324.  
  325. OnEnable:
  326. enablenpc instance_npcname("dswarp-11");
  327. end;
  328.  
  329. OnTouch:
  330. warp "ordeal_1-1",189,189;
  331. end;
  332. }
  333.  
  334. ordeal_1-1,184,184,0 script #dswarp-12::dswarp-12 45,0,0,{
  335.  
  336. OnInstanceInit:
  337. disablenpc instance_npcname("dswarp-12");
  338. end;
  339.  
  340. OnEnable:
  341. enablenpc instance_npcname("dswarp-12");
  342. end;
  343.  
  344. OnTouch:
  345. mes "[ Devil Square Guardian ]";
  346. mes "Are you ready..?";
  347. if( select("Ready, GO!!!", "Nope") != 1 ) close;
  348. close2;
  349. warp "ordeal_1-1",163,163;
  350. end;
  351. }
  352.  
  353. // -- Mapflags
  354. ordeal_1-1 mapflag nowarp
  355. ordeal_1-1 mapflag nowarpto
  356. ordeal_1-1 mapflag noteleport
  357. ordeal_1-1 mapflag nosave SavePoint
  358. ordeal_1-1 mapflag nomemo
  359. ordeal_1-1 mapflag nobranch
  360. ordeal_1-1 mapflag nopenalty
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement