swordman.txt 26 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648
  1. //===== eAthena Script =======================================
  2. //= Swordsman Job Quest
  3. //===== By: ==================================================
  4. //= kobra_k88; L0ne_W0lf
  5. //===== Current Version: =====================================
  6. //= 2.3
  7. //===== Compatible With: =====================================
  8. //= eAthena SVN
  9. //===== Description: =========================================
  10. //= [Aegis Conversion]
  11. //= Job quest for Swordman classes
  12. //= Uses Job_sword1 as opposed to sword_1-1 -> sword_3-1.
  13. //= EXPLOITABLE in a sense because while the sword_x-1 maps
  14. //= are marked as "inside" by the client, job_sword1 is not.
  15. //= giving players FREE camera rotation while doing the job quest.
  16. //===== Additional Comments: =================================
  17. //= Fully working. I have created a custom warp to get into the test room so disable
  18. //= the one in your warp script or scripts. It is this warp: "izlude_in",40,170.
  19. //= 1.1 Added instant job change for High Novice [Lupus]
  20. //= 1.3 Added Baby Class support [Lupus]
  21. //= 1.4 Changed the timing system to initnpctimer, now you do get warnings about time
  22. //= and are limited to 7min to complete the quest [Fredzilla]
  23. //= 1.5 Optimised and moved first checker to Jfunc1-1 [massdriller]
  24. //= 1.5.1 Fixed possible EXP abuse [Lupus]
  25. //= 1.5.2 Now saves/restores all quest skills [Lupus]
  26. //= 1.5.3 Removed Duplicates [Silent]
  27. //= 1.6 Merged back JFunc, CHANGED NUMBERS TO CONSTANTS [Lupus]
  28. //= 1.7 changed location from its clone to the original [Lupus]
  29. //= 1.7.1 Fixed warp on timeout [KarLaeda]
  30. //= 1.8 Rescripted to Aegis 10.3 stadards. [L0ne_W0lf]
  31. //= Removed "green" traps, quest is no longer timed.
  32. //= No longer uses function "F_ToHigh"
  33. //= 1.9 Dialog is official, but the Script is now custom as far as maps go. [L0ne_W0lf]
  34. //= 1.9b Fixed usage of wrong jobchange func messing up baby classes [ultramage]
  35. //= 2.0 Corrected NPC names to fall within proper resctrictions. [L0ne_W0lf]
  36. //= 2.1 Fixed mistake in condition check. [L0ne_W0lf]
  37. //= 2.2 Warp portals dont end with ; [Yommy]
  38. //= 2.3 Added Quest Log commands. [L0ne_W0lf]
  39. //============================================================
  40. izlude_in,74,172,4 script Swordman#swd_1 119,{
  41. if (Upper == 1) {
  42. if (Class == Job_Novice_High && (ADVJOB == Job_Lord_Knight || ADVJOB == Job_Paladin)) {
  43. mes "[Swordman]";
  44. mes "It...";
  45. mes "Can't be...";
  46. mes "You've been reborn, haven't you?";
  47. next;
  48. mes "[Swordman]";
  49. mes "I see you're retreading the path of the Swordman! Once you've gotten used to brandishing a sword, you can never go back!!";
  50. next;
  51. if (getskilllv("NV_BASIC") < 9) {
  52. mes "[Swordman]";
  53. mes "Hmm? Ah, you must first master the Basic Skills before you are ready to become a Swordman.";
  54. next;
  55. mes "[Swordman]";
  56. mes "Come back to me when you have finished learning the Basic Novice Skills.";
  57. close;
  58. }
  59. mes "[Swordman]";
  60. mes "Excellent! Let me promote you to a Swordman right away!";
  61. next;
  62. skill 143,0,0;
  63. jobchange Job_Swordman_High;
  64. skill 144,1,0;
  65. skill 145,1,0;
  66. skill 146,1,0;
  67. mes "[Swordman]";
  68. mes "Hmm... You look like a well-experienced Swordman. Still, I'm sure that you must train to improve your skills and gain strength!";
  69. close;
  70. }
  71. else {
  72. mes "[Swordman]";
  73. mes "Hm...?";
  74. mes "You're a reborn";
  75. mes "warrior, aren't you?";
  76. next;
  77. mes "[Swordman]";
  78. mes "Hmmm...";
  79. mes "It seems that being";
  80. mes "a Swordman is not part";
  81. mes "of your destiny. I'm sorry,";
  82. mes "but it seems there is nothing";
  83. mes "I can do for you.";
  84. close;
  85. }
  86. }
  87. mes "[Swordman]";
  88. mes "Welcome to the";
  89. mes "Swordman Association!";
  90. next;
  91. mes "[Swordman]";
  92. mes "So...";
  93. mes "What business";
  94. mes "brings you to us?";
  95. next;
  96. switch(select("Job Change:About Swordman.:About the Job requirements.:Cancel.")) {
  97. case 1:
  98. if (BaseJob == Job_Swordman) {
  99. mes "[Swordman]";
  100. mes "Job change? Muhahaha! But you're already a Swordman! Be proud and be strong!";
  101. close;
  102. }
  103. else if (BaseJob != Job_Novice) {
  104. mes "[Swordman]";
  105. mes "Haha! Oh boy. I'm flattered, but you already have another job! Still, I can't blame you...";
  106. close;
  107. }
  108. if (job_sword_q == 0) {
  109. mes "[Swordman]";
  110. mes "So you wish to become a proud Swordman? By all means, please sign up!";
  111. next;
  112. if (select("Sign up.:Cancel.") == 1) {
  113. savepoint "izlude_in",65,165;
  114. set job_sword_q,1;
  115. setquest 1014;
  116. mes "[Swordman]";
  117. mes "Ah, yes. Your application will be reviewed as soon as possible.";
  118. next;
  119. mes "[Swordman]";
  120. mes "If you have already met the requirements, you can take an interview right now. Would you like to?";
  121. next;
  122. if (select("Yes.:No.") == 1) {
  123. mes "[Swordman]";
  124. mes "Good, good.";
  125. mes "Now, let's see...";
  126. next;
  127. }
  128. else {
  129. mes "[Swordman]";
  130. mes "Alright then. Feel free to come back whenever you are ready. All you ahve to do now is meet our requirements. Good luck to you.";
  131. close;
  132. }
  133. }
  134. else {
  135. mes "[Swordman]";
  136. mes "Hm? Alright, come back whenever you change your mind. The world can always use another Swordman!";
  137. close;
  138. }
  139. }
  140. mes "[Swordman]";
  141. if (getskilllv("NV_BASIC") < 9) {
  142. mes "Hm, you still haven't learned all of the Basic Skills. You need to do that before you can become a Swordman.";
  143. next;
  144. mes "[Swordman]";
  145. mes "Check the requirements for job change again, and come back when you are ready.";
  146. close;
  147. }
  148. else if (job_sword_q <= 3) {
  149. mes "Hm, you've learned all of the Basic Skills but didn't take the test yet. You must first pass the exam before you can change your job to Swordman.";
  150. next;
  151. mes "[Swordman]";
  152. mes "Enter the room to my right so that you can take the test. You'll need to speak to my right so you can enter the examination area.";
  153. close;
  154. }
  155. else if (job_sword_q == 4) {
  156. mes "Hahaha! Congratulations! Now you are fully qualified to be a real Swordman! I will transform you right away!";
  157. next;
  158. callfunc "Job_Change",Job_Swordman;
  159. set job_sword_q,0;
  160. completequest 1014;
  161. mes "[Swordman]";
  162. mes "Once again, congratulations. I expect that you will be a good representative of the Swordman Association.";
  163. close;
  164. }
  165. case 2:
  166. mes "[Swordman]";
  167. mes "So you wish to know more about the mighty Swordman job? Well, then...";
  168. next;
  169. mes "[Swordman]";
  170. mes "Amongst the First Class jobs, the Swordman is the best melee fighter for three reasons.";
  171. mes "There are 3 reasons why Swordy is the best to approch a fight!";
  172. next;
  173. mes "[Swordman]";
  174. mes "First, Swordman has the benefit of additional HP. Second, Swordman generally have access to a wider selection fo weapons than the other First Class jobs.";
  175. next;
  176. mes "[Swordman]";
  177. mes "And third, most of the Swordman skills are crushing physical attacks! In my opinion, being a Swordman is the best job ever!";
  178. close;
  179. case 3:
  180. mes "[Swordman]";
  181. mes "Hmmm...";
  182. if (BaseJob != Job_Novice) {
  183. if (BaseJob == Job_Swordman)
  184. mes "But there's no need to tell you the requirements. You've met them and already became a Swordman! Well, anyway...";
  185. else
  186. mes "It's too late for you to become a Swordman. You already have another job. Still, there's no harm in telling you...";
  187. }
  188. next;
  189. mes "[Swordman]";
  190. mes "First, you must learn all 9 of the Basic Skills. If you can't complete this requirement, you won't be able to change to any job.";
  191. next;
  192. mes "[Swordman]";
  193. mes "Second, you must pass the Swordman Test. Inquire the Test Manager located in the waiting room of the Swordman Test.";
  194. next;
  195. mes "[Swordman]";
  196. mes "If you can complete these 2 requirements, you can change to a Swordman anytime you want.";
  197. close;
  198. case 4:
  199. mes "[Swordman]";
  200. mes "Ha ha ha!";
  201. mes "Ah, youth!";
  202. close;
  203. }
  204. }
  205. izlude_in,62,170,6 script Swordman#swd_2 85,{
  206. mes "[Swordman]";
  207. if (BaseJob == Job_Swordman) {
  208. mes "Sorry guy, but I can only allow Novices to enter the Test Hall.";
  209. close;
  210. }
  211. else if (BaseJob != Job_Novice) {
  212. mes "Who the hell are you?! Nobody, other than Novices, is permitted to come in here!";
  213. close;
  214. }
  215. else if (getskilllv("NV_BASIC") < 9) {
  216. mes "Stop! I can't let you in until you learn all of the Basic Skills. The Test Hall isn't for goofing off!";
  217. close;
  218. }
  219. else if (job_sword_q == 4) {
  220. mes "Hey. You need to talk to the Swordman in the center of the room, not me.";
  221. close;
  222. }
  223. else if (job_sword_q == 0) {
  224. mes "Stop! If you want to take the Swordman Test, you'll need to fill out an application first.";
  225. next;
  226. mes "[Swordman]";
  227. mes "The Swordman in the center of the room can help you with that, got it?";
  228. close;
  229. }
  230. else {
  231. savepoint "izlude_in",65,165;
  232. warp "izlude_in",39,170;
  233. end;
  234. }
  235. }
  236. izlude_in,30,175,4 script Swordman#swd_3 92,{
  237. mes "[Swordman]";
  238. mes "I will tell you about the Test! Listen carefully, I won't repeat myself.";
  239. next;
  240. mes "[Swordman]";
  241. mes "The purpose of this test is to confirm whether or not you are qualified to be a Swordman. As you know, a Swordman needs physical strength and spirit!";
  242. next;
  243. mes "[Swordman]";
  244. mes "Without those, you won't be able to become a Swordman. Now, the conditions for completing this test are very simple.";
  245. next;
  246. mes "[Swordman]";
  247. mes "You will travel through three courses and must reach the final checkpoint within ^FF000010 minutes^000000.";
  248. next;
  249. mes "[Swordman]";
  250. mes "If you choose to 'Surrender,' or if you run out of time, you will not pass the test.";
  251. next;
  252. mes "[Swordman]";
  253. mes "If you find that you are not strong enough to pass the test, head to the entrance of the course and talk to the checkpoint manager.";
  254. next;
  255. mes "[Swordman]";
  256. mes "As you travel through the three courses, you may fall to a random, underground area. The course is designed so that you can still find your way back.";
  257. next;
  258. mes "[Swordman]";
  259. mes "However, be careful, as this will waste your time! Godspeed to you.";
  260. close;
  261. }
  262. izlude_in,30,163,0 script Test Hall Staff#swd_1 105,{
  263. mes "[Test Hall Staff]";
  264. if (BaseJob == Job_Swordman) {
  265. mes "Hm? How did you get inside? You're not supposed to be in here, so please leave now.";
  266. close2;
  267. warp "izlude_in",66,170;
  268. end;
  269. }
  270. else if (BaseJob != Job_Novice) {
  271. mes "Who are you?! This place is for the Swordman Test! You're not allowed to be in here! Leave now!";
  272. close2;
  273. warp "izlude_in",66,170;
  274. end;
  275. }
  276. if (job_sword_q == 1) {
  277. mes "So are you the one who wants to be a Swordman? Alright! You look reliable!";
  278. next;
  279. mes "[Test Hall Staff]";
  280. mes "Try to relax and do your best. This course isn't so difficult.";
  281. set job_sword_q,2;
  282. }
  283. else if (job_sword_q == 2) {
  284. mes "Retesting? Try not to worry about it. It's good that you don't back down from a challenge! Here, take these and cheer up!";
  285. getitem 512,5; //Apple
  286. set job_sword_q,3;
  287. }
  288. else if (job_sword_q == 3)
  289. mes "Don't ever give up! Now retesting!";
  290. close2;
  291. warp "job_sword1",10,245;
  292. end;
  293. }
  294. // Examination Courses NPCs
  295. //============================================================
  296. // 1-1
  297. job_sword1,230,245,2 script Medic#swd_1 105,{
  298. callfunc "F_JobSwdMedic","1st";
  299. }
  300. job_sword1,230,242,2 script Test Hall Staff#swd_2 105,{
  301. callfunc "F_JobSwdStaff",1;
  302. }
  303. job_sword1,230,207,2 script Medic#2swd_2 105,{
  304. callfunc "F_JobSwdMedic","2nd";
  305. }
  306. job_sword1,230,204,2 script Test Hall Staff#2swd_3 105,{
  307. callfunc "F_JobSwdStaff",1;
  308. }
  309. job_sword1,223,167,2 script Mae#swd_1_success 92,{
  310. mapannounce "job_sword1","Applicant " + strcharinfo(0) + ". You successfully passed the test.",bc_map;
  311. set job_sword_q,4;
  312. mes "[Mae]";
  313. mes "I sencerely congratulate you for passing the test!";
  314. mes "I already sent your test result to the Job Department.Please inquire at the Officer in Centre.Thank you.";
  315. close2;
  316. warp "izlude_in",66,173;
  317. end;
  318. }
  319. // Examination Course Functions
  320. //============================================================
  321. function script F_JobSwdMedic {
  322. percentheal 100,0;
  323. mes "[Medic]";
  324. mes "This is the "+getarg(0)+" check point!Cheer up!";
  325. close;
  326. }
  327. function script F_JobSwdStaff {
  328. mes "[Test Hall Staff]";
  329. mes "Do you surrender?";
  330. next;
  331. if (select("Yes.:No.") == 1) {
  332. mapannounce "job_sword1","Applicant " + strcharinfo(0) + " quit the test.",bc_map;
  333. warp "izlude_in",65,165;
  334. end;
  335. }
  336. mes "[Test Hall Staff]";
  337. mes "Bravo! Go for it again!";
  338. close;
  339. }
  340. function script F_JobSwdTestStaff {
  341. OnTouch:
  342. mes "[Test Hall Staff]";
  343. mes "Applicant " + strcharinfo(0) + ". Do you surrender??";
  344. next;
  345. if (select("Yes.:No.") == 1) {
  346. mapannounce "job_sword1","Applicant " + strcharinfo(0) + " quit the test..",bc_map;
  347. warp "izlude_in",65,165;
  348. end;
  349. }
  350. warp "job_sword1",getarg(0),getarg(1);
  351. end;
  352. }
  353. function script F_JobSwdTestStaff2 {
  354. OnTouch:
  355. mapannounce "job_sword1","Applicant " + strcharinfo(0) + ". Pass the "+getarg(0)+" course.",bc_map;
  356. warp "job_sword1",getarg(1),getarg(2);
  357. end;
  358. }
  359. // Examination Course 1
  360. //============================================================
  361. job_sword1,223,243,0 warp checkp1-2#swd_1 1,1,job_sword1,11,206
  362. job_sword1,223,205,0 warp checkp2-3#swd_1 1,1,job_sword1,11,168
  363. job_sword1,7,245,0 script Test Hall Staff#swd_4 45,1,3,{
  364. callfunc "F_JobSwdTestStaff",10,245;
  365. }
  366. job_sword1,8,207,0 script Test Hall Staff#swd_5 45,1,6,{
  367. callfunc "F_JobSwdTestStaff",11,207;
  368. }
  369. job_sword1,8,169,0 script Test Hall Staff#swd_6 45,1,6,{
  370. callfunc "F_JobSwdTestStaff",11,169;
  371. }
  372. job_sword1,192,244,0 script Test Hall Staff#swd_7 45,1,3,{
  373. callfunc "F_JobSwdTestStaff2","1st",215,244;
  374. }
  375. job_sword1,193,207,0 script Test Hall Staff#swd_8 45,1,3,{
  376. callfunc "F_JobSwdTestStaff2","2nd",215,205;
  377. warp "job_sword1",215,205;
  378. }
  379. job_sword1,193,168,0 script Test Hall Staff#swd_9 45,1,3,{
  380. callfunc "F_JobSwdTestStaff2","3rd",215,167;
  381. }
  382. // Pitfalls (Set 1)
  383. //============================================================
  384. job_sword1,65,117,0 warp ����01-01 1,1,job_sword1,10,245
  385. job_sword1,98,27,0 warp ����02-01 1,1,job_sword1,11,207
  386. job_sword1,161,27,0 warp ����02-02 1,1,job_sword1,11,207
  387. job_sword1,239,117,0 warp ����03-01 1,1,job_sword1,11,169
  388. job_sword1,16,251,0 script 1_blank_1_a::SwdTrap1 -1,0,1,{
  389. OnTouch:
  390. switch(rand(1,5)) {
  391. case 1: warp "job_sword1",65,56; end;
  392. case 2: warp "job_sword1",29,26; end;
  393. case 3: warp "job_sword1",43,16; end;
  394. case 4: warp "job_sword1",23,112; end;
  395. case 5: warp "job_sword1",58,83; end;
  396. }
  397. }
  398. job_sword1,19,251,0 duplicate(SwdTrap1) 1_blank_1_b -1,0,1
  399. job_sword1,17,250,0 duplicate(SwdTrap1) 1_blank_1_c -1,1,0
  400. job_sword1,16,238,0 duplicate(SwdTrap1) 1_blank_2_a -1,0,1
  401. job_sword1,19,238,0 duplicate(SwdTrap1) 1_blank_2_b -1,0,1
  402. job_sword1,17,239,0 duplicate(SwdTrap1) 1_blank_2_c -1,0,1
  403. job_sword1,28,247,0 duplicate(SwdTrap1) 1_blank_3_a -1,4,0
  404. job_sword1,33,245,0 duplicate(SwdTrap1) 1_blank_3_b -1,0,2
  405. job_sword1,29,242,0 duplicate(SwdTrap1) 1_blank_3_c -1,4,0
  406. job_sword1,24,244,0 duplicate(SwdTrap1) 1_blank_3_d -1,0,2
  407. job_sword1,38,251,0 duplicate(SwdTrap1) 1_blank_4_a -1,0,1
  408. job_sword1,41,251,0 duplicate(SwdTrap1) 1_blank_4_b -1,0,1
  409. job_sword1,39,250,0 duplicate(SwdTrap1) 1_blank_4_c -1,1,0
  410. job_sword1,38,238,0 duplicate(SwdTrap1) 1_blank_5_a -1,0,1
  411. job_sword1,41,238,0 duplicate(SwdTrap1) 1_blank_5_b -1,0,1
  412. job_sword1,39,239,0 duplicate(SwdTrap1) 1_blank_5_c -1,1,0
  413. job_sword1,54,251,0 duplicate(SwdTrap1) 1_blank_6_a -1,0,1
  414. job_sword1,71,251,0 duplicate(SwdTrap1) 1_blank_6_b -1,0,1
  415. job_sword1,62,250,0 duplicate(SwdTrap1) 1_blank_6_c -1,9,0
  416. job_sword1,62,247,0 duplicate(SwdTrap1) 1_blank_7_a -1,8,0
  417. job_sword1,71,244,0 duplicate(SwdTrap1) 1_blank_7_b -1,0,2
  418. job_sword1,63,242,0 duplicate(SwdTrap1) 1_blank_7_c -1,8,0
  419. job_sword1,54,244,0 duplicate(SwdTrap1) 1_blank_7_d -1,0,2
  420. job_sword1,54,238,0 duplicate(SwdTrap1) 1_blank_8_a -1,0,1
  421. job_sword1,71,238,0 duplicate(SwdTrap1) 1_blank_8_b -1,0,1
  422. job_sword1,62,239,0 duplicate(SwdTrap1) 1_blank_8_c -1,9,0
  423. job_sword1,102,247,0 duplicate(SwdTrap1) 1_blank_9_a -1,2,0
  424. job_sword1,105,245,0 duplicate(SwdTrap1) 1_blank_9_b -1,0,2
  425. job_sword1,103,242,0 duplicate(SwdTrap1) 1_blank_9_c -1,2,0
  426. job_sword1,100,244,0 duplicate(SwdTrap1) 1_blank_9_d -1,0,2
  427. job_sword1,156,249,0 duplicate(SwdTrap1) 1_blank_10_a -1,14,0
  428. job_sword1,156,248,0 duplicate(SwdTrap1) 1_blank_10_b -1,14,0
  429. job_sword1,170,249,0 duplicate(SwdTrap1) 1_blank_10_c -1,1,0
  430. job_sword1,170,248,0 duplicate(SwdTrap1) 1_blank_10_d -1,1,0
  431. job_sword1,156,245,0 duplicate(SwdTrap1) 1_blank_11_a -1,14,0
  432. job_sword1,156,244,0 duplicate(SwdTrap1) 1_blank_11_b -1,14,0
  433. job_sword1,170,245,0 duplicate(SwdTrap1) 1_blank_11_c -1,1,0
  434. job_sword1,170,244,0 duplicate(SwdTrap1) 1_blank_11_d -1,1,0
  435. job_sword1,156,241,0 duplicate(SwdTrap1) 1_blank_12_a -1,14,0
  436. job_sword1,156,240,0 duplicate(SwdTrap1) 1_blank_12_b -1,14,0
  437. job_sword1,170,241,0 duplicate(SwdTrap1) 1_blank_12_c -1,1,0
  438. job_sword1,170,240,0 duplicate(SwdTrap1) 1_blank_12_d -1,1,0
  439. job_sword1,180,251,0 duplicate(SwdTrap1) 1_blank_13_a -1,0,1
  440. job_sword1,183,251,0 duplicate(SwdTrap1) 1_blank_13_b -1,0,1
  441. job_sword1,181,250,0 duplicate(SwdTrap1) 1_blank_13_c -1,1,0
  442. job_sword1,180,238,0 duplicate(SwdTrap1) 1_blank_14_a -1,0,1
  443. job_sword1,183,238,0 duplicate(SwdTrap1) 1_blank_14_b -1,0,1
  444. job_sword1,181,239,0 duplicate(SwdTrap1) 1_blank_14_c -1,1,0
  445. job_sword1,193,245,0 warp 1_rest 1,3,job_sword1,215,244
  446. // Pitfalls (Set 2)
  447. //============================================================
  448. job_sword1,56,212,0 script 2_blank_1_a::SwdTrap2 -1,40,0,{
  449. OnTouch:
  450. switch(rand(1,5)) {
  451. case 1: warp "job_sword1",162,120; end;
  452. case 2: warp "job_sword1",94,120; end;
  453. case 3: warp "job_sword1",94,85; end;
  454. case 4: warp "job_sword1",162,85; end;
  455. case 5: warp "job_sword1",130,47; end;
  456. }
  457. }
  458. job_sword1,95,212,0 duplicate(SwdTrap2) 2_blank_1_b -1,2,0
  459. job_sword1,56,210,0 duplicate(SwdTrap2) 2_blank_2_a -1,40,0
  460. job_sword1,95,210,0 duplicate(SwdTrap2) 2_blank_2_b -1,2,0
  461. job_sword1,16,206,0 duplicate(SwdTrap2) 2_blank_2_c -1,0,3
  462. job_sword1,97,206,0 duplicate(SwdTrap2) 2_blank_2_d -1,0,3
  463. job_sword1,56,203,0 duplicate(SwdTrap2) 2_blank_2_e -1,40,0
  464. job_sword1,95,203,0 duplicate(SwdTrap2) 2_blank_2_f -1,2,0
  465. job_sword1,56,201,0 duplicate(SwdTrap2) 2_blank_3_a -1,40,0
  466. job_sword1,95,201,0 duplicate(SwdTrap2) 2_blank_3_b -1,2,0
  467. job_sword1,113,212,0 duplicate(SwdTrap2) 2_blank_4_a -1,14,0
  468. job_sword1,125,212,0 duplicate(SwdTrap2) 2_blank_4_b -1,2,0
  469. job_sword1,113,210,0 duplicate(SwdTrap2) 2_blank_5_a -1,14,0
  470. job_sword1,125,210,0 duplicate(SwdTrap2) 2_blank_5_b -1,2,0
  471. job_sword1,100,206,0 duplicate(SwdTrap2) 2_blank_5_c -1,0,3
  472. job_sword1,127,206,0 duplicate(SwdTrap2) 2_blank_5_d -1,0,3
  473. job_sword1,113,203,0 duplicate(SwdTrap2) 2_blank_5_e -1,14,0
  474. job_sword1,125,210,0 duplicate(SwdTrap2) 2_blank_5_f -1,2,0
  475. job_sword1,113,201,0 duplicate(SwdTrap2) 2_blank_6_a -1,14,0
  476. job_sword1,113,201,0 duplicate(SwdTrap2) 2_blank_6_b -1,2,0
  477. job_sword1,155,212,0 duplicate(SwdTrap2) 2_blank_7_a -1,21,0
  478. job_sword1,181,212,0 duplicate(SwdTrap2) 2_blank_7_b -1,2,0
  479. job_sword1,155,210,0 duplicate(SwdTrap2) 2_blank_8_a -1,21,0
  480. job_sword1,181,210,0 duplicate(SwdTrap2) 2_blank_8_b -1,2,0
  481. job_sword1,130,206,0 duplicate(SwdTrap2) 2_blank_8_c -1,0,3
  482. job_sword1,183,206,0 duplicate(SwdTrap2) 2_blank_8_d -1,0,3
  483. job_sword1,155,203,0 duplicate(SwdTrap2) 2_blank_8_e -1,21,0
  484. job_sword1,181,203,0 duplicate(SwdTrap2) 2_blank_8_f -1,2,0
  485. job_sword1,155,201,0 duplicate(SwdTrap2) 2_blank_9_a -1,40,0
  486. job_sword1,181,201,0 duplicate(SwdTrap2) 2_blank_9_b -1,2,0
  487. // Pitfalls (Set 3)
  488. //============================================================
  489. job_sword1,17,174,0 script 3_blank_1_a::SwdTrap3 -1,2,0,{
  490. OnTouch:
  491. switch(rand(1,5)) {
  492. case 1: warp "job_sword1",195,15; end;
  493. case 2: warp "job_sword1",195,38; end;
  494. case 3: warp "job_sword1",231,30; end;
  495. case 4: warp "job_sword1",198,65; end;
  496. case 5: warp "job_sword1",196,116; end;
  497. }
  498. }
  499. job_sword1,17,163,0 duplicate(SwdTrap3) 3_blank_2_a -1,2,0
  500. job_sword1,29,171,0 duplicate(SwdTrap3) 3_blank_3_a -1,2,0
  501. job_sword1,31,168,0 duplicate(SwdTrap3) 3_blank_3_b -1,0,2
  502. job_sword1,28,166,0 duplicate(SwdTrap3) 3_blank_3_c -1,2,0
  503. job_sword1,26,168,0 duplicate(SwdTrap3) 3_blank_3_d -1,0,2
  504. job_sword1,36,169,0 duplicate(SwdTrap3) 3_blank_4_a -1,0,0
  505. job_sword1,37,169,0 duplicate(SwdTrap3) 3_blank_4_b -1,0,0
  506. job_sword1,37,168,0 duplicate(SwdTrap3) 3_blank_4_c -1,0,0
  507. job_sword1,36,168,0 duplicate(SwdTrap3) 3_blank_4_c2 -1,0,0
  508. job_sword1,40,175,0 duplicate(SwdTrap3) 3_blank_5_a -1,0,1
  509. job_sword1,41,175,0 duplicate(SwdTrap3) 3_blank_5_b -1,0,1
  510. job_sword1,41,171,0 duplicate(SwdTrap3) 3_blank_6_a -1,1,0
  511. job_sword1,41,170,0 duplicate(SwdTrap3) 3_blank_6_b -1,1,0
  512. job_sword1,41,167,0 duplicate(SwdTrap3) 3_blank_6_c -1,1,0
  513. job_sword1,41,166,0 duplicate(SwdTrap3) 3_blank_6_d -1,1,0
  514. job_sword1,42,169,0 duplicate(SwdTrap3) 3_blank_6_e -1,0,1
  515. job_sword1,43,170,0 duplicate(SwdTrap3) 3_blank_6_f -1,0,1
  516. job_sword1,43,167,0 duplicate(SwdTrap3) 3_blank_6_g -1,0,1
  517. job_sword1,40,162,0 duplicate(SwdTrap3) 3_blank_7_a -1,0,1
  518. job_sword1,41,162,0 duplicate(SwdTrap3) 3_blank_7_b -1,0,1
  519. job_sword1,46,175,0 duplicate(SwdTrap3) 3_blank_8_a -1,0,1
  520. job_sword1,51,175,0 duplicate(SwdTrap3) 3_blank_8_b -1,0,1
  521. job_sword1,47,174,0 duplicate(SwdTrap3) 3_blank_8_c -1,1,0
  522. job_sword1,50,174,0 duplicate(SwdTrap3) 3_blank_8_d -1,1,0
  523. job_sword1,48,173,0 duplicate(SwdTrap3) 3_blank_8_e -1,0,1
  524. job_sword1,49,173,0 duplicate(SwdTrap3) 3_blank_8_f -1,0,1
  525. job_sword1,46,162,0 duplicate(SwdTrap3) 3_blank_9_a -1,0,1
  526. job_sword1,51,162,0 duplicate(SwdTrap3) 3_blank_9_b -1,0,1
  527. job_sword1,47,163,0 duplicate(SwdTrap3) 3_blank_9_c -1,1,0
  528. job_sword1,50,163,0 duplicate(SwdTrap3) 3_blank_9_d -1,1,0
  529. job_sword1,48,164,0 duplicate(SwdTrap3) 3_blank_9_e -1,0,1
  530. job_sword1,49,164,0 duplicate(SwdTrap3) 3_blank_9_f -1,0,1
  531. job_sword1,54,170,0 duplicate(SwdTrap3) 3_blank_10_a -1,0,1
  532. job_sword1,55,170,0 duplicate(SwdTrap3) 3_blank_10_b -1,0,1
  533. job_sword1,54,167,0 duplicate(SwdTrap3) 3_blank_10_c -1,0,1
  534. job_sword1,55,167,0 duplicate(SwdTrap3) 3_blank_10_d -1,0,1
  535. job_sword1,53,169,0 duplicate(SwdTrap3) 3_blank_10_e -1,1,0
  536. job_sword1,53,168,0 duplicate(SwdTrap3) 3_blank_10_f -1,1,0
  537. job_sword1,56,169,0 duplicate(SwdTrap3) 3_blank_10_g -1,1,0
  538. job_sword1,56,168,0 duplicate(SwdTrap3) 3_blank_10_h -1,1,0
  539. job_sword1,58,175,0 duplicate(SwdTrap3) 3_blank_11_a -1,0,1
  540. job_sword1,59,174,0 duplicate(SwdTrap3) 3_blank_11_b -1,1,0
  541. job_sword1,60,173,0 duplicate(SwdTrap3) 3_blank_11_c -1,0,1
  542. job_sword1,61,172,0 duplicate(SwdTrap3) 3_blank_11_d -1,1,0
  543. job_sword1,58,162,0 duplicate(SwdTrap3) 3_blank_12_a -1,0,1
  544. job_sword1,59,163,0 duplicate(SwdTrap3) 3_blank_12_b -1,1,0
  545. job_sword1,60,164,0 duplicate(SwdTrap3) 3_blank_12_c -1,0,1
  546. job_sword1,61,165,0 duplicate(SwdTrap3) 3_blank_12_d -1,1,0
  547. job_sword1,76,172,0 duplicate(SwdTrap3) 3_blank_13_a -1,1,0
  548. job_sword1,77,173,0 duplicate(SwdTrap3) 3_blank_13_b -1,0,1
  549. job_sword1,78,174,0 duplicate(SwdTrap3) 3_blank_13_c -1,1,0
  550. job_sword1,79,175,0 duplicate(SwdTrap3) 3_blank_13_d -1,0,1
  551. job_sword1,76,165,0 duplicate(SwdTrap3) 3_blank_14_a -1,1,0
  552. job_sword1,77,164,0 duplicate(SwdTrap3) 3_blank_14_b -1,0,1
  553. job_sword1,78,163,0 duplicate(SwdTrap3) 3_blank_14_c -1,1,0
  554. job_sword1,79,162,0 duplicate(SwdTrap3) 3_blank_14_d -1,0,1
  555. job_sword1,94,175,0 duplicate(SwdTrap3) 3_blank_15_a -1,0,1
  556. job_sword1,95,174,0 duplicate(SwdTrap3) 3_blank_15_b -1,1,0
  557. job_sword1,98,174,0 duplicate(SwdTrap3) 3_blank_15_c -1,1,0
  558. job_sword1,99,175,0 duplicate(SwdTrap3) 3_blank_16_d -1,0,1
  559. job_sword1,96,169,0 duplicate(SwdTrap3) 3_blank_17_a -1,0,0
  560. job_sword1,97,169,0 duplicate(SwdTrap3) 3_blank_17_b -1,0,0
  561. job_sword1,97,168,0 duplicate(SwdTrap3) 3_blank_17_c -1,0,0
  562. job_sword1,96,168,0 duplicate(SwdTrap3) 3_blank_17_d -1,0,0
  563. job_sword1,94,162,0 duplicate(SwdTrap3) 3_blank_18_a -1,0,1
  564. job_sword1,95,163,0 duplicate(SwdTrap3) 3_blank_18_b -1,1,0
  565. job_sword1,98,163,0 duplicate(SwdTrap3) 3_blank_18_c -1,1,0
  566. job_sword1,99,162,0 duplicate(SwdTrap3) 3_blank_18_d -1,0,1
  567. job_sword1,114,175,0 duplicate(SwdTrap3) 3_blank_19_a -1,0,1
  568. job_sword1,115,175,0 duplicate(SwdTrap3) 3_blank_19_b -1,0,1
  569. job_sword1,114,162,0 duplicate(SwdTrap3) 3_blank_20_a -1,0,1
  570. job_sword1,115,162,0 duplicate(SwdTrap3) 3_blank_20_b -1,0,1
  571. job_sword1,126,175,0 duplicate(SwdTrap3) 3_blank_21_a -1,0,1
  572. job_sword1,127,175,0 duplicate(SwdTrap3) 3_blank_21_b -1,0,1
  573. job_sword1,126,162,0 duplicate(SwdTrap3) 3_blank_23_a -1,0,1
  574. job_sword1,127,162,0 duplicate(SwdTrap3) 3_blank_23_b -1,0,1
  575. job_sword1,160,174,0 duplicate(SwdTrap3) 3_blank_24_a -1,0,2
  576. job_sword1,161,174,0 duplicate(SwdTrap3) 3_blank_24_b -1,0,2
  577. job_sword1,160,163,0 duplicate(SwdTrap3) 3_blank_25_a -1,0,2
  578. job_sword1,161,163,0 duplicate(SwdTrap3) 3_blank_25_b -1,0,2
  579. job_sword1,168,175,0 duplicate(SwdTrap3) 3_blank_26_a -1,0,2
  580. job_sword1,169,175,0 duplicate(SwdTrap3) 3_blank_26_b -1,0,2
  581. job_sword1,168,162,0 duplicate(SwdTrap3) 3_blank_27_a -1,0,2
  582. job_sword1,169,162,0 duplicate(SwdTrap3) 3_blank_27_b -1,0,2
  583. job_sword1,176,174,0 duplicate(SwdTrap3) 3_blank_28_a -1,0,2
  584. job_sword1,177,174,0 duplicate(SwdTrap3) 3_blank_28_b -1,0,2
  585. job_sword1,178,173,0 duplicate(SwdTrap3) 3_blank_28_c -1,1,0
  586. job_sword1,178,172,0 duplicate(SwdTrap3) 3_blank_28_d -1,1,0
  587. job_sword1,181,174,0 duplicate(SwdTrap3) 3_blank_28_e -1,2,0
  588. job_sword1,179,169,0 duplicate(SwdTrap3) 3_blank_29_a -1,3,0
  589. job_sword1,179,168,0 duplicate(SwdTrap3) 3_blank_29_b -1,3,0
  590. job_sword1,182,169,0 duplicate(SwdTrap3) 3_blank_29_c -1,0,2
  591. job_sword1,183,169,0 duplicate(SwdTrap3) 3_blank_29_d -1,0,2
  592. job_sword1,181,167,0 duplicate(SwdTrap3) 3_blank_29_e -1,1,0
  593. job_sword1,181,166,0 duplicate(SwdTrap3) 3_blank_29_f -1,1,0
  594. job_sword1,183,167,0 duplicate(SwdTrap3) 3_blank_29_g -1,0,1
  595. job_sword1,176,163,0 duplicate(SwdTrap3) 3_blank_30_a -1,0,2
  596. job_sword1,177,163,0 duplicate(SwdTrap3) 3_blank_30_b -1,0,2
  597. job_sword1,181,163,0 duplicate(SwdTrap3) 3_blank_30_c -1,2,0
  598. // Monsters (all three courses)
  599. //============================================================
  600. job_sword1,0,0,0,0 monster Chonchon 1183,20,0,0,0
  601. job_sword1,35,79,0,0 monster Fabre 1184,3,60000,30000,0
  602. job_sword1,50,108,0,0 monster Fabre 1184,3,60000,30000,0
  603. job_sword1,61,28,0,0 monster Fabre 1184,3,60000,30000,0
  604. job_sword1,61,92,0,0 monster Fabre 1184,3,60000,30000,0
  605. job_sword1,110,112,0,0 monster Fabre 1184,2,60000,30000,0
  606. job_sword1,161,94,0,0 monster Fabre 1184,2,60000,30000,0
  607. job_sword1,130,76,0,0 monster Fabre 1184,2,60000,30000,0
  608. job_sword1,103,58,0,0 monster Fabre 1184,2,60000,30000,0
  609. job_sword1,130,24,0,0 monster Fabre 1184,5,60000,30000,0
  610. job_sword1,201,36,0,0 monster Fabre 1184,2,60000,30000,0
  611. job_sword1,201,16,0,0 monster Fabre 1184,2,60000,30000,0
  612. job_sword1,239,44,0,0 monster Fabre 1184,3,60000,30000,0
  613. job_sword1,239,76,0,0 monster Fabre 1184,2,60000,30000,0
  614. job_sword1,231,101,0,0 monster Fabre 1184,2,60000,30000,0
  615. job_sword1,234,117,0,0 monster Fabre 1184,2,60000,30000,0
  616. job_sword1,198,91,0,0 monster Fabre 1184,2,60000,30000,0
  617. job_sword1,200,63,0,0 monster Fabre 1184,2,60000,30000,0
  618. //============================================================
  619. // mapflag
  620. //============================================================