mage.txt 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699
  1. //===== rAthena Script =======================================
  2. //= Mage Job Quest
  3. //===== By: ==================================================
  4. //= kobra_k88; L0ne_W0lf
  5. //===== Current Version: =====================================
  6. //= 2.0
  7. //===== Compatible With: =====================================
  8. //= rAthena Project
  9. //===== Description: =========================================
  10. //= [Official Conversion]
  11. //= Job quest for Mage classes
  12. //===== Additional Comments: =================================
  13. //= 1.0 Fully working.
  14. //= 1.1 Fixed input ingridients bug [Lupus]
  15. //= 1.2 Added instant job change for High Novice [Lupus]
  16. //= 1.3 Added Baby Class support [Lupus]
  17. //= 1.4 Optimised and moved first checker to Jfunc1-1 [massdriller]
  18. //= 1.5 Now saves/restores all quest skills [Lupus]
  19. //= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
  20. //= 1.7 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
  21. //= No longer uses function "F_ToHigh"
  22. //= 1.7a Fixed a "If" in the quest. (bugreport:489) [Samuray22]
  23. //= 1.8 Added Quest Log commands. [L0ne_W0lf]
  24. //= 1.9 Fixed an issue with completequest by adding checkquest. [Kisuka]
  25. //= 2.0 Moved "Dollshoi" and "Ponka-Hontas" NPCs. [Euphy]
  26. //============================================================
  27. geffen_in,164,124,4 script Mage Guildsman 123,{
  28. if (Upper == 1) {
  29. if (ADVJOB == Job_High_Wizard || ADVJOB == Job_Professor) {
  30. if (Class == Job_Novice_High) {
  31. mes "[Mage Guildsman]";
  32. mes "Whoa, long time no see! But weren't you supposed to be dead?";
  33. next;
  34. mes "[Mage Guildsman]";
  35. mes "Ah, you must have been reborn. Well, I'm glad to have you back.";
  36. next;
  37. if (!callfunc("F_CanChangeJob")) {
  38. mes "[Mage Guildsman]";
  39. mes "I'm sorry, but I don't think you're ready to learn magic yet. Why don't you go finish learning the Basic Skills first?";
  40. next;
  41. mes "[Mage Guildsman]";
  42. mes "Take your time. The more you learn, the more ready you'll be to learn magic again.";
  43. close;
  44. }
  45. mes "[Mage Guildsman]";
  46. mes "Well, since you have passed the Mage test once, I will not question your qualification. You want to have your magic skills back immediately, don't you?";
  47. next;
  48. skill "NV_TRICKDEAD",0,SKILL_PERM;
  49. jobchange Job_Mage_High;
  50. skill "MG_ENERGYCOAT",1,SKILL_PERM;
  51. mes "[Mage Guildsman]";
  52. mes "Wow, for some reason, you look way better than you did before. Anyway, I believe you will do a better job being a Mage as well.";
  53. close;
  54. }
  55. else {
  56. mes "[Mage Guildsman]";
  57. mes "Is there anything more I can help you with? If not, why don't you go test your skills? The world is waiting for you~!";
  58. close;
  59. }
  60. }
  61. else {
  62. mes "[Mage Guildsman]";
  63. mes "What, are you interested in the Mage guild? I didn't want to tell you this, but you don't belong here.";
  64. next;
  65. mes "[Mage Guildsman]";
  66. mes "I am not sure why you're still standing in front of me, but I can tell that you're not meant to be a Mage.";
  67. close;
  68. }
  69. }
  70. mes "[Mage Guildsman]";
  71. mes "Yo. What's up?";
  72. next;
  73. switch(select("I want to be a Mage.:Tell me the Requirements.:Pretty much nothing.")) {
  74. case 1:
  75. mes "[Mage Guildsman]";
  76. if (BaseJob == Job_Mage) {
  77. mes "Hey, haven't you realized? You're aleady a Mage, silly!";
  78. next;
  79. mes "[Mage Guildsman]";
  80. mes "One of these days you'll realize the power inside of you when you can make Fire with your mind!";
  81. close;
  82. }
  83. if (BaseJob != Job_Novice) {
  84. mes "Hey~ C'mon. Quit playing games. You can't be a Mage because you already have another Job.";
  85. close;
  86. }
  87. if (job_magician_q == 0) {
  88. mes "Wanna be a Mage, eh...?";
  89. if (Sex == SEX_MALE)
  90. mes "Hey, look at you! You're kinda cute~! Not my type though...";
  91. else {
  92. mes "Oooh, you're such a hot babe~!";
  93. mes "I like girls like you~";
  94. }
  95. next;
  96. mes "[Mage Guildsman]";
  97. mes "Right, you said that you wanna be a Mage? Alright then, please sign the Mage Application.";
  98. next;
  99. if (select("Sign Up.:Quit.") == 1) {
  100. mes "[Mage Guildsman]";
  101. mes "Okay. Sign right there. Oh, you're very good at spelling. Alright. So your name is... " + strcharinfo(0) + ".";
  102. next;
  103. mes "[Mage Guildsman]";
  104. mes "Now it's time for";
  105. mes "me to give you the test.";
  106. switch(rand(0,3)) {
  107. case 1:
  108. mes "Make me a ^3355FFMixed Solution No. 1^000000";
  109. mes "and bring it back to me.";
  110. set job_magician_q,1;
  111. break;
  112. case 2:
  113. mes "Make me a ^3355FFMixed Solution No. 2^000000";
  114. mes "and bring it back to me.";
  115. set job_magician_q,2;
  116. break;
  117. case 3:
  118. mes "Make me a ^3355FFMixed Solution No. 3^000000";
  119. mes "and bring it back to me.";
  120. set job_magician_q,3;
  121. break;
  122. default:
  123. mes "Make me a ^3355FFMixed Solution No. 4^000000";
  124. mes "and bring it back to me.";
  125. set job_magician_q,4;
  126. }
  127. next;
  128. getitem 1092,1; //Empty_Cylinder
  129. mes "[Mage Guildsman]";
  130. mes "You can find the neccessary ingredients inside the Guide Book in this Guild. So you better look up what you need before you go.";
  131. next;
  132. mes "[Mage Guildsman]";
  133. mes "Once you collect all the ingredients you, use the machine in the center of the room to mix the solution. Good luck!";
  134. close;
  135. }
  136. mes "[Mage Guildsman]";
  137. mes "Whaaaaat~?! Right after you tell me that you wanna become a Mage, you change your mind?! Be a bit more decisive!";
  138. close;
  139. }
  140. mes "Yeah? Ready...?";
  141. if (!callfunc("F_CanChangeJob")) {
  142. mes "Oh, what a bummer. You haven't met the requirements yet.";
  143. next;
  144. mes "[Mage Guildsman]";
  145. mes "Go back and reach Novice Job level 9 first. Don't forget that you also have to learn all of the Basic Skills before you come back.";
  146. close;
  147. }
  148. mes "" + strcharinfo(0) + "'s test was...";
  149. if (job_magician_q == 1)
  150. mes "Making Mixed Solution No. 1.";
  151. else if (job_magician_q == 2)
  152. mes "Making Mixed Solution No. 2.";
  153. else if (job_magician_q == 3)
  154. mes "Making Mixed Solution No. 3.";
  155. else
  156. mes "Making Mixed Solution No. 4.";
  157. next;
  158. mes "[Mage Guildsman]";
  159. mes "Okay, let me";
  160. mes "check if you made your";
  161. mes "solution accurately...";
  162. next;
  163. mes "[Mage Guildsman]";
  164. if (countitem(1071) == 0 && countitem(1085) == 0 && countitem(1086) == 0 && countitem(1087) == 0 && countitem(1090) == 0) {
  165. mes "Hey, where's the Solution";
  166. mes "I asked for...? I can't check it if you don't show it to me, right?";
  167. close;
  168. }
  169. else {
  170. if ((job_magician_q == 1 && countitem(1071) == 0) || (job_magician_q == 2 && countitem(1085) == 0) || (job_magician_q == 3 && countitem(1086) == 0) || (job_magician_q == 4 && countitem(1087) == 0)) {
  171. mes "Wait.";
  172. mes "This isn't the";
  173. mes "Solution I asked for!";
  174. next;
  175. mes "[Mage Guildsman]";
  176. if (job_magician_q == 1)
  177. mes "You're supposed to make Mixed Solution No. 1 and bring it back to me. Now go and try it again.";
  178. else if (job_magician_q == 2)
  179. mes "You're supposed to make Mixed Solution No. 2 and bring it back to me. Now go and try it again.";
  180. else if (job_magician_q == 3)
  181. mes "You're supposed to make Mixed Solution No. 3 and bring it back to me. Now go and try it again.";
  182. else
  183. mes "You're supposed to make Mixed Solution No. 4 and bring it back to me. Now go and try it again.";
  184. if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1
  185. else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2
  186. else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3
  187. else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4
  188. else delitem 1090,1; //Mage_Test_Etc
  189. close;
  190. }
  191. }
  192. if (countitem(1071) != 0) delitem 1071,1; //Mage_Test_1
  193. else if (countitem(1085) != 0) delitem 1085,1; //Mage_Test_2
  194. else if (countitem(1086) != 0) delitem 1086,1; //Mage_Test_3
  195. else if (countitem(1087) != 0) delitem 1087,1; //Mage_Test_4
  196. else delitem 1090,1; //Mage_Test_Etc
  197. mes "Hmm. I can see that you tried really hard. For a beginner's attempt, this is really good.";
  198. mes "Great work!";
  199. next;
  200. mes "[Mage Guildsman]";
  201. mes "Alright! I'm pleased to say that you've passed the Mage Test. I will transform you right away!";
  202. next;
  203. mes "[Mage Guildsman]";
  204. mes "*Ahem*";
  205. mes "Congratulations!";
  206. mes "You are now a Mage!";
  207. next;
  208. for ( .@quest_id = 1005; .@quest_id <= 1008; .@quest_id++ ) {
  209. if (isbegin_quest(.@quest_id) == 1)
  210. completequest .@quest_id;
  211. }
  212. callfunc "Job_Change",Job_Mage;
  213. callfunc "F_ClearJobVar";
  214. set Zeny,Zeny+50;
  215. mes "[Mage Guildsman]";
  216. mes "'Welcome to My World~'";
  217. mes "Heh heh, I just wanted to say that. You know, it's a quote from a well-known movie~";
  218. next;
  219. mes "[Mage Guildsman]";
  220. mes "Now that you're a Mage just like us, let's be friends, okay?";
  221. close;
  222. case 2:
  223. mes "[Mage Guildsman]";
  224. mes "Wanna be a Mage, eh?";
  225. if (Sex == SEX_MALE)
  226. mes "For a cutie like you, I'd be happy to explain the requirements!";
  227. else
  228. mes "I'd be happy to explain the requirements for a pretty girl like you!";
  229. next;
  230. mes "[Mage Guildsman]";
  231. mes "First of all, you have to reach Novice Job Level 10 and learn all of the Basic Skills. Then, you'll have to pass the Mage Test.";
  232. next;
  233. if (job_magician_q != 0) {
  234. mes "[Mage Guildsman]";
  235. mes "Your test is to";
  236. switch(job_magician_q) {
  237. case 1:
  238. mes "make me a";
  239. mes "^3355FFMixed Solution No. 1^000000";
  240. mes "and bring it back to me.";
  241. if (isbegin_quest(1005) == 0)
  242. setquest 1005;
  243. break;
  244. case 2:
  245. mes "make me a";
  246. mes "^3355FFMixed Solution No. 2^000000";
  247. mes "and bring it back to me.";
  248. if (isbegin_quest(1006) == 0)
  249. setquest 1006;
  250. break;
  251. case 3:
  252. mes "make me a";
  253. mes "^3355FFMixed Solution No. 3^000000";
  254. mes "and bring it back to me.";
  255. if (isbegin_quest(1007) == 0)
  256. setquest 1007;
  257. break;
  258. default:
  259. mes "make me a";
  260. mes "^3355FFMixed Solution No. 4^000000";
  261. mes "and bring it back to me.";
  262. if (isbegin_quest(1008) == 0)
  263. setquest 1008;
  264. break;
  265. }
  266. next;
  267. mes "[Mage Guildsman]";
  268. mes "You can look up the ingredients you'll need to make the Solution inside the Guide Book in this Guild.";
  269. }
  270. else {
  271. mes "[Mage Guildsman]";
  272. mes "You will be informed as to which Mixed Solution you will need to create after signing the application form.";
  273. }
  274. next;
  275. mes "[Mage Guildsman]";
  276. mes "Let me know when you are ready to become a Mage, alright?";
  277. close;
  278. case 3:
  279. mes "[Mage Guildsman]";
  280. mes "Nothing...?";
  281. close;
  282. }
  283. }
  284. geffen_in,164,112,4 script Mixing Machine 111,{
  285. mes "[Mixing Machine]";
  286. mes "This machine is the property of the Geffen Mage Guild and is used only for mixing solutions for magic purposes.";
  287. next;
  288. if (select("Use Machine.:Cancel.") == 1) {
  289. mes "[Mixing Machine]";
  290. mes "Choose the";
  291. mes "Solvent for";
  292. mes "the Solution.";
  293. next;
  294. switch(select("Payon Solution.:Morocc Solution.:No Solvent.")) {
  295. case 1:
  296. if (countitem(1089) == 0) {
  297. mes "[Mixing Machine]";
  298. mes "Error.";
  299. mes "Cannot find the item.";
  300. mes "Please check again.";
  301. mes "Process Halting.";
  302. close;
  303. }
  304. set .@mixitem2,1;
  305. break;
  306. case 2:
  307. if (countitem(1088) == 0) {
  308. mes "[Mixing Machine]";
  309. mes "Error.";
  310. mes "Cannot find the item.";
  311. mes "Please check again.";
  312. mes "Process Halting.";
  313. close;
  314. }
  315. set .@mixitem2,2;
  316. break;
  317. case 3:
  318. set .@mixitem2,0;
  319. break;
  320. }
  321. while (1) {
  322. if (.@progress == 2) {
  323. mes "[Mixing Machine]";
  324. if (.@mixitem1_1 != 0) mes "Jellopy: " + .@mixitem1_1 + " ea.";
  325. if (.@mixitem1_2 != 0) mes "Fluff: " + .@mixitem1_2 + " ea.";
  326. if (.@mixitem1_3 != 0) mes "Milk: " + .@mixitem1_3 + " ea.";
  327. if (.@mixitem2 == 0) mes "Solvent: None.";
  328. if (.@mixitem2 == 1) mes "Solvent: Payon Solution.";
  329. if (.@mixitem2 == 2) mes "Solvent: Morocc Solution.";
  330. next;
  331. mes "[Mixing Machine]";
  332. mes "Please choose if you wish to begin mixing, or to re-enter the number of items to be mixed.";
  333. next;
  334. switch(select("Begin Mixing.:Re-Enter Number of Items.:Reset.")) {
  335. case 1:
  336. mes "[Mixing Machine]";
  337. mes "Please place the items into the Mixing Receptacle. Make sure the item amounts are correct.";
  338. next;
  339. mes "[Mixing Machine]";
  340. mes "You cannot adjust or restore items once they are placed into the Mixing Receptacle.";
  341. next;
  342. mes "[Mixing Machine]";
  343. mes "If everything is correct, press the 'Mix' button when you are ready. Otherwise, press the 'Cancel' button.";
  344. next;
  345. if (select("Press 'Mix' Button.:Press 'Cancel' Button.") == 1) {
  346. mes "[Mixing Machine]";
  347. mes "Place items into the Mixing Receptacle now. Please wait.";
  348. next;
  349. mes "[Mixing Machine]";
  350. if (countitem(909) < .@mixitem1_1) {
  351. mes "Insufficient Jellopy.";
  352. mes "Please Check again.";
  353. mes "Process Halted.";
  354. close;
  355. }
  356. else if (countitem(914) < .@mixitem1_2) {
  357. mes "Insufficient Fluff.";
  358. mes "Please Check again.";
  359. mes "Process Halted.";
  360. close;
  361. }
  362. else if (countitem(519) < .@mixitem1_3) {
  363. mes "Insufficient Milk.";
  364. mes "Please Check again.";
  365. mes "Process Halted.";
  366. close;
  367. }
  368. else if (.@mixitem2 == 1 || .@mixitem2 == 2) {
  369. if (countitem(1089) == 0 && countitem(1088) == 0) {
  370. mes "Solution not found.";
  371. mes "Please Check again.";
  372. mes "Process Halted.";
  373. close;
  374. }
  375. }
  376. if (.@mixitem1_1 != 0) delitem 909,.@mixitem1_1; //Jellopy
  377. if (.@mixitem1_2 != 0) delitem 914,.@mixitem1_2; //Fluff
  378. if (.@mixitem1_3 != 0) delitem 519,.@mixitem1_3; //Milk
  379. if (.@mixitem2 == 1) delitem 1089,1; //Payon_Potion
  380. if (.@mixitem2 == 2) delitem 1088,1; //Morocc_Potion
  381. mes "Items are Ready.";
  382. mes "Close the Lid.";
  383. set .@progress,3;
  384. next;
  385. }
  386. break;
  387. case 2:
  388. set .@continue,0;
  389. next;
  390. break;
  391. case 3:
  392. set .@mixitem1_1,0;
  393. set .@mixitem1_2,0;
  394. set .@mixitem1_3,0;
  395. set .@progress,0;
  396. set .@continue,0;
  397. mes "[Mixing Machine]";
  398. mes "Reset Complete.";
  399. mes "Initiate again?";
  400. next;
  401. if (select("Yes.:No.") == 1)
  402. break;
  403. mes "[Mixing Machine]";
  404. mes "Process Halted.";
  405. mes "Thank you.";
  406. close;
  407. }
  408. if (.@progress == 3) break;
  409. }
  410. else if (.@progress == 1) {
  411. mes "[Mixing Machine]";
  412. mes "Nothing found.";
  413. next;
  414. }
  415. mes "[Mixing Machine]";
  416. mes "Select items to mix.";
  417. while(1) {
  418. switch(select("Jellopy.:Fluff.:Milk.:Ready to Mix.")) {
  419. case 1:
  420. while(1) {
  421. input .@input;
  422. if (.@input > 10000) {
  423. next;
  424. mes "[Mixing Machine]";
  425. mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
  426. next;
  427. }
  428. else {
  429. if (countitem(909) > 0) set .@mixitem1_1,.@mixitem1_1 + .@input;
  430. set .@progress,2;
  431. break;
  432. }
  433. }
  434. break;
  435. case 2:
  436. while(1) {
  437. input .@input;
  438. if (.@input > 10000) {
  439. next;
  440. mes "[Mixing Machine]";
  441. mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
  442. next;
  443. }
  444. else {
  445. if (countitem(914) > 0) set .@mixitem1_2,.@mixitem1_2 + .@input;
  446. set .@progress,2;
  447. break;
  448. }
  449. }
  450. break;
  451. case 3:
  452. while(1) {
  453. input .@input;
  454. if (.@input > 10000) {
  455. next;
  456. mes "[Mixing Machine]";
  457. mes "Error: Item limit exceeded. Please enter values less than 10,000 try again.";
  458. next;
  459. }
  460. else {
  461. if (countitem(519) > 0) set .@mixitem1_3,.@mixitem1_3 + .@input;
  462. set .@progress,2;
  463. break;
  464. }
  465. }
  466. break;
  467. case 4:
  468. if (.@progress != 2)
  469. set .@progress,1;
  470. set .@continue,1;
  471. next;
  472. }
  473. if (.@continue) break;
  474. }
  475. }
  476. mes "[Mixing Machine]";
  477. mes "Please enter the ";
  478. mes "Serial Number of";
  479. mes "the Magic Powder.";
  480. next;
  481. while(1) {
  482. input .@input;
  483. if (.@input < 1000 || .@input > 9999) {
  484. mes "[Mixing Machine]";
  485. if (.@input == 0) {
  486. mes "Do you want to skip this Menu?";
  487. next;
  488. if (select("Yes.:No.") == 1) {
  489. break;
  490. }
  491. }
  492. else {
  493. mes "Invalid Serial Number.";
  494. mes "Please try again.";
  495. next;
  496. }
  497. }
  498. else {
  499. mes "[Mixing Machine]";
  500. mes "The Serial Number is #" + .@input + ", correct?";
  501. next;
  502. if (select("Confirm.:Cancel.") == 1) {
  503. if (.@input == 8472)
  504. set .@magic_powder,1;
  505. else if (.@input == 3735)
  506. set .@magic_powder,2;
  507. else if (.@input == 2750)
  508. set .@magic_powder,3;
  509. else if (.@input == 5429)
  510. set .@magic_powder,4;
  511. else
  512. set .@magic_powder,5;
  513. }
  514. break;
  515. }
  516. }
  517. mes "[Mixing Machine]";
  518. mes "Choose a";
  519. mes "Catalyst Stone.";
  520. next;
  521. switch(select("Yellow Gemstone.:Red Gemstone.:Blue Gemstone.:1carat Diamond.:Skip.")) {
  522. case 1: set .@mixitem3,1; break;
  523. case 2: set .@mixitem3,2; break;
  524. case 3: set .@mixitem3,3; break;
  525. case 4: set .@mixitem3,4; break;
  526. case 5: break;
  527. }
  528. mes "[Mixing Machine]";
  529. mes "All Set.";
  530. mes "Initiating";
  531. mes "Mixing process.";
  532. mes "Please Wait.";
  533. next;
  534. mes "[Mixing Machine]";
  535. mes "- Proverb of the Day -";
  536. switch(rand(1,5)) {
  537. case 1:
  538. mes "An Eye for an Eye: When you take from a person, you must replace or repay in some way.";
  539. break;
  540. case 2:
  541. mes "Credibility is a Man's Currency: There's a value in genuine trust that cannot be measured.";
  542. break;
  543. case 3:
  544. mes "What Goes Around Comes Around: Ultimately, you will be treated in the way you treat others.";
  545. mes "It means 'When you harm Another you will be harmed by him in an unavoidable situation'.";
  546. break;
  547. case 4:
  548. mes "A good neighbor is better than a distant brother: When you need help, you can count on those close to you.";
  549. break;
  550. default:
  551. mes "Birds of a Feather Flock Together: You can look at a person's friends as an indicator of their character.";
  552. }
  553. next;
  554. if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 1 && .@mixitem2 == 1 && .@mixitem3 == 1 && .@magic_powder == 1) {
  555. mes "[Mixing Machine]";
  556. mes "Mage Test Solution No. 1.";
  557. getitem 1071,1; //Mage_Test_1
  558. next;
  559. }
  560. else if (.@mixitem1_1 == 3 && .@mixitem1_2 == 1 && .@mixitem1_3 == 1 && .@mixitem2 == 0 && .@mixitem3 == 2 && .@magic_powder == 2) {
  561. mes "[Mixing Machine]";
  562. mes "Mage Test Solution No. 2.";
  563. getitem 1085,1; //Mage_Test_2
  564. next;
  565. }
  566. else if (.@mixitem1_1 == 6 && .@mixitem1_2 == 1 && .@mixitem1_3 == 0 && .@mixitem2 == 1 && .@mixitem3 == 3 && .@magic_powder == 3) {
  567. mes "[Mixing Machine]";
  568. mes "Mage Test Solution No. 3.";
  569. getitem 1086,1; //Mage_Test_3
  570. next;
  571. }
  572. else if (.@mixitem1_1 == 2 && .@mixitem1_2 == 3 && .@mixitem1_3 == 0 && .@mixitem2 == 2 && .@mixitem3 == 4 && .@magic_powder == 4) {
  573. mes "[Mixing Machine]";
  574. mes "Mage Test Solution No. 4.";
  575. getitem 1087,1; //Mage_Test_4
  576. next;
  577. }
  578. else {
  579. mes "[Mixing Machine]";
  580. mes "Unexpected";
  581. mes "Error Occurred.";
  582. getitem 1090,1; //Mage_Test_Etc
  583. next;
  584. }
  585. mes "[Mixing Machine]";
  586. mes "Mixing Complete.";
  587. mes "Thank you.";
  588. close;
  589. }
  590. close;
  591. }
  592. // The Morocc Solution and Payon Solution traders
  593. // are also used in the Sage skill quests, and have
  594. // been moved to npc/quests/mage_solution.txt.
  595. //
  596. // pay_arche,122,100,0 script Dollshoi 88,{}
  597. // moc_ruins,91,150,0 script Ponka-Hontas 93,{}
  598. geffen_in,177,112,4 script Bookshelf 111,{
  599. mes "[Guide Book]";
  600. mes "This Guide Book is the property of the Geffen Mage Association. Please handle with care.";
  601. next;
  602. switch(select("Solution No. 1.:Solution No. 2.:Solution No. 3.:Solution No. 4.:Close.")) {
  603. case 1:
  604. mes "[Mage Test Solution No. 1]";
  605. mes "* Ingredients List *";
  606. mes "2 Jellopy";
  607. mes "3 Fluff";
  608. mes "1 Milk";
  609. next;
  610. mes "[Mage Test Solution No. 1]";
  611. mes "* Solvent Agent *";
  612. mes "Payon Solution";
  613. mes "Where to Find:";
  614. mes "A small spring in Payon, the Archer Village.";
  615. next;
  616. mes "[Mage Test Solution No. 1]";
  617. mes "* Magic Power Serial Code *";
  618. mes "8472";
  619. next;
  620. mes "[Mage Test Solution No. 1]";
  621. mes "* Catalyst *";
  622. mes "Yellow Gemstone";
  623. mes "(Provided by";
  624. mes "Mixing Machine)";
  625. close;
  626. case 2:
  627. mes "[Mage Test Solution No. 2]";
  628. mes "* Ingredients List *";
  629. mes "3 Jellopy";
  630. mes "1 Fluff";
  631. mes "1 Milk";
  632. next;
  633. mes "[Mage Test Solution No. 2]";
  634. mes "* Solvent Agent *";
  635. mes "None";
  636. next;
  637. mes "[Mage Test Solution No. 2]";
  638. mes "* Magic Power Serial Code *";
  639. mes "3735";
  640. next;
  641. mes "[Mage Test Solution No. 2]";
  642. mes "* Catalyst *";
  643. mes "Red Gemstone";
  644. mes "(Provided by";
  645. mes "Mixing Machine)";
  646. close;
  647. case 3:
  648. mes "[Mage Test Solution No. 3]";
  649. mes "* Ingredients List *";
  650. mes "6 Jellopy";
  651. mes "1 Fluff";
  652. next;
  653. mes "[Mage Test Solution No. 3]";
  654. mes "* Solvent Agent *";
  655. mes "Payon Solution";
  656. mes "Where to Find:";
  657. mes "A small spring in Payon, the Archer Village.";
  658. next;
  659. mes "[Mage Test Solution No. 3]";
  660. mes "* Magic Power Serial Code *";
  661. mes "2750";
  662. next;
  663. mes "[Mage Test Solution No. 3]";
  664. mes "* Catalyst *";
  665. mes "Blue Gemstone";
  666. mes "(Provided by";
  667. mes "Mixing Machine)";
  668. close;
  669. case 4:
  670. mes "[Mage Test Solution No. 4]";
  671. mes "* Ingredients List *";
  672. mes "2 Jellopy";
  673. mes "3 Fluff";
  674. next;
  675. mes "[Mage Test Solution No. 4]";
  676. mes "* Solvent Agent *";
  677. mes "Morocc Solution";
  678. mes "Where to Find:";
  679. mes "A small spring near entrance of pyramid in Morocc.";
  680. next;
  681. mes "[Mage Test Solution No. 4]";
  682. mes "* Magic Power Serial Code *";
  683. mes "5429";
  684. next;
  685. mes "[Mage Test Solution No. 4]";
  686. mes "* Catalyst *";
  687. mes "1 carat Diamond";
  688. mes "(Provided by";
  689. mes "Mixing Machine)";
  690. close;
  691. }
  692. close;
  693. }