quests_exp_175.txt 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920
  1. //===== rAthena Script =======================================
  2. //= Quests EXP
  3. //===== Description: =========================================
  4. //= [Walkthrough Conversion]
  5. //--- NPC quests related to new dungeons.
  6. //===== Changelog: ===========================================
  7. //= 1.0 Initial release of Glast Heim Abyss quests. [OptimusM]
  8. //= 1.1 Corrections here and there. [Capuche]
  9. //= 1.2 Initial release of Magma Dungeon 3 quests. [Capuche]
  10. //= 1.3 Initial release of Einbech Dungeon 3 quests. [Capuche]
  11. //============================================================
  12. glast_01,191,273,3 script Magician Nillem#glabyss01 4_M_JOB_WIZARD,{
  13. if (BaseLevel < 175) {
  14. mes "[Nillem]";
  15. mes "What are you doing here?";
  16. mes "That's right, I'm waiting for a strong adventurer to satisfy my curiosity!";
  17. next;
  18. mes "[Nillem]";
  19. mes "If you reach level 175, you will be my destined opponent-¡Ù";
  20. close;
  21. }
  22. mes "[Nillem]";
  23. mes "I think I've made a great discovery, so why don't you come with me?";
  24. next;
  25. switch( select( "Let's go!", "Please explain it.", "What I found", "Refuse." )) {
  26. case 1:
  27. mes "[Nillem]";
  28. mes "This is my bae!";
  29. mes "You're gonna jump into the abyss with me! I can't help But L-O-V-E you.";
  30. close2;
  31. warp "gl_cas01_",200,26;
  32. end;
  33. case 2:
  34. mes "[Nillem]";
  35. mes "As you know, I'm a good court wizard, right?";
  36. mes "A genius wizard who can do this and that on dimension!";
  37. next;
  38. mes "[Nillem]";
  39. mes "There was a report of strange magical power near central castle of Glast Heim.";
  40. mes "I came here to investigate and found it.";
  41. next;
  42. mes "[Nillem]";
  43. mes "A week crack of dimension!";
  44. mes "You know, this genius wizard is good at connecting the crack of dimensions.";
  45. next;
  46. mes "[Nillem]";
  47. mes "So I forced the connection and went in....";
  48. mes "A piece of time that has stopped in the flow.... Hmmm... It's so hard to explain..";
  49. next;
  50. mes "[Nillem]";
  51. mes "Anyway, the flood of creatures trapped for a long time came to me like waves!";
  52. next;
  53. mes "[Nillem]";
  54. mes "I almost D - i - e - d there.";
  55. mes "So I'm looking for adventurers to join me on this expedition.";
  56. close;
  57. case 3:
  58. mes "[Nillem]";
  59. mes "Right, there's no mission here, but curiosity follows discovery!";
  60. mes "You noticed before I told you there were a few things I wanted to do with you, My - Darling -.";
  61. next;
  62. switch( select( "An Empty Thing", "A Thing with High Freezing Point", "A Thing Like A Mirror", "Well, I'm okay." )) {
  63. case 1:
  64. mes "[Nillem]";
  65. mes "Beyond the cracks of this dimension, there are Empty Things..";
  66. mes "^0000FFContaminated Raydric^000000 and ^0000FFContaminated Raydric Archer^000000...";
  67. mes "Contamination";
  68. next;
  69. mes "[Nillem]";
  70. mes "^0000FF20 Contaminated Raydrics^000000,";
  71. mes "^0000FF20 Contaminated Raydric Archers^000000!! Defeat them and come back. Then this genius wizard will study it.";
  72. mes "What do you think, bae?";
  73. next;
  74. if (select( "That's not hard.", "I'm busy." ) == 2) {
  75. mes "[Nillem]";
  76. mes "If you're busy, you can't help me.";
  77. mes "But honey, please help me when You - Have - Spare - Time - !";
  78. close;
  79. }
  80. switch( checkquest(8542,PLAYTIME) ) {
  81. case -1:
  82. break;
  83. case 0:
  84. case 1:
  85. mes "[Nillem]";
  86. mes "I asked you too much today, Sweetie.";
  87. mes "Instead, you're sharing another new discovery tomorrow. O - K - A - Y -?";
  88. close;
  89. case 2:
  90. mes "^4d4dff - You can take this mission again. Speak to Mage Nillem once again to accept it. - ^000000";
  91. erasequest 8542;
  92. break;
  93. }
  94. switch( checkquest(8541,HUNTING) ) {
  95. case -1:
  96. mes "[Nillem]";
  97. mes "That's my baby!";
  98. mes "It's hard to see the impact there because of the strange magic.";
  99. mes "If you finish the quest, let's get out of there first And - Then Check - !";
  100. setquest 8541;
  101. close;
  102. case 0:
  103. case 1:
  104. mes "[Nillem]";
  105. mes "^0000FF20 Contaminated Raydrics^000000,";
  106. mes "^0000FF20 Contaminated Raydric Archers^000000.";
  107. mes "Woo-hoo, aren't you excited about the effects of empty things?";
  108. close;
  109. case 2:
  110. mes "[Nillem]";
  111. mes "Ha~ It's so obvious out here. Could you please show me your... weapon and... armor? Hmm...";
  112. mes "Hmmm!!";
  113. mes "Haha, what a discovery of the century!";
  114. next;
  115. select( "What do you get?" );
  116. mes "[Nillem]";
  117. mes "It's hard to explain to you, but in short, You - Did - it - !!";
  118. mes "But this isn't enough, so please do it again tomorrow.";
  119. erasequest 8541;
  120. setquest 8542;
  121. getexp 8142552,5674080;
  122. close;
  123. }
  124. end;
  125. case 2:
  126. mes "[Nillem]";
  127. mes "There are things that have a high freezing point beyond the crack of this dimension.";
  128. mes "^0000FFFrozen Gargoyle^000000 and ^0000FFPrison Breaker^000000...";
  129. next;
  130. mes "[Nillem]";
  131. mes "^0000FF5 Frozen Gargoyles^000000,";
  132. mes "^0000FF5 Prison Breakers^000000!! Defeat them and come back. Then this genius wizard will study it.";
  133. mes "What do you think, bae?";
  134. next;
  135. if (select( "That's not hard.", "I'm busy." ) == 2) {
  136. mes "[Nillem]";
  137. mes "If you're busy, you can't help me.";
  138. mes "But honey, please help me when You - Have - Spare - Time - !";
  139. close;
  140. }
  141. switch( checkquest(8545,PLAYTIME) ) {
  142. case -1:
  143. break;
  144. case 0:
  145. case 1:
  146. mes "[Nillem]";
  147. mes "I asked you too much today, Sweetie.";
  148. mes "Instead, you're sharing another new discovery tomorrow. O - K - A - Y -?";
  149. close;
  150. case 2:
  151. mes "^4d4dff - You can take this mission again. Speak to Mage Nillem once again to accept it. - ^000000";
  152. erasequest 8545;
  153. break;
  154. }
  155. switch( checkquest(8544,HUNTING) ) {
  156. case -1:
  157. mes "[Nillem]";
  158. mes "That's my baby!";
  159. mes "It's hard to see the impact there because of the strange magic.";
  160. mes "If you finish the quest, let's get out of there first And - Then Check - !";
  161. setquest 8544;
  162. close;
  163. case 0:
  164. case 1:
  165. mes "[Nillem]";
  166. mes "^0000FF5 Frozen Gargoyles^000000,";
  167. mes "^0000FF5 Prison Breakers^000000!!";
  168. mes "Woo-hoo, aren't you excited about Things with High Freezing Point?";
  169. close;
  170. case 2:
  171. mes "[Nillem]";
  172. mes "Ha~ It's so obvious out here. Could you please show me your... weapon and... armor? Hmm...";
  173. mes "Hmmm!!";
  174. mes "Haha, what a discovery of the century!";
  175. next;
  176. select( "What do you get?" );
  177. mes "[Nillem]";
  178. mes "It's hard to explain to you, but in short, You - Did - it - !!";
  179. mes "But this isn't enough, so please do it again tomorrow.";
  180. erasequest 8544;
  181. setquest 8545;
  182. getexp 2036754,1425726;
  183. close;
  184. }
  185. end;
  186. case 3:
  187. mes "[Nillem]";
  188. mes "Beyond the crack of this dimension, there are mirrors of each other.";
  189. mes "^0000FFIce Ghost^000000 and ^0000FFFlame Ghost^000000...";
  190. mes "It looks completely different, but the crack of dimensions is very unknown.";
  191. next;
  192. mes "[Nillem]";
  193. mes "^0000FF10 Ice Ghosts^000000,";
  194. mes "^0000FF10 Flame Ghosts^000000!! Defeat them and come back. Then this genius wizard will study it.";
  195. mes "What do you think, bae?";
  196. next;
  197. if (select( "That's not hard.", "I'm busy." ) == 2) {
  198. mes "[Nillem]";
  199. mes "If you're busy, you can't help me.";
  200. mes "But honey, please help me when You - Have - Spare - Time - !";
  201. close;
  202. }
  203. switch( checkquest(8548,PLAYTIME) ) {
  204. case -1:
  205. break;
  206. case 0:
  207. case 1:
  208. mes "[Nillem]";
  209. mes "I asked you too much today, Sweetie.";
  210. mes "Instead, you're sharing another new discovery tomorrow. O - K - A - Y -?";
  211. close;
  212. case 2:
  213. mes "^4d4dff - You can take this mission again. Speak to Mage Nillem once again to accept it. - ^000000";
  214. erasequest 8548;
  215. break;
  216. }
  217. switch( checkquest(8547,HUNTING) ) {
  218. case -1:
  219. mes "[Nillem]";
  220. mes "That's my baby!";
  221. mes "It's hard to see the impact there because of the strange magic.";
  222. mes "If you finish the quest, let's get out of there first And - Then Check - !";
  223. setquest 8547;
  224. close;
  225. case 0:
  226. case 1:
  227. mes "[Nillem]";
  228. mes "^0000FF10 Ice Ghosts^000000,";
  229. mes "^0000FF10 Flame Ghosts^000000!!";
  230. mes "Woo-hoo, aren't you excited about Things Like A Mirror?";
  231. close;
  232. case 2:
  233. mes "[Nillem]";
  234. mes "Ha~ It's so obvious out here. Could you please show me your... weapon and... armor? Hmm...";
  235. mes "Hmmm!!";
  236. mes "Haha, what a discovery of the century!";
  237. next;
  238. select( "What do you get?" );
  239. mes "[Nillem]";
  240. mes "It's hard to explain to you, but in short, You - Did - it - !!";
  241. mes "But this isn't enough, so please do it again tomorrow.";
  242. erasequest 8547;
  243. setquest 8548;
  244. getexp 4138800,2897160;
  245. close;
  246. }
  247. end;
  248. case 4:
  249. mes "[Nillem]";
  250. mes "There, there. Sweet heart, you are right.";
  251. mes "If you're tired, take a rest.";
  252. mes "Do - Not - Push - yourself --- !";
  253. close;
  254. }
  255. end;
  256. case 4:
  257. mes "[Nillem]";
  258. mes "Oh, my sweetheart, you're so mean today.";
  259. mes "Nillem is saaaad. *Tears*";
  260. close;
  261. }
  262. end;
  263. OnInit:
  264. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8541,HUNTING) == 2" );
  265. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8544,HUNTING) == 2" );
  266. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8547,HUNTING) == 2" );
  267. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8542,PLAYTIME) == -1 && checkquest(8541,HUNTING) == -1" );
  268. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8545,PLAYTIME) == -1 && checkquest(8544,HUNTING) == -1" );
  269. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8548,PLAYTIME) == -1 && checkquest(8547,HUNTING) == -1" );
  270. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8542,PLAYTIME) == 2" );
  271. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8545,PLAYTIME) == 2" );
  272. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8548,PLAYTIME) == 2" );
  273. end;
  274. }
  275. gl_cas01_,205,36,5 script Magician Nillem#glabyss02 4_M_JOB_WIZARD,{
  276. mes "[Nillem]";
  277. mes "Woo-hoo! I'm so excited whenever I come here!";
  278. mes "I love this bleakness!";
  279. next;
  280. if (select( "Let's get out of here!", "I'd like to look around." ) == 2) {
  281. mes "[Nillem]";
  282. mes "See you!";
  283. close;
  284. }
  285. mes "[Nillem]";
  286. mes "Sure!";
  287. mes "Let's - Go - Out - Side - !";
  288. close2;
  289. warp "glast_01",191,270;
  290. end;
  291. }
  292. // mag_dun03
  293. yuno_fild03,38,146,5 script Lily Blanc -1,{
  294. if (BaseLevel < 175) {
  295. mes "[Lily]";
  296. mes "...?";
  297. mes "...well, I don't think the guards will let you in...";
  298. next;
  299. mes "[Lily]";
  300. mes "If you are qualified to enter the 3rd floor of Nogg Road, would you accept a quest?";
  301. mes "We need a lot of work.";
  302. mes "The guards said level 175 is enough...";
  303. close;
  304. }
  305. mes "[Lily]";
  306. mes "Friendly adventurer, would you mind helping us with the research for our conference report?";
  307. mes "Only an adventurer's eye is the only way for us to live.";
  308. next;
  309. switch( select( "Listen to the request", "Suspicious...", "Reject" ) ) {
  310. case 1:
  311. mes "[Lily]";
  312. mes "Generous adventurer! Thank you.";
  313. mes "The request is on the 3rd floor of Nogg Road, a place I can't enter yet, but the conference wants a report...";
  314. next;
  315. setarray .@quest_list[1], 8550, 8553, 8556, 8559;
  316. .@s = select( "Dealer that caused abnormal evolution", "Eradicate the nightmare that became a reality", "Check density", "Small things crumbling", "Next time" );
  317. if (.@s < 5) {
  318. .@quest_first = .@quest_list[.@s];
  319. .@quest_delay = .@quest_first + 1;
  320. .@quest_daily = .@quest_first + 2;
  321. callsub( S_CheckDelay, .@quest_delay );
  322. if (isbegin_quest(.@quest_first) < 2)
  323. .@quest_ongoing = .@quest_first;
  324. else
  325. .@quest_ongoing = .@quest_daily;
  326. }
  327. switch( .@s ) {
  328. case 1:
  329. switch( checkquest(.@quest_ongoing,HUNTING) ) {
  330. case -1:
  331. if (.@quest_ongoing == .@quest_first) {
  332. mes "[Lily]";
  333. mes "Our doctor said that monsters change their characteristics and appearance when they live in different places...";
  334. mes "Dr. and me too... Because combat isn't my major.";
  335. next;
  336. mes "[Lily]";
  337. mes "So here... Let's see.";
  338. mes "^0000FFThere is a report that the " + getmonsterinfo("DELETER2_H", MOB_NAME) + " and " + getmonsterinfo("DELETER1_H", MOB_NAME) + "^000000 caused abnormal evolution.";
  339. mes "But I can't even approach them because of their ferocious personality...";
  340. next;
  341. }
  342. mes "[Lily]";
  343. mes "Haunted on the 3rd floor of Nogg Road,";
  344. mes "^0000FFKill 15 " + getmonsterinfo("DELETER1_H", MOB_NAME) + "^000000";
  345. mes "and 15 ^0000FF" + getmonsterinfo("DELETER2_H", MOB_NAME) + "^000000 and tell me how hard they were.";
  346. callsub( S_Give, .@quest_ongoing );
  347. case 0:
  348. case 1:
  349. mes "[Lily]";
  350. mes "Haunted on the 3rd floor of Nogg Road,";
  351. mes "^0000FFKill 15 " + getmonsterinfo("DELETER1_H", MOB_NAME) + "^000000";
  352. mes "and 15 ^0000FF" + getmonsterinfo("DELETER2_H", MOB_NAME) + "^000000 and tell me how hard they were.";
  353. close;
  354. case 2:
  355. mes "[Lily]";
  356. mes "How was it?";
  357. mes "How was it different from just an air or ground Deleter?";
  358. next;
  359. mes "[Lily]";
  360. mes "Hmm... are you okay?";
  361. mes "Hmmmm. Okay";
  362. callsub( S_SetDelay, .@quest_ongoing, .@quest_first, .@quest_delay, 4852278,3396600 );
  363. }
  364. end;
  365. case 2:
  366. switch( checkquest(.@quest_ongoing,HUNTING) ) {
  367. case -1:
  368. if (.@quest_ongoing == .@quest_first) {
  369. mes "[Lily]";
  370. mes "" + getmonsterinfo("NIGHTMARE_TERROR_H", MOB_NAME) + " is a hardened nightmare terror...";
  371. mes "I've only seen Nightmare terror. Just looking at it made me stiff and unable to move. Although the professor dragged me out...";
  372. next;
  373. mes "[Lily]";
  374. mes "So here... Let's see.";
  375. }
  376. else {
  377. mes "[Lily]";
  378. }
  379. mes "Haunted on the 3rd floor of Nogg Road,";
  380. mes "^0000FFDefeat 10 " + getmonsterinfo("NIGHTMARE_TERROR_H", MOB_NAME) + "^000000 and tell me how hard it is.";
  381. callsub( S_Give, .@quest_ongoing );
  382. case 0:
  383. case 1:
  384. mes "[Lily]";
  385. mes "Haunted on the 3rd floor of Nogg Road";
  386. mes "^0000FF Defeat 10 " + getmonsterinfo("NIGHTMARE_TERROR_H", MOB_NAME) + "^000000 and tell me how hard it is.";
  387. close;
  388. case 2:
  389. mes "[Lily]";
  390. mes "How was it?";
  391. mes "How was it different from just a Nightmare Terror?";
  392. next;
  393. mes "[Lily]";
  394. mes "Huh... Really?";
  395. mes "What should I do... my God. Is it real?";
  396. mes "Hmmmm. Okay";
  397. callsub( S_SetDelay, .@quest_ongoing, .@quest_first, .@quest_delay, 1661868,1163304 );
  398. }
  399. end;
  400. case 3:
  401. switch( checkquest(.@quest_ongoing,HUNTING) ) {
  402. case -1:
  403. if (.@quest_ongoing == .@quest_first) {
  404. mes "[Lily]";
  405. mes "I've heard that there is a huge difference in density between a Lava Golem and a " + getmonsterinfo("LAVA_GOLEM_H", MOB_NAME) + ".";
  406. }
  407. else {
  408. mes "[Lily]";
  409. }
  410. mes "Haunted on the 3rd floor of Nogg Road";
  411. mes "^0000FFDefeat 10 " + getmonsterinfo("LAVA_GOLEM_H", MOB_NAME) + "^000000 and tell me the density difference.";
  412. callsub( S_Give, .@quest_ongoing );
  413. case 0:
  414. case 1:
  415. mes "[Lily]";
  416. mes "Haunted on the 3rd floor of Nogg Road";
  417. mes "^0000FFDefeat 10 " + getmonsterinfo("LAVA_GOLEM_H", MOB_NAME) + "^000000 and tell me the density difference.";
  418. close;
  419. case 2:
  420. mes "[Lily]";
  421. mes "How was it?";
  422. mes "How was it different from just a Lava Golem?";
  423. next;
  424. mes "[Lily]";
  425. mes "Um... that's right. The shell...";
  426. mes "Yes? The soles of the feet? Indeed...";
  427. mes "Hmmmm. Okay";
  428. callsub( S_SetDelay, .@quest_ongoing, .@quest_first, .@quest_delay, 1590396,1113275 );
  429. }
  430. end;
  431. case 4:
  432. switch( checkquest(.@quest_ongoing,HUNTING) ) {
  433. case -1:
  434. if (.@quest_ongoing == .@quest_first) {
  435. mes "[Lily]";
  436. mes "" + getmonsterinfo("EXPLOSION_H", MOB_NAME) + " and " + getmonsterinfo("BLAZZER_H", MOB_NAME) + " are said to crumble much better than normal Explosion and Blazers.";
  437. mes "...our professor.";
  438. next;
  439. mes "[Lily]";
  440. mes "Haunted on the 3rd floor of Nogg Road,";
  441. mes "^0000FFKill 10 " + getmonsterinfo("EXPLOSION_H", MOB_NAME) + "^000000";
  442. mes "^0000FFand 10 " + getmonsterinfo("BLAZZER_H", MOB_NAME) + "^000000 and tell them how they feel.";
  443. mes "You don't have to touch it. You can tell just by looking at it...";
  444. }
  445. else {
  446. mes "[Lily]";
  447. mes "Haunted on the 3rd floor of Nogg Road,";
  448. mes "^0000FFKill 10 " + getmonsterinfo("EXPLOSION_H", MOB_NAME) + "^000000";
  449. mes "^0000FFand 10 " + getmonsterinfo("BLAZZER_H", MOB_NAME) + "^000000 and tell them how they feel.";
  450. }
  451. callsub( S_Give, .@quest_ongoing );
  452. case 0:
  453. case 1:
  454. mes "[Lily]";
  455. mes "Haunted on the 3rd floor of Nogg Road,";
  456. mes "^0000FFKill 10 " + getmonsterinfo("EXPLOSION_H", MOB_NAME) + "^000000";
  457. mes "^0000FFand 10 " + getmonsterinfo("BLAZZER_H", MOB_NAME) + "^000000 and tell them how they feel.";
  458. close;
  459. case 2:
  460. mes "[Lily]";
  461. mes "How was it?";
  462. mes "How is it different from just Explosion or Blazer?";
  463. next;
  464. mes "[Lily]";
  465. mes "Um... that's right. Pass...";
  466. mes "It's much more crumbly...";
  467. mes "Aha, that's a lot more dust.";
  468. mes "Hmmmm. Okay";
  469. callsub( S_SetDelay, .@quest_ongoing, .@quest_first, .@quest_delay, 3251388,2275966 );
  470. }
  471. end;
  472. case 5:
  473. mes "[Lily]";
  474. mes "Ah...";
  475. mes "When will I ever be able to escape from the professor's magic...";
  476. close;
  477. }
  478. end;
  479. case 2:
  480. mes "[Lily]";
  481. mes "As you can see, I'm just an incompetent sage.";
  482. mes "The professor I'm serving is a bit stubborn... I mean, someone has to investigate.";
  483. next;
  484. mes "[Lily]";
  485. mes "But I am still not allowed to enter the 3rd floor of Nogg Road.";
  486. mes "How did I get to the entrance and they said they would never let me in.";
  487. mes "That's right... not a place for sage to fit in.";
  488. next;
  489. mes "[Lily]";
  490. mes "Then what can I do? Why don't all the bards sing only what they see and hear?";
  491. mes "Some people have heard of this and that, others have told me, so it must be.";
  492. next;
  493. mes "[Lily]";
  494. mes "Don't worry. I'll use the adventurer's name when I report it to the professor...";
  495. mes "Yes... " + strcharinfo(0) + ".";
  496. mes "All right.";
  497. next;
  498. mes "[Lily]";
  499. mes "There is a list of monsters that will be research materials, so please check the quests if you are interested.";
  500. close;
  501. case 3:
  502. mes "[Lily]";
  503. mes "Ah, no...!";
  504. mes "Generous adventurer, please free me from the professor's magic...!";
  505. close;
  506. }
  507. end;
  508. S_CheckDelay:
  509. switch( checkquest(getarg(0),PLAYTIME) ) {
  510. case -1:
  511. break;
  512. case 0:
  513. case 1:
  514. mes "[Lily]";
  515. mes "You have already completed today's report.";
  516. mes "Will you help me with tomorrow's report...?";
  517. close;
  518. case 2:
  519. erasequest getarg(0);
  520. break;
  521. }
  522. return;
  523. S_Give:
  524. next;
  525. if (select( "I accept.", "I'm busy." ) == 2) {
  526. mes "[Lily]";
  527. mes "Originally, research is about persistence.";
  528. mes "Help me when you're not busy.";
  529. close;
  530. }
  531. mes "[Lily]";
  532. mes "Thank you!";
  533. mes "I'll be waiting here.";
  534. setquest getarg(0);
  535. close;
  536. S_SetDelay:
  537. .@quest_ongoing = getarg(0);
  538. .@quest_first = getarg(1);
  539. .@quest_delay = getarg(2);
  540. next;
  541. mes "[Lily]";
  542. mes "Thank you for your kind explanation.";
  543. mes "But I don't think you can understand the whole story by just that. Although this is the beauty of requesting an investigation...";
  544. mes "I'll ask you again tomorrow.";
  545. if (.@quest_ongoing == .@quest_first)
  546. completequest .@quest_ongoing;
  547. else
  548. erasequest .@quest_ongoing;
  549. setquest .@quest_delay;
  550. getexp getarg(3), getarg(4);
  551. close;
  552. OnInit:
  553. setunitdata getnpcid(0), UNPC_CLASS, JOB_SAGE;
  554. setunitdata getnpcid(0), UNPC_SEX, SEX_FEMALE;
  555. setunitdata getnpcid(0), UNPC_HAIRCOLOR, 6;
  556. setunitdata getnpcid(0), UNPC_HAIRSTYLE, 22;
  557. setunitdata getnpcid(0), UNPC_HEADTOP, 316;
  558. // completed first quest
  559. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8550,HUNTING) == 2" );
  560. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8553,HUNTING) == 2" );
  561. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8556,HUNTING) == 2" );
  562. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8559,HUNTING) == 2" );
  563. // completed daily
  564. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8552,HUNTING) == 2" );
  565. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8555,HUNTING) == 2" );
  566. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8558,HUNTING) == 2" );
  567. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8561,HUNTING) == 2" );
  568. // timeout
  569. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8551,PLAYTIME) == 2" );
  570. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8554,PLAYTIME) == 2" );
  571. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8557,PLAYTIME) == 2" );
  572. questinfo( QTYPE_QUEST, QMARK_YELLOW, "checkquest(8560,PLAYTIME) == 2" );
  573. // not started first quest
  574. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8550) == 0 && checkquest(8551,PLAYTIME) == -1" );
  575. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8553) == 0 && checkquest(8553,PLAYTIME) == -1" );
  576. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8556) == 0 && checkquest(8555,PLAYTIME) == -1" );
  577. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8559) == 0 && checkquest(8557,PLAYTIME) == -1" );
  578. // not started daily
  579. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8550) == 2 && isbegin_quest(8552) == 0 && checkquest(8551,PLAYTIME) == -1" );
  580. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8553) == 2 && isbegin_quest(8555) == 0 && checkquest(8554,PLAYTIME) == -1" );
  581. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8556) == 2 && isbegin_quest(8558) == 0 && checkquest(8557,PLAYTIME) == -1" );
  582. questinfo( QTYPE_QUEST, QMARK_YELLOW, "isbegin_quest(8559) == 2 && isbegin_quest(8561) == 0 && checkquest(8560,PLAYTIME) == -1" );
  583. end;
  584. }
  585. // ein_dun03
  586. einbech,143,244,3 script Apprentice Researcher Sally#extdq01 4_F_LGTGIRL,{
  587. if (BaseLevel < 180) {
  588. mes "[Sally]";
  589. mes "Hello, adventurer!";
  590. mes "Please introduce me to a talented adventurer!";
  591. mes "A very, very important matter on which my job is at stake..!";
  592. next;
  593. mes "^4d4dffThere are quests over 180 Lv.^000000";
  594. close;
  595. }
  596. if (checkquest(7879,HUNTING) == 2) {
  597. mes "[Sally]";
  598. mes "We were able to collect enough data for " + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "!";
  599. erasequest 7879;
  600. setquest 7880;
  601. getexp 27512240,19258560;
  602. next;
  603. }
  604. if (checkquest(7881,HUNTING) == 2) {
  605. mes "[Sally]";
  606. mes "I have collected enough data for " + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "!";
  607. erasequest 7881;
  608. setquest 7882;
  609. getexp 27836640,19485600;
  610. next;
  611. }
  612. if (checkquest(7883,HUNTING) == 2) {
  613. mes "[Sally]";
  614. mes "The data for " + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + " are as follows. It was very helpful.";
  615. erasequest 7883;
  616. setquest 7884;
  617. getexp 27838400,19486880;
  618. next;
  619. }
  620. if (checkquest(7885,HUNTING) == 2) {
  621. mes "[Sally]";
  622. mes "" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "'s data is always amazing.";
  623. erasequest 7885;
  624. setquest 7886;
  625. getexp 6938800,4857160;
  626. next;
  627. }
  628. if (checkquest(7887,HUNTING) == 2) {
  629. mes "[Sally]";
  630. mes "You have successfully obtained " + getmonsterinfo("JEWELIANT", MOB_NAME) + " and " + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " data!";
  631. erasequest 7887;
  632. setquest 7888;
  633. getexp 13854240,9697960;
  634. next;
  635. }
  636. mes "[Sally]";
  637. mes "When will this poor apprenticeship end?";
  638. next;
  639. mes "[Sally]";
  640. mes "I am desperately looking for help from a talented adventurer.";
  641. mes "Just like you!";
  642. mes "Would you like to help protect this poor trainee researcher's job?";
  643. next;
  644. switch( select( "New Poison Research", "Special Mineral Research 1", "Special Mineral Research 2", "Abyssman Research", "Mineworm Research", "Why are you doing this?" ) ) {
  645. case 1:
  646. switch( checkquest(7880,PLAYTIME) ) {
  647. case -1:
  648. break;
  649. case 0:
  650. case 1:
  651. mes "[Sally]";
  652. mes "Um, don't overdo it.";
  653. mes "Opportunities always come.";
  654. close;
  655. case 2:
  656. erasequest 7880;
  657. break;
  658. }
  659. switch( checkquest(7879,HUNTING) ) {
  660. case -1:
  661. mes "[Sally]";
  662. mes "I need data to research the poison gas monster newly discovered in the Einbech Mine Dungeon.";
  663. mes "It is difficult to deal with the monsters occupying the mines with the manpower here, so we have to deal with both.";
  664. next;
  665. mes "[Sally]";
  666. mes "I'm collecting data while the adventurer is fighting ^4d4dff" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "^000000.";
  667. mes "Isn't it a good deal?";
  668. next;
  669. if (select( "Received a request", "Rejected" ) == 2) {
  670. mes "[Sally]";
  671. mes "It's ok.";
  672. mes "The world is wide and there are many adventurers.";
  673. close;
  674. }
  675. mes "[Sally]";
  676. mes "Then please take care of the ^4d4dff" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
  677. setquest 7879;
  678. close;
  679. case 0:
  680. case 1:
  681. mes "[Sally]";
  682. mes "" + getmonsterinfo("POISONOUS", MOB_NAME) + " and " + getmonsterinfo("TOXIOUS", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
  683. mes "They're hard for ordinary people like me to deal with, so I'll have to hide and watch you do the work then collect data.";
  684. close;
  685. case 2:
  686. end;
  687. }
  688. end;
  689. case 2:
  690. switch( checkquest(7882,PLAYTIME) ) {
  691. case -1:
  692. break;
  693. case 0:
  694. case 1:
  695. mes "[Sally]";
  696. mes "Um, don't overdo it.";
  697. mes "Opportunities always come.";
  698. close;
  699. case 2:
  700. erasequest 7882;
  701. break;
  702. }
  703. switch( checkquest(7881,HUNTING) ) {
  704. case -1:
  705. mes "[Sally]";
  706. mes "There are several types of Minerals. The Minerals we want to investigate this time are ^4d4dff" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "^000000.";
  707. mes "Let's collect the data needed for research while controlling the number of individuals!";
  708. next;
  709. if (select( "Received a request", "Rejected" ) == 2) {
  710. mes "[Sally]";
  711. mes "It's ok.";
  712. mes "The world is wide and there are many adventurers.";
  713. close;
  714. }
  715. mes "[Sally]";
  716. mes "Then please take care of the ^4d4dff" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech mine dungeon^000000!";
  717. setquest 7881;
  718. close;
  719. case 0:
  720. case 1:
  721. mes "[Sally]";
  722. mes "" + getmonsterinfo("MINERAL_G", MOB_NAME) + " and " + getmonsterinfo("MINERAL_R", MOB_NAME) + " are found here on the 3rd floor of the Einbech Mine Dungeon.";
  723. mes "Be careful, they are dangerous.";
  724. close;
  725. case 2:
  726. end;
  727. }
  728. end;
  729. case 3:
  730. switch( checkquest(7884,PLAYTIME) ) {
  731. case -1:
  732. break;
  733. case 0:
  734. case 1:
  735. mes "[Sally]";
  736. mes "Um, don't overdo it.";
  737. mes "Opportunities always come.";
  738. close;
  739. case 2:
  740. erasequest 7884;
  741. break;
  742. }
  743. switch( checkquest(7883,HUNTING) ) {
  744. case -1:
  745. mes "[Sally]";
  746. mes "There are several types of Minerals. The Minerals we want to investigate this time are ^4d4dff" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + "s^000000.";
  747. mes "Let's collect the data needed for research while controlling the number of individuals!";
  748. next;
  749. if (select( "Received a request", "Rejected" ) == 2) {
  750. mes "[Sally]";
  751. mes "It's ok.";
  752. mes "The world is wide and there are many adventurers.";
  753. close;
  754. }
  755. mes "[Sally]";
  756. mes "Then please take care of the ^4d4dff" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + "^000000 that appear on the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
  757. setquest 7883;
  758. close;
  759. case 0:
  760. case 1:
  761. mes "[Sally]";
  762. mes "" + getmonsterinfo("MINERAL_W", MOB_NAME) + " and " + getmonsterinfo("MINERAL_P", MOB_NAME) + " are found here on the 3rd floor of the Einbech Mine Dungeon.";
  763. mes "Be careful, they are dangerous.";
  764. close;
  765. case 2:
  766. end;
  767. }
  768. end;
  769. case 4:
  770. switch( checkquest(7886,PLAYTIME) ) {
  771. case -1:
  772. break;
  773. case 0:
  774. case 1:
  775. mes "[Sally]";
  776. mes "Um, don't overdo it.";
  777. mes "Opportunities always come.";
  778. close;
  779. case 2:
  780. erasequest 7886;
  781. break;
  782. }
  783. switch( checkquest(7885,HUNTING) ) {
  784. case -1:
  785. mes "[Sally]";
  786. mes "If you look into an abyss, it is said that the abyss is eaten, not meowed.";
  787. mes "I think the popular name " + getmonsterinfo("ABYSSMAN", MOB_NAME) + " is also like that.";
  788. mes "So we need data from ^4d4dff" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "^000000.";
  789. next;
  790. if (select( "Received a request", "Rejected" ) == 2) {
  791. mes "[Sally]";
  792. mes "It's ok.";
  793. mes "The world is wide and there are many adventurers.";
  794. close;
  795. }
  796. mes "[Sally]";
  797. mes "Then, please take care of the ^4d4dff" + getmonsterinfo("ABYSSMAN", MOB_NAME) + "^000000 who appear in the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
  798. setquest 7885;
  799. close;
  800. case 0:
  801. case 1:
  802. mes "[Sally]";
  803. mes "The " + getmonsterinfo("ABYSSMAN", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
  804. mes "Be careful, they are dangerous.";
  805. close;
  806. case 2:
  807. end;
  808. }
  809. end;
  810. case 5:
  811. switch( checkquest(7888,PLAYTIME) ) {
  812. case -1:
  813. break;
  814. case 0:
  815. case 1:
  816. mes "[Sally]";
  817. mes "Um, don't overdo it.";
  818. mes "Opportunities always come.";
  819. close;
  820. case 2:
  821. erasequest 7888;
  822. break;
  823. }
  824. switch( checkquest(7887,HUNTING) ) {
  825. case -1:
  826. mes "[Sally]";
  827. mes "Specialized insects live in dark places like dungeons.";
  828. mes "The data to be collected this time are ^4d4dff" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + "^000000, also known as Mineworms.";
  829. mes "Is it very different from the normal Porcellio?";
  830. next;
  831. if (select( "Received a request", "Rejected" ) == 2) {
  832. mes "[Sally]";
  833. mes "It's ok.";
  834. mes "The world is wide and there are many adventurers.";
  835. close;
  836. }
  837. mes "[Sally]";
  838. mes "Then, please take care of the ^4d4dff" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + "^000000 who appear in the ^4d4dff3rd floor of the Einbech Mine Dungeon^000000!";
  839. setquest 7887;
  840. close;
  841. case 0:
  842. case 1:
  843. mes "[Sally]";
  844. mes "" + getmonsterinfo("PORCELLIO_W", MOB_NAME) + " and " + getmonsterinfo("JEWELIANT", MOB_NAME) + " are here on the 3rd floor of the Einbech Mine Dungeon.";
  845. mes "Be careful, they are dangerous.";
  846. close;
  847. case 2:
  848. end;
  849. }
  850. end;
  851. case 6:
  852. mes "[Sally]";
  853. mes "Um? That's to be a full-time employee!";
  854. mes "Not long ago, I joined Regenschrum as a trainee researcher, but this is what I was appointed for.";
  855. mes "It's about collecting data on mining monsters, so my evaluation depends on that.";
  856. next;
  857. mes "[Sally]";
  858. mes "And there were constant complaints from the headquarters asking what to do with the mine monsters.";
  859. mes "While collecting data, it also regulates the number of individuals. This evaluation is a win-win, a win-win!";
  860. close;
  861. }
  862. end;
  863. OnInit:
  864. // completed
  865. questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7879,HUNTING) == 2" );
  866. questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7881,HUNTING) == 2" );
  867. questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7883,HUNTING) == 2" );
  868. questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7885,HUNTING) == 2" );
  869. questinfo( QTYPE_QUEST2, QMARK_YELLOW, "checkquest(7887,HUNTING) == 2" );
  870. // timeout
  871. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7880,PLAYTIME) == 2" );
  872. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7882,PLAYTIME) == 2" );
  873. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7884,PLAYTIME) == 2" );
  874. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7886,PLAYTIME) == 2" );
  875. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "checkquest(7888,PLAYTIME) == 2" );
  876. // not started
  877. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7879) == 0 && checkquest(7880,PLAYTIME) == -1" );
  878. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7881) == 0 && checkquest(7882,PLAYTIME) == -1" );
  879. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7883) == 0 && checkquest(7884,PLAYTIME) == -1" );
  880. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7885) == 0 && checkquest(7886,PLAYTIME) == -1" );
  881. questinfo( QTYPE_DAILYQUEST, QMARK_YELLOW, "BaseLevel >= 180 && isbegin_quest(7887) == 0 && checkquest(7888,PLAYTIME) == -1" );
  882. end;
  883. }
  884. einbech,156,243,3 script Need help#exsk 1_M_SMITH,{
  885. mes "[Olive]";
  886. mes "The orders keep pouring in, and everyone who works there is running away... It's a big deal, a big deal.";
  887. close;
  888. }
  889. einbech,154,244,5 script Need help#exsk_ 4_F_JOB_BLACKSMITH,{
  890. mes "[Atri]";
  891. mes "After all, it would be faster for me to learn the sword! I've only been picking a pickaxe for 10 years, so I'll learn it soon.";
  892. close;
  893. }