IsleOfBios.txt 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  1. //===== rAthena Script =======================================
  2. //= Isle Of Bios
  3. //===== Description: =========================================
  4. //= [Walkthrough Conversion]
  5. //= Isle Of Bios Instance
  6. //===== Changelogs: ==========================================
  7. //= 1.0 First version. [Capuche]
  8. //============================================================
  9. moro_cav,50,64,5 script Yellow Seed#bios CLEAR_NPC,{
  10. if (BaseLevel < 160) {
  11. mes "^ff0000Characters below Level 160 cannot enter this dungeon.^000000";
  12. close;
  13. }
  14. if (isbegin_quest(15006) == 0) {
  15. mes "^ff0000You first must meet Wandering Old Man to gain access to this dungeon.^000000";
  16. close;
  17. }
  18. .@party_id = getcharid(1);
  19. if (.@party_id < 1) {
  20. mes "^ff0000You first must form/join a party of at least 1 person to enter this dungeon.^000000";
  21. close;
  22. }
  23. switch( checkquest(15005,PLAYTIME) ) {
  24. case -1:
  25. break;
  26. case 0:
  27. case 1:
  28. if (checkquest(15007,PLAYTIME) == 2) {// 5 mins to re-enter
  29. mes "^ff0000This Memorial Dungeon cannot be accessed for 23 hours after your last visit.^000000";
  30. close;
  31. }
  32. switch( checkquest(15008,PLAYTIME) ) {
  33. case -1:
  34. break;
  35. case 0:
  36. case 1:
  37. mes "^0000ffThis Memorial Dungeon cannot be accessed for 23 hours after your last visit.^000000";
  38. close;
  39. case 2:
  40. break;
  41. }
  42. break;
  43. case 2:
  44. erasequest 15005;// Memorial Dungeon: Isle of Bios
  45. erasequest 15007;// Memorial Dungeon: Isle of Bios
  46. if (isbegin_quest(15008) > 0)
  47. erasequest 15008;// Memorial Dungeon: Isle of Bios
  48. break;
  49. }
  50. if (is_party_leader() == true)
  51. .@create$ = "Create Memorial dungeon.";
  52. switch( select( .@create$, "Enter Isle of Bios.", "Cancel." ) ) {
  53. case 1:
  54. instance_create("Isle of Bios");
  55. mes "^ff0000Created the Memorial dungeon.^000000";
  56. mes "^ff0000Please click and press Enter again.^000000";
  57. close;
  58. case 2:
  59. switch( instance_enter("Isle of Bios") ) {
  60. case IE_NOMEMBER:
  61. case IE_NOINSTANCE:
  62. case IE_OTHER:
  63. if (is_party_leader(.@party_id) == false) {
  64. mes "^ff0000Please note that This Memorial Dungeon cannot be accessed for 23 hours after your last visit.^000000";
  65. next;
  66. }
  67. mes "^ff0000Your party leader has not yet created a Crack of Time.^000000";
  68. close;
  69. case IE_OK:
  70. mapannounce "moro_cav", "" + strcharinfo(0) + " of the party, " + getpartyname( getcharid(1) ) + ", is entering Isle of Bios.",bc_map,"0x00FF99";
  71. if (isbegin_quest(15005) == 0) {
  72. setquest 15005;// Memorial Dungeon: Isle of Bios
  73. setquest 15007;// Memorial Dungeon: Isle of Bios
  74. }
  75. end;
  76. }
  77. case 3:
  78. end;
  79. }
  80. end;
  81. OnInit:
  82. while(true) {
  83. sleep 500;
  84. specialeffect EF_ENHANCE;
  85. }
  86. end;
  87. }
  88. moro_cav,45,60,5 script Wandering Old Man#sara 4_M_EINOLD,{
  89. if (BaseLevel < 160) {
  90. mes "[Wandering Old Man]";
  91. mes "...";
  92. mes "I'm afraid you're not up for this yet.";
  93. mes "You have to be at least Level 160.";
  94. close;
  95. }
  96. if (isbegin_quest(15006) == 0) {
  97. mes "[Wandering Old Man]";
  98. mes "...Where am I?";
  99. next;
  100. mes "[Wandering Old Man]";
  101. mes "I don't know when it began...";
  102. mes "The same nightmare has been plaguing me for a long time.";
  103. next;
  104. mes "[Wandering Old Man]";
  105. mes "In my nightmare, Demon King Morocc awakens from his century-long slumber and fills the world with darkness and horror.";
  106. next;
  107. mes "[Wandering Old Man]";
  108. mes "I couldn't shake off the vivid images I saw in that nightmare. I've wandered off and around like a madman and finally arrived here.";
  109. next;
  110. mes "[Wandering Old Man]";
  111. mes "I saw this place in my dream. It's where Demon God Morocc awakens from his slumber. My dream was showing me a possible future.";
  112. next;
  113. mes "[Wandering Old Man]";
  114. mes "If my dream really is a premonition, the forces of Demon God Morocc's are within that yellow seed.";
  115. next;
  116. mes "[Wandering Old Man]";
  117. mes "I tried to enter the seed, but to no avail: I'm just too old and weak. But perhaps you can.";
  118. next;
  119. mes "[Wandering Old Man]";
  120. mes "Please investigate that yellow seed.";
  121. mes "It's too dangerous for you to go alone. You should take at least one comrade with you.";
  122. setquest 15006;// Isle of Bios Exploration
  123. completequest 15006;// Isle of Bios Exploration
  124. close;
  125. }
  126. mes "[Wandering Old Man]";
  127. mes "Please investigate that yellow seed.";
  128. mes "It's too dangerous for you to go alone. You should take at least one comrade with you.";
  129. close;
  130. }
  131. // warps
  132. 1@dth1,291,102,0 warp2 warp1#bios1 2,2,1@dth2,17,93
  133. 1@dth2,291,102,0 warp2 warp1#bios2 2,2,1@dth3,45,68
  134. // zone 1
  135. 1@dth1,74,94,3 script Grim Reaper Ankou#bios1 3029,{ end; }
  136. 1@dth1,71,97,3 duplicate(Grim Reaper Ankou#bios1) Zeith#bios1 4_M_GUILLOTINE
  137. 1@dth1,67,97,5 duplicate(Grim Reaper Ankou#bios1) Vrid#bios1 4_M_KNIGHT_BLACK
  138. // 1@dth1,67,97,5 script Vrid#bios1 4_M_KNIGHT_BLACK,5,7,{// official
  139. // 1@dth1,67,97,5 script start1#bios1 HIDDEN_WARP_NPC,{// official
  140. 1@dth1,67,97,5 script start1#bios1 HIDDEN_WARP_NPC,5,7,{
  141. end;
  142. OnTouch_:
  143. disablenpc instance_npcname("start1#bios1");
  144. 'zeith$ = instance_npcname("Zeith#bios1");
  145. 'vrid$ = instance_npcname("Vrid#bios1");
  146. 'reaper$ = instance_npcname("Grim Reaper Ankou#bios1");
  147. initnpctimer;
  148. npctalk "Vrid: Ah, someone else has come to join us.", 'vrid$;
  149. end;
  150. OnTimer2500:
  151. npctalk "Vrid: Did you also come to stop Morocc's resurrection?", 'vrid$;
  152. end;
  153. OnTimer5000:
  154. npctalk "Vrid: I'm Vrid and this is Zeith, from Prontera. We've been traveling around the world, fighting for justice.", 'vrid$;
  155. end;
  156. OnTimer7500:
  157. npctalk "Vrid: Hey, Zeith. Say something.", 'vrid$;
  158. end;
  159. OnTimer10000:
  160. npctalk "Zeith: ...", 'zeith$;
  161. end;
  162. OnTimer12500:
  163. npctalk "Zeith: I'm Zeith.", 'zeith$;
  164. end;
  165. OnTimer15000:
  166. npctalk "Zeith: ...", 'zeith$;
  167. end;
  168. OnTimer17500:
  169. npctalk "Vrid: Don't mind him. He's not so quiet when there are only two of us.", 'vrid$;
  170. end;
  171. OnTimer19500:
  172. npctalk "Zeith: ...You talk enough for both of us.", 'zeith$;
  173. end;
  174. OnTimer21000:
  175. npctalk "Vrid: We only came because the old geezer down below kept rambling about Morocc's resurrection.", 'vrid$;
  176. end;
  177. OnTimer23500:
  178. npctalk "Vrid: Err, what's this place? I just touched the seed, and suddenly the scenery changed.", 'vrid$;
  179. end;
  180. OnTimer26000:
  181. npctalk "Vrid: Holy cow, are we flying in the sky?!", 'vrid$;
  182. end;
  183. OnTimer28500:
  184. npctalk "???: *Chuckle* Do you want to know where you are?", 'reaper$;
  185. end;
  186. OnTimer31000:
  187. npctalk "Zeith: Who's there?!", 'zeith$;
  188. end;
  189. OnTimer33500:
  190. enablenpc 'reaper$;
  191. npctalk "Grim Reaper Ankou: *Chuckle* This is the Isle of Bios, a place I conjured up in my mind.", 'reaper$;
  192. end;
  193. OnTimer36000:
  194. npctalk "Grim Reaper Ankou: You've walked into the trap, making yourself willing sacrifices for my Lord Morocc. Aren't you afraid of dying?", 'reaper$;
  195. end;
  196. OnTimer38500:
  197. npctalk "Vrid: Pah! If I was I wouldn't have come willingly, would I?", 'vrid$;
  198. end;
  199. OnTimer41000:
  200. npctalk "Vrid: Whoever you are, we'll kill you before you do!", 'vrid$;
  201. end;
  202. OnTimer43500:
  203. npctalk "Grim Reaper Ankou: Don't tempt me, human.", 'reaper$;
  204. end;
  205. OnTimer46000:
  206. npctalk "Grim Reaper Ankou: I want to watch you die slowly and painfully. *Chuckle*", 'reaper$;
  207. end;
  208. OnTimer48500:
  209. disablenpc 'reaper$;
  210. end;
  211. OnTimer51000:
  212. npctalk "Vrid: Who's he? Is he trying to resurrect Morocc? ", 'vrid$;
  213. end;
  214. OnTimer53500:
  215. npctalk "Vrid: Let's chase him! Zeith, hurry!", 'vrid$;
  216. end;
  217. OnTimer54000:
  218. disablenpc 'vrid$;
  219. end;
  220. OnTimer56000:
  221. npctalk "Zeith: ...Ack.", 'zeith$;
  222. end;
  223. OnTimer58500:
  224. npctalk "Zeith: I hate running.", 'zeith$;
  225. end;
  226. OnTimer61000:
  227. disablenpc 'zeith$;
  228. end;
  229. OnTimer66000:
  230. stopnpctimer;
  231. mapannounce 'map_dth1$, "System: Eliminate all the enemies on the island and exit through the door on the other side to move on to the next area.",bc_map,"0xFFFF00";
  232. 'zeith$ = 'vrid$ = 'reaper$ = "";
  233. end;
  234. }
  235. 1@dth1,1,1,0 script mobs#bios1 HIDDEN_WARP_NPC,{
  236. end;
  237. OnStart:
  238. .@label$ = instance_npcname("mobs#bios1") + "::OnMyMobDead";
  239. for ( .@mob_id = 3010; .@mob_id < 3013; .@mob_id++ ) {
  240. switch(.@mob_id) {
  241. case 3010: // Corrupt Orc Baby
  242. setarray .@coord[0],
  243. 90,94, 153,76, 121,53, 135,50, 145,107, 132,126, 101,125, 119,144, 124,164, 192,145, 194,116,
  244. 203,131, 214,142, 196,156, 217,129, 227,150, 215,109, 240,130, 252,105, 249,144, 249,155, 232,87,
  245. 316,103, 245,71, 246,71, 210,62, 214,53, 211,88;
  246. break;
  247. case 3011: // Corrupt Baby Desert Wolf
  248. setarray .@coord[0],
  249. 90,94, 121,69, 153,76, 166,80, 131,101, 145,107, 108,156, 141,143, 165,130, 203,151,
  250. 203,162, 219,151, 203,162, 206,169, 219,171, 227,150, 238,117, 240,140, 274,104, 306,103,
  251. 237,80, 224,62, 233,57;
  252. break;
  253. case 3012: // Corrupt Familiar
  254. setarray .@coord[0],
  255. 143,49, 156,46, 170,67, 170,67, 131,101, 144,125, 101,125, 108,156, 135,152, 144,164,
  256. 184,130, 204,112, 227,150, 205,98, 225,103, 228,124, 243,106, 225,89, 297,103, 223,72,
  257. 232,69, 225,54, 211,73;
  258. break;
  259. }
  260. .@size = getarraysize(.@coord);
  261. for ( .@i = 0; .@i < .@size; .@i += 2 )
  262. monster 'map_dth1$, .@coord[.@i], .@coord[.@i+1], "--ja--", .@mob_id,1, .@label$;
  263. }
  264. end;
  265. OnMyMobDead:
  266. .@count = mobcount( 'map_dth1$,instance_npcname("mobs#bios1") + "::OnMyMobDead" );
  267. if (.@count == 10 || .@count == 5)
  268. mapannounce 'map_dth1$, "System: " + .@count + " monsters remain on the island.",bc_map,"0xFFFF00";
  269. else if (.@count == 1)
  270. mapannounce 'map_dth1$, "System: 1 last monster remains on the island.",bc_map,"0xFFFF00";
  271. else if (.@count == 0) {
  272. mapannounce 'map_dth1$, "System: You have eliminated all the monsters. Use the exit at 3 o'clock to move on to the next area.",bc_map,"0xFFFF00";
  273. disablenpc instance_npcname("mobs#bios1");
  274. enablenpc instance_npcname("warp1#bios1");
  275. enablenpc instance_npcname("start1#bios2");
  276. donpcevent instance_npcname("mobs#bios2") + "::OnStart"; // spawn at entrance
  277. }
  278. end;
  279. }
  280. // zone 2
  281. 1@dth2,67,97,0 script start1#bios2 HIDDEN_WARP_NPC,5,5,{
  282. end;
  283. OnTouch_:
  284. disablenpc instance_npcname("start1#bios2");
  285. mapannounce 'map_dth2$, "System: Eliminate all the enemies on the island and exit through the door on the other side to move on to the next area.",bc_map,"0xFFFF00";
  286. end;
  287. }
  288. 1@dth2,1,1,0 script mobs#bios2 HIDDEN_WARP_NPC,{
  289. end;
  290. OnStart:
  291. enablenpc instance_npcname("mobs#bios2");
  292. .@label$ = instance_npcname("mobs#bios2") + "::OnMyMobDead";
  293. for ( .@mob_id = 3013; .@mob_id < 3016; ++.@mob_id ) {
  294. switch(.@mob_id) {
  295. case 3013: // Corrupt Orc Warrior
  296. setarray .@coord[0],
  297. 90,94, 153,76, 116,66, 133,47, 145,107, 137,134, 101,125, 119,144, 124,164, 194,116,
  298. 203,131, 211,88, 215,109, 214,142, 192,145, 196,156, 217,129, 227,150, 230,89, 210,62,
  299. 214,53, 246,71, 248,81, 252,105, 246,126, 249,144, 249,155, 316,103;
  300. break;
  301. case 3014: // Corrupt Desert Wolf
  302. setarray .@coord[0],
  303. 90,94, 121,69, 153,76, 165,84, 145,107, 131,101, 108,156, 138,140, 165,130, 203,151,
  304. 203,162, 219,151, 206,169, 203,162, 227,150, 222,164, 238,117, 237,80, 224,62, 233,57,
  305. 236,138, 274,104, 306,103;
  306. break;
  307. case 3015: // Corrupt Phen
  308. setarray .@coord[0],
  309. 142,54, 156,46, 170,67, 170,67, 131,101, 101,125, 108,156, 135,152, 144,164, 135,131,
  310. 184,130, 204,112, 205,98, 225,103, 225,89, 227,150, 232,69, 223,72, 212,75, 225,54,
  311. 247,110, 232,126, 297,103;
  312. break;
  313. }
  314. .@size = getarraysize(.@coord);
  315. for ( .@i = 0; .@i < .@size; .@i += 2 )
  316. monster 'map_dth2$, .@coord[.@i], .@coord[.@i+1], "--ja--", .@mob_id,1, .@label$;
  317. }
  318. end;
  319. OnMyMobDead:
  320. .@count = mobcount( 'map_dth2$,instance_npcname("mobs#bios2") + "::OnMyMobDead" );
  321. if (.@count == 10 || .@count == 5)
  322. mapannounce 'map_dth2$, "System: " + .@count + " monsters remain on the island.",bc_map,"0xFFFF00";
  323. else if (.@count == 1)
  324. mapannounce 'map_dth2$, "System: 1 last monster remains on the island.",bc_map,"0xFFFF00";
  325. else if (.@count == 0) {
  326. mapannounce 'map_dth2$, "System: You have eliminated all the monsters. Use the exit at 3 o'clock to move on to the next area.",bc_map,"0xFFFF00";
  327. disablenpc instance_npcname("mobs#bios2");
  328. enablenpc instance_npcname("warp1#bios2");
  329. enablenpc instance_npcname("Zeith#bios3");
  330. enablenpc instance_npcname("Vrid#bios3");
  331. enablenpc instance_npcname("event_boss#bios3");
  332. }
  333. end;
  334. }
  335. // zone 3
  336. // 1@dth3,64,74,5 script Vrid#bios3 4_M_KNIGHT_BLACK,5,7,{// official
  337. 1@dth3,64,74,5 script Vrid#bios3 4_M_KNIGHT_BLACK,{
  338. if ('reward == 1) {
  339. mes "[Vrid]";
  340. mes "I came by";
  341. mes "this Hero Token by accident.";
  342. mes "I want to give it to you. You deserve it.";
  343. next;
  344. mes "[Vrid]";
  345. mes "Let's get out of this creepy place!";
  346. close2;
  347. getitem 6684,1;// Token Of Hero
  348. if (ep14_3_isle == 0)
  349. ep14_3_isle = 1;
  350. if (checkquest(15007,PLAYTIME) == 0 || checkquest(15007,PLAYTIME) == 1)
  351. setquest 15008;// Memorial Dungeon: Isle of Bios
  352. warp "moro_cav",45,63;
  353. }
  354. end;
  355. }
  356. 1@dth3,64,74,5 script event_boss#bios3 HIDDEN_WARP_NPC,5,7,{
  357. end;
  358. OnTouch_:
  359. disablenpc instance_npcname("event_boss#bios3");
  360. 'party_id = getcharid(1);
  361. donpcevent instance_npcname("freeze#bios3") + "::OnStart";
  362. end;
  363. }
  364. // 1@dth3,69,67,0 script freeze#bios3 HIDDEN_WARP_NPC,30,30,{// official
  365. 1@dth3,1,1,0 script freeze#bios3 HIDDEN_WARP_NPC,{
  366. end;
  367. OnStart:
  368. enablenpc instance_npcname("freeze#bios3");
  369. 'reaper3$ = instance_npcname("Grim Reaper Ankou#bios3");
  370. 'zeith3$ = instance_npcname("Zeith#bios3");
  371. 'vrid3$ = instance_npcname("Vrid#bios3");
  372. initnpctimer;
  373. npctalk "Vrid: You're lucky to be here. I got totally lost the moment I entered that maze.", 'vrid3$;
  374. end;
  375. OnTimer2500:
  376. npctalk "Vrid: If it weren't for Zeith, I'd still be in there, wandering. Thanks, Zeith.", 'vrid3$;
  377. end;
  378. OnTimer5000:
  379. npctalk "Zeith: ...Something's been bothering me.", 'zeith3$;
  380. end;
  381. OnTimer7500:
  382. npctalk "Vrid: What's up?", 'vrid3$;
  383. end;
  384. OnTimer10000:
  385. npctalk "Zeith: I've got the feeling that the monsters were growing stronger with time.", 'zeith3$;
  386. end;
  387. OnTimer12500:
  388. npctalk "Zeith: Just like children growing up into adults.", 'zeith3$;
  389. end;
  390. OnTimer15000:
  391. npctalk "Vrid: Um, I think you're right.", 'vrid3$;
  392. end;
  393. OnTimer17500:
  394. npctalk "Vrid: They're all small in the beginning, and then we faced bigger and stronger ones over time.", 'vrid3$;
  395. end;
  396. OnTimer20000:
  397. npctalk "Vrid: To me, that sounds natural. What are you worried about?", 'vrid3$;
  398. end;
  399. OnTimer22500:
  400. npctalk "Zeith: Well, I'm curious about the monster we'll face now.", 'zeith3$;
  401. end;
  402. OnTimer25000:
  403. npctalk "Zeith: Whether they're stronger versions of their original selves, or something completely different.", 'zeith3$;
  404. end;
  405. OnTimer27000:
  406. enablenpc 'reaper3$;
  407. end;
  408. OnTimer27500:
  409. npctalk "Grim Reaper Ankou: *Chuckle* At least one of you has a good head on his shoulders.", 'reaper3$;
  410. end;
  411. OnTimer30000:
  412. npctalk "Vrid: You again?", 'vrid3$;
  413. end;
  414. OnTimer32500:
  415. npctalk "Grim Reaper Ankou: Are you curious about your next adversaries?", 'reaper3$;
  416. end;
  417. OnTimer35000:
  418. npctalk "Grim Reaper Ankou: Ahead of you is an army of the immortal.", 'reaper3$;
  419. end;
  420. OnTimer37500:
  421. npctalk "Grim Reaper Ankou: *Chuckle* Come out, my soldiers!", 'reaper3$;
  422. end;
  423. OnTimer37700:
  424. specialeffect EF_READYPORTAL,AREA,'reaper3$;
  425. end;
  426. OnTimer40000:
  427. for ( .@i = 1; .@i <= 3; ++.@i ) {
  428. for ( .@j = 1; .@j <= 8; ++.@j )
  429. enablenpc instance_npcname( "Corrupt Orc Zombie#" + .@j + "bio" + .@i );
  430. }
  431. end;
  432. OnTimer42000:
  433. npctalk "Vrid: Shut up, you fiend! We don't have time for your lackeys!", 'vrid3$;
  434. end;
  435. OnTimer45000:
  436. npctalk "Vrid: I'll get rid of you myself!", 'vrid3$;
  437. end;
  438. OnTimer47500:
  439. npctalk "Grim Reaper Ankou: Right back at you, bigmouth.", 'reaper3$;
  440. end;
  441. OnTimer50000:
  442. npctalk "Grim Reaper Ankou: I'll teach you how terrifying it is to be helpless in the face of horror!", 'reaper3$;
  443. end;
  444. OnTimer52500:
  445. specialeffect EF_STORMGUST,AREA,'reaper3$;
  446. end;
  447. OnTimer52700:
  448. specialeffect EF_FREEZED,AREA,'zeith3$;
  449. specialeffect EF_FREEZED,AREA,'vrid3$;
  450. specialeffect EF_FIREHIT,AREA,'zeith3$;
  451. specialeffect EF_FIREHIT,AREA,'vrid3$;
  452. setnpcdisplay( 'vrid3$, 4_M_FROZEN_KN );
  453. setnpcdisplay( 'zeith3$, 4_M_FROZEN_GC );
  454. getpartymember 'party_id, 0, .@player_name$;
  455. getpartymember 'party_id, 1, .@char_id;
  456. getpartymember 'party_id, 2, .@account_id;
  457. for ( .@i = 0; .@i < $@partymembercount; .@i++ ) {
  458. if (isloggedin(.@account_id[.@i],.@char_id[.@i]) == true) {
  459. getmapxy .@map$,.@x,.@y, BL_PC, .@player_name$[.@i];
  460. if (.@map$ == 'map_dth3$ && distance(.@x,.@y,69,67) < 30)
  461. sc_start SC_FREEZE,17500,0,10000, (SCSTART_NOAVOID|SCSTART_NOTICKDEF|SCSTART_NORATEDEF), .@account_id[.@i];
  462. }
  463. }
  464. end;
  465. OnTimer55000:
  466. npctalk "Vrid: Ugh! W-what's going on?! I-I can't move!", 'vrid3$;
  467. end;
  468. OnTimer57500:
  469. npctalk "Zeith: N-neither can I! I can't move my feet!", 'zeith3$;
  470. end;
  471. OnTimer60000:
  472. npctalk "Grim Reaper Ankou: On the Isle of Bios, each day is a lifetime.", 'reaper3$;
  473. end;
  474. OnTimer62500:
  475. npctalk "Grim Reaper Ankou: You must have noticed my soldiers have grown up before the sunset.", 'reaper3$;
  476. end;
  477. OnTimer65000:
  478. npctalk "Grim Reaper Ankou: After nightfall, they've reached the final stage of their development: life beyond death.", 'reaper3$;
  479. end;
  480. OnTimer67500:
  481. npctalk "Grim Reaper Ankou: That's right. It's time for you to experience death.", 'reaper3$;
  482. end;
  483. OnTimer70000:
  484. npctalk "Grim Reaper Ankou: Get ready to feel the fear of death! *Chuckle*", 'reaper3$;
  485. // note: unfreeze player
  486. end;
  487. OnTimer72000:
  488. disablenpc 'reaper3$;
  489. end;
  490. OnTimer72500:
  491. npctalk "Vrid: Damn it, the undead are coming, but I can't fight because I can't move my feet!", 'vrid3$;
  492. end;
  493. OnTimer75000:
  494. npctalk "Vrid: Ack, I don't want to die!", 'vrid3$;
  495. end;
  496. OnTimer77500:
  497. npctalk "Zeith: ...Ugh...", 'zeith3$;
  498. end;
  499. OnTimer80000:
  500. stopnpctimer;
  501. for ( .@i = 1; .@i <= 3; ++.@i ) {
  502. for ( .@j = 1; .@j <= 8; ++.@j )
  503. disablenpc instance_npcname( "Corrupt Orc Zombie#" + .@j + "bio" + .@i );
  504. }
  505. .@label$ = instance_npcname("freeze#bios3") + "::OnMyMobDead";
  506. for ( .@y = 80; .@y <= 92; .@y += 6 )
  507. for ( .@x = 62; .@x <= 78; .@x += 2 )
  508. monster 'map_dth3$,.@x,.@y,"Corrupt Orc Zombie",3016,1, .@label$;// EP14_3_DEATH_C_MOB1
  509. end;
  510. OnMyMobDead:
  511. if (mobcount( 'map_dth3$,instance_npcname("freeze#bios3") + "::OnMyMobDead" ) == 0) {
  512. disablenpc instance_npcname("freeze#bios3");
  513. donpcevent instance_npcname("verit#bios3") + "::OnStart";
  514. }
  515. end;
  516. }
  517. 1@dth3,1,1,0 script verit#bios3 HIDDEN_WARP_NPC,{
  518. end;
  519. OnStart:
  520. enablenpc instance_npcname("verit#bios3");
  521. initnpctimer;
  522. npctalk "Vrid: Wow, you're amazing! Did you kill them all?", 'vrid3$;
  523. end;
  524. OnTimer2500:
  525. npctalk "Zeith: Not yet. More are coming!", 'zeith3$;
  526. end;
  527. OnTimer5000:
  528. stopnpctimer;
  529. .@label$ = instance_npcname("verit#bios3") + "::OnMyMobDead";
  530. for ( .@y = 80; .@y <= 92; .@y += 6 )
  531. for ( .@x = 62; .@x <= 78; .@x += 2 )
  532. monster 'map_dth3$,.@x,.@y,"Corrupt Verit",3017,1, .@label$;// EP14_3_DEATH_C_MOB2
  533. end;
  534. OnMyMobDead:
  535. if (mobcount( 'map_dth3$,instance_npcname("verit#bios3") + "::OnMyMobDead" ) == 0) {
  536. disablenpc instance_npcname("verit#bios3");
  537. donpcevent instance_npcname("megalodon#bios3") + "::OnStart";
  538. }
  539. end;
  540. }
  541. 1@dth3,1,1,0 script megalodon#bios3 HIDDEN_WARP_NPC,{
  542. end;
  543. OnStart:
  544. enablenpc instance_npcname("megalodon#bios3");
  545. initnpctimer;
  546. npctalk "Vrid: I hope that really was the last of them.", 'vrid3$;
  547. end;
  548. OnTimer2500:
  549. npctalk "Zeith: Nope, we aren't so lucky--more is on the way!", 'zeith3$;
  550. end;
  551. OnTimer5000:
  552. stopnpctimer;
  553. .@label$ = instance_npcname("megalodon#bios3") + "::OnMyMobDead";
  554. for ( .@y = 80; .@y <= 92; .@y += 6 )
  555. for ( .@x = 62; .@x <= 78; .@x += 2 )
  556. monster 'map_dth3$,.@x,.@y,"Corrupt Megalodon",3018,1, .@label$;// EP14_3_DEATH_C_MOB3
  557. end;
  558. OnMyMobDead:
  559. if (mobcount( 'map_dth3$,instance_npcname("megalodon#bios3") + "::OnMyMobDead" ) == 0) {
  560. disablenpc instance_npcname("megalodon#bios3");
  561. donpcevent instance_npcname("boss_prelude#bios3") + "::OnStart";
  562. }
  563. end;
  564. }
  565. 1@dth3,1,1,0 script boss_prelude#bios3 HIDDEN_WARP_NPC,{
  566. end;
  567. OnStart:
  568. enablenpc 'reaper3$;
  569. initnpctimer;
  570. end;
  571. OnTimer500:
  572. npctalk "Grim Reaper Ankou: I underestimated you, or my soldiers aren't as strong as I thought.", 'reaper3$;
  573. end;
  574. OnTimer3000:
  575. npctalk "Vrid: You're cheating! Release us and fight fairly!", 'vrid3$;
  576. end;
  577. OnTimer5500:
  578. npctalk "Grim Reaper Ankou: You're still talking. I'll just kill you myself and get it over with!", 'reaper3$;
  579. end;
  580. OnTimer7500:
  581. disablenpc 'reaper3$;
  582. end;
  583. OnTimer8000:
  584. stopnpctimer;
  585. donpcevent instance_npcname("boss#bios3") + "::OnStart";
  586. end;
  587. }
  588. 1@dth3,1,1,0 script boss#bios3 HIDDEN_WARP_NPC,{
  589. end;
  590. OnStart:
  591. enablenpc instance_npcname("boss#bios3");
  592. monster 'map_dth3$,70,67,"Grim Reaper Ankou",3029,1, instance_npcname("boss#bios3") + "::OnMyBossDead";
  593. 'boss_id = $@mobid[0];
  594. donpcevent instance_npcname("talk_friends#bios3") + "::OnStart";
  595. donpcevent instance_npcname("talk_boss#bios3") + "::OnStart";
  596. end;
  597. OnMyBossDead:
  598. 'boss_id = 0;
  599. donpcevent instance_npcname("talk_friends#bios3") + "::OnStop";
  600. donpcevent instance_npcname("talk_boss#bios3") + "::OnStop";
  601. enablenpc 'reaper3$;
  602. enablenpc 'zeith3$;
  603. enablenpc 'vrid3$;
  604. initnpctimer;
  605. end;
  606. OnTimer3000:
  607. npctalk "Grim Reaper Ankou: You're strong...", 'reaper3$;
  608. end;
  609. OnTimer6500:
  610. npctalk "Grim Reaper Ankou: But my goal has been accomplished... Don't think this is over.", 'reaper3$;
  611. end;
  612. OnTimer8000:
  613. npctalk "Grim Reaper Ankou: Soon Lord Morocc will return. *Chuckle* The fear of death will follow you wherever you go.", 'reaper3$;
  614. end;
  615. OnTimer10500:
  616. disablenpc 'reaper3$;
  617. specialeffect EF_ICECRASH,AREA,'vrid3$;
  618. specialeffect EF_ICECRASH,AREA,'zeith3$;
  619. setnpcdisplay( 'vrid3$, 4_M_KNIGHT_BLACK );
  620. setnpcdisplay( 'zeith3$, 4_M_GUILLOTINE );
  621. end;
  622. OnTimer13000:
  623. npctalk "Vrid: Ah, finally I can move!", 'vrid3$;
  624. end;
  625. OnTimer16500:
  626. npctalk "Zeith: Hmpf, I'm ashamed of myself for being so weak...", 'zeith3$;
  627. end;
  628. OnTimer18000:
  629. npctalk "Vrid: Whew, that reaper was much stronger than me and Zeith combined.", 'vrid3$;
  630. end;
  631. OnTimer20500:
  632. npctalk "Vrid: We could have died if it weren't for you.", 'vrid3$;
  633. end;
  634. OnTimer23000:
  635. stopnpctimer;
  636. npctalk "Vrid: I want to give you something for saving our lives. Talk to me again when you're ready to accept it.", 'vrid3$;
  637. 'reward = 1;
  638. disablenpc instance_npcname("boss#bios3");
  639. end;
  640. }
  641. 1@dth3,1,1,0 script talk_friends#bios3 HIDDEN_WARP_NPC,{
  642. end;
  643. OnStart:
  644. initnpctimer;
  645. end;
  646. OnTimer15000:
  647. .@r = rand(7);
  648. if (.@r == 0)
  649. npctalk "Zeith: Ugh... I feel so helpless...", 'zeith3$;
  650. else if (.@r == 1)
  651. npctalk "Zeith: That guy Ankou smells dangerous. You better move once he starts using a skill.", 'zeith3$;
  652. else if (.@r == 2)
  653. npctalk "Vrid: Ack, I'm sorry we can't help.", 'vrid3$;
  654. else if (.@r == 3)
  655. npctalk "Vrid: You cheater, fight fairly!", 'vrid3$;
  656. else if (.@r == 4)
  657. npctalk "Vrid: Damn it, I can't move...", 'vrid3$;
  658. initnpctimer;
  659. end;
  660. OnStop:
  661. stopnpctimer;
  662. end;
  663. }
  664. 1@dth3,1,1,0 script talk_boss#bios3 HIDDEN_WARP_NPC,{
  665. end;
  666. OnStart:
  667. initnpctimer;
  668. end;
  669. OnTimer13000:
  670. .@r = rand(6);
  671. if (.@r == 0)
  672. unittalk 'boss_id, "Grim Reaper Ankou: *Chuckle*";
  673. else if (.@r == 1)
  674. unittalk 'boss_id, "Grim Reaper Ankou: Feel the fear of death!";
  675. else if (.@r == 2)
  676. unittalk 'boss_id, "Grim Reaper Ankou: Lord Morocc will return soon.";
  677. else if (.@r == 3)
  678. unittalk 'boss_id, "Grim Reaper Ankou: Is this the best you can do? Such weak creatures, you humans.";
  679. initnpctimer;
  680. end;;
  681. OnStop:
  682. stopnpctimer;
  683. end;
  684. OnInstanceInit:
  685. 'reward = 'boss_id = 0;
  686. 'map_dth1$ = instance_mapname("1@dth1");
  687. 'map_dth2$ = instance_mapname("1@dth2");
  688. 'map_dth3$ = instance_mapname("1@dth3");
  689. // warps
  690. disablenpc instance_npcname("warp1#bios1");
  691. disablenpc instance_npcname("warp1#bios2");
  692. // zone 1
  693. disablenpc instance_npcname("Grim Reaper Ankou#bios1");
  694. donpcevent instance_npcname("mobs#bios1") + "::OnStart"; // spawn at entrance
  695. // zone 2
  696. disablenpc instance_npcname("start1#bios2");
  697. disablenpc instance_npcname("mobs#bios2");
  698. // zone 3
  699. disablenpc instance_npcname("event_boss#bios3");
  700. disablenpc instance_npcname("freeze#bios3");
  701. disablenpc instance_npcname("verit#bios3");
  702. disablenpc instance_npcname("megalodon#bios3");
  703. disablenpc instance_npcname("boss_prelude#bios3");
  704. disablenpc instance_npcname("boss#bios3");
  705. disablenpc instance_npcname("talk_friends#bios3");
  706. disablenpc instance_npcname("talk_boss#bios3");
  707. disablenpc instance_npcname("Vrid#bios3");
  708. disablenpc instance_npcname("Zeith#bios3");
  709. disablenpc instance_npcname("Grim Reaper Ankou#bios3");
  710. for ( .@i = 1; .@i <= 3; ++.@i ) {
  711. for ( .@j = 1; .@j <= 8; ++.@j )
  712. disablenpc instance_npcname( "Corrupt Orc Zombie#" + .@j + "bio" + .@i );
  713. }
  714. end;
  715. }
  716. 1@dth3,72,74,3 duplicate(Grim Reaper Ankou#bios1) Zeith#bios3 4_M_GUILLOTINE
  717. 1@dth3,70,67,3 duplicate(Grim Reaper Ankou#bios1) Grim Reaper Ankou#bios3 3029
  718. 1@dth3,62,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#1bio1 3016
  719. 1@dth3,64,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#2bio1 3016
  720. 1@dth3,66,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#3bio1 3016
  721. 1@dth3,68,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#4bio1 3016
  722. 1@dth3,72,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#5bio1 3016
  723. 1@dth3,74,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#6bio1 3016
  724. 1@dth3,76,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#7bio1 3016
  725. 1@dth3,78,80,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#8bio1 3016
  726. 1@dth3,62,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#1bio2 3016
  727. 1@dth3,64,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#2bio2 3016
  728. 1@dth3,66,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#3bio2 3016
  729. 1@dth3,68,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#4bio2 3016
  730. 1@dth3,72,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#5bio2 3016
  731. 1@dth3,74,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#6bio2 3016
  732. 1@dth3,76,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#7bio2 3016
  733. 1@dth3,78,86,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#8bio2 3016
  734. 1@dth3,62,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#1bio3 3016
  735. 1@dth3,64,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#2bio3 3016
  736. 1@dth3,66,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#3bio3 3016
  737. 1@dth3,68,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#4bio3 3016
  738. 1@dth3,72,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#5bio3 3016
  739. 1@dth3,74,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#6bio3 3016
  740. 1@dth3,76,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#7bio3 3016
  741. 1@dth3,78,92,3 duplicate(Grim Reaper Ankou#bios1) Corrupt Orc Zombie#8bio3 3016