MazeofOz.txt 20 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. //===== rAthena script =======================================
  2. //= Instance: The Maze of Oz.
  3. //===== Description: =========================================
  4. //- [Walkthrough conversion]
  5. //- Part of the episode 18.1 main quest.
  6. //===== Changelogs: ==========================================
  7. //= 1.0 First version. [Capuche]
  8. //============================================================
  9. // Main Quest: Step 28.
  10. ra_fild10,179,176,5 script Merchant#ep18_gorge 4_EP18_MERCHANT,{
  11. .@md_name$ = "The Maze of Oz";
  12. if (ep18_1_main == 29) {
  13. mes "[Miriam in disguise]";
  14. mes "From now on <FONT SIZE = 14><B>^e5555e" + .@md_name$ + "^000000</FONT></B>";
  15. mes "^e5555ePrepare yourself and talk to me again^000000";
  16. cutin "ep18_merchant.png",2;
  17. changequest 11717,11719;
  18. ep18_1_main = 30;
  19. close3;
  20. }
  21. if (ep18_1_main == 30) {
  22. mes "[Miriam in disguise]";
  23. mes "Then I'll start the ^e5555e" + .@md_name$ + "^000000";
  24. next;
  25. if (getcharid(1) == 0 || is_party_leader() == false) {
  26. mes "[Miriam in disguise]";
  27. mes "I think it would be a good idea to form a ^ff0000party before enter ^000000..";
  28. close;
  29. }
  30. switch( select( "Open the door", "Enter", "Stop" ) ) {
  31. case 1:
  32. if (instance_create(.@md_name$) < 0) {
  33. mes "Party: " + getpartyname(getcharid(1)) + "";
  34. mes "Leader: " + strcharinfo(0) + "";
  35. mes "^0000ff" + .@md_name$ + " ^000000- Unknown error";
  36. close;
  37. }
  38. mes "[Miriam in disguise]";
  39. mes "You'd better wait a little before you go in.";
  40. close;
  41. case 2:
  42. switch( instance_enter(.@md_name$) ) {
  43. case IE_OTHER:
  44. mes "[Miriam in disguise]";
  45. mes "^ff0000An unknown error occurred.^000000";
  46. close;
  47. case IE_NOINSTANCE:
  48. mes "[Miriam in disguise]";
  49. mes "^ff0000Your party leader has not yet created the dungeon.^000000";
  50. close;
  51. case IE_NOMEMBER:
  52. mes "[Miriam in disguise]";
  53. mes "^ff0000Only a member of the party can enter the Memorial Dungeon.^000000";
  54. close;
  55. case IE_OK:
  56. mapannounce "ra_fild10", "" + strcharinfo(0) + " of the party, " + getpartyname( getcharid(1) ) + ", is entering " + .@md_name$ + ".",bc_map,"0x00ff99",FW_NORMAL ,12;
  57. end;
  58. }
  59. case 3:
  60. end;
  61. }
  62. }
  63. cutin "ep18_merchant.png",2;
  64. mes "[Vendor]";
  65. mes "Someone must have been around here, but they just disappeared. Where did they go?";
  66. close3;
  67. OnInit:
  68. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(11717) == 1" );
  69. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(11719) == 1" );
  70. end;
  71. }
  72. // Step 1
  73. 1@oz,284,164,3 script Rope#outoz 4_ROPEPILE,{
  74. mes "I think I can climb up with a rope.";
  75. next;
  76. if (select( "Use a rope to climb", "Do not use" ) == 2)
  77. end;
  78. warp "ra_fild10",180,174;
  79. end;
  80. }
  81. 1@oz,282,175,3 script Miriam#ozmd1 4_EP18_MIRIAM,{
  82. if ('event_oz != 0)
  83. end;
  84. 'event_oz = 1;
  85. .@miriam1$ = instance_npcname("Miriam#ozmd1");
  86. .@maggi1$ = instance_npcname("Magi#ozmd1");
  87. .@mark1$ = instance_npcname("Mark#ozmd1");
  88. .@tamarin1$ = instance_npcname("Tamarin#ozmd1");
  89. .@miriam2$ = instance_npcname("Miriam#ozmd2");
  90. setpcblock PCBLOCK_NPC, true;
  91. npctalk "Miriam: This is the entrance to the labyrinth of Oz.", .@miriam1$;
  92. cutin "ep18_miriam_03.png",2;
  93. sleep2 2000;
  94. npctalk "Miriam: Everyone, please move carefully.", .@miriam1$;
  95. sleep2 2000;
  96. npctalk "Magi: Something hot and dusty...", .@maggi1$;
  97. cutin "4job_maggi_02.PNG",2;
  98. enablenpc .@maggi1$;
  99. enablenpc .@mark1$;
  100. enablenpc .@tamarin1$;
  101. sleep2 2000;
  102. npctalk "Mark: Are you okay?", .@mark1$;
  103. cutin "ep18_mark_01.png",2;
  104. sleep2 2000;
  105. npctalk "Miriam: There is lava flowing right below it, always scattering ashes.", .@miriam1$;
  106. cutin "ep18_miriam_03.png",2;
  107. sleep2 2000;
  108. npctalk "Miriam: Beware there may be embers in the lava ash.", .@miriam1$;
  109. sleep2 2000;
  110. npctalk "Miriam: If you inhale incorrectly, you will burn your lungs.", .@miriam1$;
  111. sleep2 2000;
  112. npctalk "Miriam: There don't seem to be any monsters around here, so it's better to move slowly and check the situation again.", .@miriam1$;
  113. sleep2 2000;
  114. npctalk "Miriam: Please follow the road to the north first.", .@miriam1$;
  115. sleep2 2000;
  116. cutin "",255;
  117. setpcblock PCBLOCK_NPC, false;
  118. disablenpc .@maggi1$;
  119. disablenpc .@mark1$;
  120. disablenpc .@tamarin1$;
  121. disablenpc .@miriam1$;
  122. enablenpc .@miriam2$;
  123. end;
  124. }
  125. 1@oz,279,175,5 duplicate(dummy_npc) Magi#ozmd1 4_4JOB_MAGGI
  126. 1@oz,280,175,3 duplicate(dummy_npc) Mark#ozmd1 4_EP18_MARK
  127. 1@oz,279,177,3 duplicate(dummy_npc) Tamarin#ozmd1 4_EP18_TAMARIN
  128. // Step 2
  129. 1@oz,271,272,3 script Miriam#ozmd2 4_EP18_MIRIAM,{
  130. if ('event_oz != 1)
  131. end;
  132. 'event_oz = 2;
  133. .@miriam2$ = instance_npcname("Miriam#ozmd2");
  134. 'miriam3$ = instance_npcname("Miriam#ozmd3");
  135. setpcblock PCBLOCK_NPC, true;
  136. npctalk "Miriam: If you cross the bridge in front of you, it's a real maze.", .@miriam2$;
  137. sleep2 2000;
  138. npctalk "Miriam: We must be very careful crossing the bridge, let's talk again after.", .@miriam2$;
  139. sleep2 2000;
  140. setpcblock PCBLOCK_NPC, false;
  141. disablenpc .@miriam2$;
  142. enablenpc 'miriam3$;
  143. end;
  144. OnInstanceInit:
  145. 'miriam3_id = 0;
  146. 'event_oz = 0;
  147. 'map_name$ = instance_mapname("1@oz");
  148. disablenpc instance_npcname("Miriam#ozmd2");
  149. disablenpc instance_npcname("Miriam#ozmd3");
  150. disablenpc instance_npcname("Miriam#ozmd4");
  151. disablenpc instance_npcname("Maram#ozmd5");
  152. disablenpc instance_npcname("Miriam#ozmd5");
  153. disablenpc instance_npcname("Maram#ozmd7");
  154. disablenpc instance_npcname("#oz_way");
  155. disablenpc instance_npcname("Maram#ozmd6");
  156. disablenpc instance_npcname("Magi#ozmd1");
  157. disablenpc instance_npcname("Mark#ozmd1");
  158. disablenpc instance_npcname("Tamarin#ozmd1");
  159. disablenpc instance_npcname("Magi#ozmd3");
  160. disablenpc instance_npcname("Mark#ozmd3");
  161. disablenpc instance_npcname("Tamarin#ozmd3");
  162. disablenpc instance_npcname("Maram#ozmd4");
  163. disablenpc instance_npcname("Magi#ozmd5");
  164. disablenpc instance_npcname("Mark#ozmd5");
  165. disablenpc instance_npcname("Tamarin#ozmd5");
  166. disablenpc instance_npcname("Maram#ozmd8");
  167. disablenpc instance_npcname("Magi#ozmd6");
  168. disablenpc instance_npcname("Mark#ozmd6");
  169. disablenpc instance_npcname("Tamarin#ozmd6");
  170. disablenpc instance_npcname("Miriam#ozmd7");
  171. disablenpc instance_npcname("Imril#ozmd7");
  172. end;
  173. }
  174. // Step 3
  175. 1@oz,241,272,3 script Miriam#ozmd3 EP18_NPC_MIRIAM,{
  176. if ('event_oz != 2)
  177. end;
  178. 'event_oz = 3;
  179. 'miriam3$ = instance_npcname("Miriam#ozmd3");
  180. .@maggi3$ = instance_npcname("Magi#ozmd3");
  181. .@mark3$ = instance_npcname("Mark#ozmd3");
  182. .@tamarin3$ = instance_npcname("Tamarin#ozmd3");
  183. setpcblock PCBLOCK_NPC, true;
  184. npctalk "Miriam: This bridge is dangerous, so it's best to split your luggage and cross in turn.", 'miriam3$;
  185. sleep2 2000;
  186. npctalk "Miriam: Then I will cross first, so please follow slowly. It will help not to look under your feet.", 'miriam3$;
  187. sleep2 2000;
  188. npctalk "Tamarin: Wow I can't see the bottom.", .@tamarin3$;
  189. enablenpc .@maggi3$;
  190. enablenpc .@mark3$;
  191. enablenpc .@tamarin3$;
  192. sleep2 2000;
  193. npctalk "Magi: Your legs look very old...", .@maggi3$;
  194. sleep2 2000;
  195. npctalk "Mark: Everyone be careful", .@mark3$;
  196. sleep2 2000;
  197. setpcblock PCBLOCK_NPC, false;
  198. disablenpc .@maggi3$;
  199. disablenpc .@mark3$;
  200. disablenpc .@tamarin3$;
  201. 'miriam3_id = getnpcid(0);
  202. unitwalk 'miriam3_id,231,272, 'miriam3$ + "::OnEvent1"; // several events are required to palliate to our too short value of MAX_WALKPATH (32) used to calculate the pathing
  203. end;
  204. OnEvent1:
  205. unitwalk 'miriam3_id,211,272, 'miriam3$ + "::OnEvent2";
  206. end;
  207. OnEvent2:
  208. unitwalk 'miriam3_id,191,272, 'miriam3$ + "::OnEvent3";
  209. end;
  210. OnEvent3:
  211. unitwalk 'miriam3_id,171,272, 'miriam3$ + "::OnEvent4";
  212. end;
  213. OnEvent4:
  214. unitwalk 'miriam3_id,157,272, 'miriam3$ + "::OnEvent5";
  215. end;
  216. OnEvent5:
  217. disablenpc 'miriam3$;
  218. enablenpc instance_npcname("Miriam#ozmd4");
  219. enablenpc instance_npcname("Ash Toad#ozmd1");
  220. end;
  221. }
  222. 1@oz,245,272,3 duplicate(dummy_npc) Magi#ozmd3 4_4JOB_MAGGI
  223. 1@oz,244,273,3 duplicate(dummy_npc) Mark#ozmd3 4_EP18_MARK
  224. 1@oz,244,270,3 duplicate(dummy_npc) Tamarin#ozmd3 4_EP18_TAMARIN
  225. // Step 4 + 5
  226. 1@oz,157,272,3 script Miriam#ozmd4 4_EP18_MIRIAM,{
  227. if ('event_oz != 3)
  228. end;
  229. 'event_oz = 4;
  230. .@miriam4$ = instance_npcname("Miriam#ozmd4");
  231. .@tamarin4$ = instance_npcname("Tamarin#ozmd4");
  232. .@ashtoad2$ = instance_npcname("Ash Toad#ozmd2");
  233. .@maggi4$ = instance_npcname("Magi#ozmd4");
  234. .@mark4$ = instance_npcname("Mark#ozmd4");
  235. .@ashtoad3$ = instance_npcname("Ash Toad#ozmd3");
  236. setpcblock PCBLOCK_NPC, true;
  237. mapannounce 'map_name$, "Miriam: Ah!! A monster!!!", bc_map, 0x00B7EE,FW_NORMAL,16;
  238. sleep2 1500;
  239. mapannounce 'map_name$, "Miriam: I'll take this rude bastard.", bc_map, 0x00B7EE,FW_NORMAL,16;
  240. sleep2 1500;
  241. mapannounce 'map_name$, "Tamarin: Appeared in the back!!!", bc_map, 0x00B7EE,FW_NORMAL,16;
  242. sleep2 2000;
  243. enablenpc .@tamarin4$;
  244. sleep2 500;
  245. enablenpc .@ashtoad2$;
  246. mapannounce 'map_name$, "Magi: Crazy!!!", bc_map, 0x00B7EE,FW_NORMAL,16;
  247. sleep2 500;
  248. enablenpc .@maggi4$;
  249. enablenpc .@mark4$;
  250. mapannounce 'map_name$, "Mark: Please support me in the front!!!", bc_map, 0x00B7EE,FW_NORMAL,16;
  251. sleep2 1000;
  252. 'mob_count_oz = 0;
  253. monster 'map_name$,145,274,"Ash Toad",21295,1, .@miriam4$ + "::OnMobDead"; // EP18_ASH_TOAD
  254. enablenpc .@ashtoad3$;
  255. monster 'map_name$,143,278,"Ash Toad",21295,1, .@miriam4$ + "::OnMobDead"; // EP18_ASH_TOAD
  256. setpcblock PCBLOCK_NPC, false;
  257. end;
  258. // Note: on official the event seems to start right after killing the 2 mobs. The character can't move.
  259. // There is no OnTouch area, a character outside the npc range can't see the dialog. Intended ?
  260. OnMobDead:
  261. 'mob_count_oz++;
  262. if ('mob_count_oz < 2)
  263. end;
  264. if ('event_oz != 4)
  265. end;
  266. 'event_oz = 5;
  267. .@tamarin4$ = instance_npcname("Tamarin#ozmd4");
  268. .@ashtoad2$ = instance_npcname("Ash Toad#ozmd2");
  269. .@maggi4$ = instance_npcname("Magi#ozmd4");
  270. .@mark4$ = instance_npcname("Mark#ozmd4");
  271. .@ashtoad3$ = instance_npcname("Ash Toad#ozmd3");
  272. .@maram4$ = instance_npcname("Maram#ozmd4");
  273. .@ashtoad1$ = instance_npcname("Ash Toad#ozmd1");
  274. .@tamarin4$ = instance_npcname("Tamarin#ozmd4");
  275. .@miriam4$ = instance_npcname("Miriam#ozmd4");
  276. setpcblock PCBLOCK_NPC, true;
  277. npctalk "Tamarin: I did it!!!", .@tamarin4$;
  278. disablenpc .@ashtoad2$;
  279. sleep2 2000;
  280. npctalk "Magi: Me too!!", .@maggi4$;
  281. disablenpc .@ashtoad3$;
  282. sleep2 2000;
  283. npctalk "Miriam: Huh It wasn't a great monster, but it would have been dangerous if they were ordinary merchants.", .@miriam4$;
  284. disablenpc .@ashtoad1$;
  285. sleep2 2000;
  286. npctalk "Maram : " + strcharinfo(0) + " Are you okay?", .@maram4$;
  287. enablenpc .@maram4$;
  288. sleep2 2000;
  289. npctalk "Miriam: You're late! Maram!!!", .@miriam4$;
  290. sleep2 2000;
  291. npctalk "Maram: I met a monster on the way, so I'm a little late.", .@maram4$;
  292. sleep2 2000;
  293. npctalk "Miriam: There were no monsters on the road we passed earlier.", .@miriam4$;
  294. sleep2 2000;
  295. npctalk "Maram: Yeah? Where the hell do monsters spring up like this...", .@maram4$;
  296. sleep2 2000;
  297. npctalk "Maram: It's a big deal because it's getting harder and harder to move goods because of these monsters.", .@maram4$;
  298. sleep2 2000;
  299. npctalk "Tamarin: If you go to the ground?", .@tamarin4$;
  300. sleep2 2000;
  301. npctalk "Tamarin: I heard there used to be a bridge to cross a canyon?", .@tamarin4$;
  302. sleep2 2000;
  303. npctalk "Tamarin: Because there are still remains...", .@tamarin4$;
  304. sleep2 2000;
  305. npctalk "Maram: It is said that the bridge above was destroyed when they saw the natives crossing to escape the hardliners' attacks.", .@maram4$;
  306. sleep2 2000;
  307. npctalk "Maram: The land across the bridge has become uninhabitable due to volcanic ash, so it must have been the intention to dry it to death.", .@maram4$;
  308. sleep2 2000;
  309. npctalk "Maram: It's not difficult to make a bridge again...", .@maram4$;
  310. sleep2 2000;
  311. npctalk "Maram: You can't advertise that you're hiding here by making a bridge because you're in hiding.", .@maram4$;
  312. sleep2 2000;
  313. npctalk "Maram: It's dangerous and inconvenient right now, but I have no choice but to use the maze of Oz.", .@maram4$;
  314. sleep2 2000;
  315. npctalk "Maram: In this state, it may not have been noticed until now.", .@maram4$;
  316. sleep2 2000;
  317. npctalk "Miriam: Without the Maze of Oz...", .@miriam4$;
  318. sleep2 2000;
  319. npctalk "Miriam: It must have been a lot harder than it is now.", .@miriam4$;
  320. sleep2 2000;
  321. npctalk "Maram: That's right", .@maram4$;
  322. sleep2 2000;
  323. npctalk "Maram: Now, shall we walk the lovely maze of Oz again?", .@maram4$;
  324. sleep2 2000;
  325. npctalk "Miriam: What do you mean", .@miriam4$;
  326. sleep2 2000;
  327. npctalk "Miriam : " + strcharinfo(0) + " From now on, go all the way down until you come to a fork.", .@miriam4$;
  328. sleep2 2000;
  329. npctalk "Miriam: It would be nice if the monsters didn't appear...", .@miriam4$;
  330. sleep2 1000;
  331. disablenpc .@maram4$;
  332. setpcblock PCBLOCK_NPC, false;
  333. disablenpc .@maggi4$;
  334. disablenpc .@mark4$;
  335. disablenpc .@tamarin4$;
  336. disablenpc .@miriam4$;
  337. enablenpc instance_npcname("Maram#ozmd5");
  338. end;
  339. }
  340. 1@oz,156,272,5 duplicate(dummy_disabled_npc) Ash Toad#ozmd1 EP18_ASH_TOAD
  341. 1@oz,164,272,3 duplicate(dummy_disabled_npc) Ash Toad#ozmd2 EP18_ASH_TOAD
  342. 1@oz,153,275,5 duplicate(dummy_disabled_npc) Ash Toad#ozmd3 EP18_ASH_TOAD
  343. 1@oz,155,275,3 duplicate(dummy_disabled_npc) Magi#ozmd4 4_4JOB_MAGGI
  344. 1@oz,156,274,3 duplicate(dummy_disabled_npc) Mark#ozmd4 4_EP18_MARK
  345. 1@oz,161,272,5 duplicate(dummy_disabled_npc) Tamarin#ozmd4 4_EP18_TAMARIN
  346. 1@oz,162,275,3 duplicate(dummy_npc) Maram#ozmd4 4_EP18_MARAM
  347. // Step 6
  348. 1@oz,98,172,3 script Maram#ozmd5 EP18_NPC_MARAM,{
  349. if ('event_oz != 5)
  350. end;
  351. 'event_oz = 6;
  352. .@miriam$ = instance_npcname("Miriam#ozmd5");
  353. .@maram$ = instance_npcname("Maram#ozmd5");
  354. enablenpc .@miriam$;
  355. enablenpc instance_npcname("Magi#ozmd5");
  356. enablenpc instance_npcname("Mark#ozmd5");
  357. enablenpc instance_npcname("Tamarin#ozmd5");
  358. npctalk "Maram: It wasn't like this before, but maybe it's the effect of Tor Volcano, as the ground below starts to melt, so more monsters are appearing.";
  359. setpcblock PCBLOCK_NPC, true;
  360. sleep2 2000;
  361. npctalk "Maram: Especially in areas with a lot of molten ground, when trying to avoid monsters, the lava Because there are many people who are seriously injured or never come back... ";
  362. sleep2 2000;
  363. npctalk "Maram: How long will the maze of Oz last...";
  364. sleep2 3000;
  365. mapannounce 'map_name$, "??? : ugh!!!!!!!!!!!!!!!!!!!", bc_map, 0x00B7EE,FW_NORMAL,16;
  366. sleep2 2000;
  367. npctalk "Maram: This voice?!?!?!?!?";
  368. sleep2 2000;
  369. npctalk "Miriam: Imril!!!!", .@miriam$;
  370. sleep2 2000;
  371. setpcblock PCBLOCK_NPC, false;
  372. npctalk "Maram: I think your friend is in trouble! I'll go first, so please follow me carefully!";
  373. disablenpc instance_npcname("Magi#ozmd5");
  374. disablenpc instance_npcname("Mark#ozmd5");
  375. disablenpc instance_npcname("Tamarin#ozmd5");
  376. unitwalk getnpcid(0),68,165, .@maram$ + "::OnMove";
  377. donpcevent .@miriam$ + "::OnMove";
  378. end;
  379. OnMove:
  380. disablenpc instance_npcname("Maram#ozmd5");
  381. enablenpc instance_npcname("Maram#ozmd7");
  382. enablenpc instance_npcname("Imril#ozmd6");
  383. end;
  384. }
  385. 1@oz,97,167,3 script Miriam#ozmd5 EP18_NPC_MIRIAM,{
  386. end;
  387. OnMove:
  388. npcwalkto 67,164;
  389. end;
  390. }
  391. 1@oz,92,170,3 duplicate(dummy_npc) Magi#ozmd5 4_4JOB_MAGGI
  392. 1@oz,91,169,3 duplicate(dummy_npc) Mark#ozmd5 4_EP18_MARK
  393. 1@oz,89,170,5 duplicate(dummy_npc) Tamarin#ozmd5 4_EP18_TAMARIN
  394. // Step 7
  395. 1@oz,68,165,3 script Maram#ozmd7 4_EP18_MARAM,{
  396. if ('event_oz != 6)
  397. end;
  398. 'event_oz = 7;
  399. npctalk "Maram: Are you okay, Imril?";
  400. donpcevent instance_npcname("Imril#ozmd6") + "::OnStart";
  401. disablenpc instance_npcname("Maram#ozmd7");
  402. end;
  403. }
  404. // Step 8
  405. 1@oz,61,163,5 script Imril#ozmd6 4_EP18_IMRIL,{
  406. end;
  407. OnStart:
  408. 'mob_count_oz = 0;
  409. .@npc_name$ = instance_npcname("Imril#ozmd6");
  410. monster 'map_name$,64,164,"Ash Toad",21295,1, .@npc_name$ + "::OnMobDead"; // EP18_ASH_TOAD
  411. monster 'map_name$,62,161,"rake hand",21296,1, .@npc_name$ + "::OnMobDead"; // EP18_RAKEHAND
  412. end;
  413. OnMobDead:
  414. 'mob_count_oz++;
  415. if ('mob_count_oz < 2)
  416. end;
  417. if ('event_oz != 7)
  418. end;
  419. 'event_oz = 8;
  420. .@maram8$ = instance_npcname("Maram#ozmd8");
  421. .@imril6$ = instance_npcname("Imril#ozmd6");
  422. .@miriam5$ = instance_npcname("Miriam#ozmd5");
  423. .@maggi6$ = instance_npcname("Magi#ozmd6");
  424. .@mark6$ = instance_npcname("Mark#ozmd6");
  425. .@tamarin6$ = instance_npcname("Tamarin#ozmd6");
  426. setpcblock PCBLOCK_NPC, true;
  427. enablenpc .@maram8$;
  428. npctalk "Imril: Thanks! We almost died!", .@imril6$;
  429. sleep2 2000;
  430. npctalk "Imril: Don't go downstairs because the atmosphere isn't too bad.", .@imril6$;
  431. sleep2 2000;
  432. npctalk "Miriam: You seem to see monsters more often than last time.", .@miriam5$;
  433. sleep2 2000;
  434. npctalk "Imril: But what about those people?", .@imril6$;
  435. enablenpc .@maggi6$;
  436. enablenpc .@mark6$;
  437. enablenpc .@tamarin6$;
  438. sleep2 2000;
  439. npctalk "Maram: They are adventurers who sometimes help with mother's work.", .@maram8$;
  440. sleep2 2000;
  441. npctalk "Maram: Trustworthy people, don't be so wary.", .@maram8$;
  442. sleep2 2000;
  443. npctalk "Imril: Because you trust people too easily.", .@imril6$;
  444. sleep2 2000;
  445. npctalk "Miriam: Yes.", .@miriam5$;
  446. sleep2 2000;
  447. npctalk "Maram: Anyway, let's escape before more monsters come out.", .@maram8$;
  448. sleep2 2000;
  449. npctalk "Maram: Not long left.", .@maram8$;
  450. sleep2 2000;
  451. npctalk "Maram: It's hard to see, but just follow the road up here!", .@maram8$;
  452. sleep2 2000;
  453. npctalk "Tamarin: I think this is the way!", .@tamarin6$;
  454. disablenpc .@maggi6$;
  455. disablenpc .@mark6$;
  456. disablenpc .@tamarin6$;
  457. disablenpc .@maram8$;
  458. enablenpc instance_npcname("#oz_way");
  459. setpcblock PCBLOCK_NPC, false;
  460. end;
  461. }
  462. 1@oz,68,165,3 duplicate(dummy_npc) Maram#ozmd8 4_EP18_MARAM
  463. 1@oz,61,168,3 duplicate(dummy_npc) Magi#ozmd6 4_4JOB_MAGGI
  464. 1@oz,65,167,3 duplicate(dummy_npc) Mark#ozmd6 4_EP18_MARK
  465. 1@oz,59,171,3 duplicate(dummy_npc) Tamarin#ozmd6 4_EP18_TAMARIN
  466. // Step 9
  467. 1@oz,58,256,5 script #oz_way 1_SHADOW_NPC,3,3,{
  468. end;
  469. OnTouch:
  470. if ('event_oz != 8)
  471. end;
  472. 'event_oz = 9;
  473. enablenpc instance_npcname("Maram#ozmd6");
  474. end;
  475. }
  476. // Step 10 (maybe not required ?)
  477. 1@oz,44,255,5 script Maram#ozmd6 4_EP18_MARAM,{
  478. if ('event_oz != 9)
  479. end;
  480. 'event_oz = 10;
  481. npctalk "Maram: This way!!!";
  482. initnpctimer;
  483. end;
  484. OnTimer2000:
  485. disablenpc instance_npcname("Maram#ozmd6");
  486. enablenpc instance_npcname("Maram#ozmd9");
  487. enablenpc instance_npcname("Rope#outoz2");
  488. end;
  489. }
  490. // Step 11
  491. // (Step 29 on the main quest).
  492. 1@oz,21,189,5 script Maram#ozmd9 4_EP18_MARAM,{
  493. if ('event_oz != 10)
  494. end;
  495. 'event_oz = 11;
  496. .@maram9$ = instance_npcname("Maram#ozmd9");
  497. .@miriam7$ = instance_npcname("Miriam#ozmd7");
  498. .@imril7$ = instance_npcname("Imril#ozmd7");
  499. setpcblock PCBLOCK_NPC, true;
  500. npctalk "Maram: Climb up the rope in front of this to get out.", .@maram9$;
  501. enablenpc .@miriam7$;
  502. enablenpc .@imril7$;
  503. sleep2 2000;
  504. npctalk "Imril: I'll go get some hidden stuff here, so go up first.", .@imril7$;
  505. sleep2 2000;
  506. npctalk "Miriam: Everyone is very tired. Let's go upstairs.", .@miriam7$;
  507. if (ep18_1_main == 30) {
  508. changequest 11719,11720;
  509. ep18_1_main = 31;
  510. }
  511. disablenpc .@miriam7$;
  512. disablenpc .@imril7$;
  513. setpcblock PCBLOCK_NPC, false;
  514. end;
  515. OnInstanceInit:
  516. disablenpc instance_npcname("Maram#ozmd9");
  517. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(11719) == 1" );
  518. end;
  519. }
  520. 1@oz,22,187,5 duplicate(dummy_npc) Miriam#ozmd7 4_EP18_MIRIAM
  521. 1@oz,16,185,3 duplicate(dummy_npc) Imril#ozmd7 4_EP18_IMRIL
  522. // Step 12
  523. 1@oz,28,190,3 script(DISABLED) Rope#outoz2 4_ROPEPILE,{
  524. if ('event_oz < 11)
  525. end;
  526. mes "I think I can climb up with a rope.";
  527. next;
  528. switch( select( "Use a rope to climb", "Do not use" ) ) {
  529. case 1:
  530. close2;
  531. warp "gw_fild01",275,337;
  532. end;
  533. case 2:
  534. end;
  535. }
  536. end;
  537. OnInstanceInit:
  538. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(11720) == 1" );
  539. end;
  540. }
  541. // Spawn monsters
  542. 1@oz,22,207,5 script #oz01 1_SHADOW_NPC,4,4,{
  543. end;
  544. OnTouch_:
  545. getmapxy .@map$,.@x,.@y, BL_NPC;
  546. monster 'map_name$,.@x-1,.@y,"Ash Toad",21295,1; // EP18_ASH_TOAD
  547. monster 'map_name$,.@x+1,.@y,"Rake Hand",21296,1; // EP18_RAKEHAND
  548. disablenpc instance_npcname( strnpcinfo(0) );
  549. end;
  550. }
  551. 1@oz,30,237,5 duplicate(#oz01) #oz02 1_SHADOW_NPC,4,4
  552. 1@oz,44,264,5 duplicate(#oz01) #oz03 1_SHADOW_NPC,4,4
  553. 1@oz,62,247,5 duplicate(#oz01) #oz04 1_SHADOW_NPC,4,4
  554. 1@oz,72,222,5 duplicate(#oz01) #oz05 1_SHADOW_NPC,4,4
  555. 1@oz,79,203,5 duplicate(#oz01) #oz06 1_SHADOW_NPC,4,4
  556. 1@oz,124,261,5 duplicate(#oz01) #oz07 1_SHADOW_NPC,4,4
  557. 1@oz,139,279,5 duplicate(#oz01) #oz08 1_SHADOW_NPC,4,4