Advertisement
Guest User

Untitled

a guest
Nov 1st, 2016
728
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.18 KB | None | 0 0
  1. // -------------------------------------------------------
  2. // Headgear Quest - MIDI City Ragnarok Online
  3. // -------------------------------------------------------
  4. // Easily add quests depending on what map you want them
  5. // to be added.
  6. // Use of script needs some script-knowledge.
  7. // -------------------------------------------------------
  8. // Author: Cyan Hijirikawa
  9. // -------------------------------------------------------
  10. // Version
  11. // 1.0 - Initial Release
  12. // -------------------------------------------------------
  13. - script HeadgearQuests#main -1,{
  14. if(strcharinfo(3) == "prontera") callsub OnQuest,1,"Prontera";
  15. if(strcharinfo(3) == "payon") callsub OnQuest,2,"Payon";
  16. if(strcharinfo(3) == "geffen") callsub OnQuest,3,"Geffen";
  17. if(strcharinfo(3) == "morocc") callsub OnQuest,4,"Morocc";
  18. if(strcharinfo(3) == "izlude") callsub OnQuest,5,"Izlude";
  19. end;
  20.  
  21. OnQuest:
  22. mes .npc_name$;
  23. switch(getarg(0)){
  24. case 1: //prontera
  25. switch(select("Flapping Angel Wings:Soulless Wing")){
  26. case 1: //Flapping Angel Wing
  27. mes getitemname(.item_pront[0]);
  28. mes "Stats 1";
  29. mes "Stats 2";
  30. next;
  31. mes .npc_name$;
  32. mes "I will need the following: ";
  33. for(set .@i,0; .@i < getarraysize(.item_pront_req1); .@i++){
  34. mes .item_pront_amt1+"x "+getitemname(.item_pront_req1[.@i]);
  35. }
  36. next;
  37. for(set .@i,0; .@i < getarraysize(.item_pront_req1); .@i++){
  38. if(countitem(.item_pront_req1[.@i]) < .item_pront_amt1[.@i]){
  39. set .@missing,.item_pront_amt1[.@i] - countitem(.item_pront_req1[.@i]);
  40. set .@missing$,getitemname(.item_pront_req1[.@i]);
  41. set .@missing_req,.item_pront_amt1[.@i];
  42. break;
  43. }
  44. }
  45. if(.@missing){
  46. mes .npc_name$;
  47. mes "You are missing some components.";
  48. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  49. close;
  50. end;
  51. }
  52. if(Zeny < .zeny_pront1){
  53. mes .npc_name$;
  54. mes "You do not have enough zeny.";
  55. }
  56. for(set .@i,0; .@i < getarraysize(.item_pront_req1); .@i++){
  57. delitem .item_pront_req1[.@i],.item_pront_req1[.@i];
  58. }
  59. getitem .item_pront[0],1;
  60. close;
  61. end;
  62. case 2: //Soulless Wing
  63. mes getitemname(.item_pront[1]);
  64. mes "Stats 1";
  65. mes "Stats 2";
  66. next;
  67. mes .npc_name$;
  68. mes "I will need the following: ";
  69. for(set .@i,0; .@i < getarraysize(.item_pront_req2); .@i++){
  70. mes .item_pront_amt2+"x "+getitemname(.item_pront_req2[.@i]);
  71. }
  72. next;
  73. for(set .@i,0; .@i < getarraysize(.item_pront_req2); .@i++){
  74. if(countitem(.item_pront_req2[.@i]) < .item_pront_amt2[.@i]){
  75. set .@missing,.item_pront_amt2[.@i] - countitem(.item_pront_req2[.@i]);
  76. set .@missing$,getitemname(.item_pront_req2[.@i]);
  77. set .@missing_req,.item_pront_amt2[.@i];
  78. break;
  79. }
  80. }
  81. if(.@missing){
  82. mes .npc_name$;
  83. mes "You are missing some components.";
  84. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  85. close;
  86. end;
  87. }
  88. if(Zeny < .zeny_pront2){
  89. mes .npc_name$;
  90. mes "You do not have enough zeny.";
  91. }
  92. for(set .@i,0; .@i < getarraysize(.item_pront_req2); .@i++){
  93. delitem .item_pront_req2[.@i],.item_pront_req2[.@i];
  94. }
  95. getitem .item_pront[1],1;
  96. close;
  97. end;
  98. }
  99. case 2: //payon
  100. switch(select("Well Chewed Pencil:Black Musang Hat")){
  101. case 1: //Well Chewed Pencil
  102. mes getitemname(.item_payon[0]);
  103. mes "Stats 1";
  104. mes "Stats 2";
  105. next;
  106. mes .npc_name$;
  107. mes "I will need the following: ";
  108. for(set .@i,0; .@i < getarraysize(.item_payon_req1); .@i++){
  109. mes .item_payon_amt1+"x "+getitemname(.item_payon_req1[.@i]);
  110. }
  111. next;
  112. for(set .@i,0; .@i < getarraysize(.item_payon_req1); .@i++){
  113. if(countitem(.item_payon_req1[.@i]) < .item_payon_amt1[.@i]){
  114. set .@missing,.item_payon_amt1[.@i] - countitem(.item_payon_req1[.@i]);
  115. set .@missing$,getitemname(.item_payon_req1[.@i]);
  116. set .@missing_req,.item_payon_amt1[.@i];
  117. break;
  118. }
  119. }
  120. if(.@missing){
  121. mes .npc_name$;
  122. mes "You are missing some components.";
  123. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  124. close;
  125. end;
  126. }
  127. if(Zeny < .zeny_payon1){
  128. mes .npc_name$;
  129. mes "You do not have enough zeny.";
  130. }
  131. for(set .@i,0; .@i < getarraysize(.item_payon_req1); .@i++){
  132. delitem .item_payon_req1[.@i],.item_payon_req1[.@i];
  133. }
  134. getitem .item_payon[0],1;
  135. close;
  136. end;
  137. case 2: //Black Musang Hat
  138. mes getitemname(.item_payon[1]);
  139. mes "Stats 1";
  140. mes "Stats 2";
  141. next;
  142. mes .npc_name$;
  143. mes "I will need the following: ";
  144. for(set .@i,0; .@i < getarraysize(.item_payon_req2); .@i++){
  145. mes .item_payon_amt2+"x "+getitemname(.item_payon_req2[.@i]);
  146. }
  147. next;
  148. for(set .@i,0; .@i < getarraysize(.item_payon_req2); .@i++){
  149. if(countitem(.item_payon_req2[.@i]) < .item_payon_amt2[.@i]){
  150. set .@missing,.item_payon_amt2[.@i] - countitem(.item_payon_req2[.@i]);
  151. set .@missing$,getitemname(.item_payon_req2[.@i]);
  152. set .@missing_req,.item_payon_amt2[.@i];
  153. break;
  154. }
  155. }
  156. if(.@missing){
  157. mes .npc_name$;
  158. mes "You are missing some components.";
  159. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  160. close;
  161. end;
  162. }
  163. if(Zeny < .zeny_payon2){
  164. mes .npc_name$;
  165. mes "You do not have enough zeny.";
  166. }
  167. for(set .@i,0; .@i < getarraysize(.item_payon_req2); .@i++){
  168. delitem .item_payon_req2[.@i],.item_payon_req2[.@i];
  169. }
  170. getitem .item_payon[1],1;
  171. close;
  172. end;
  173. }
  174. case 3: //geffen
  175. switch(select("Book Hat:Charming Ribbon")){
  176. case 1: //Book Hat
  177. mes getitemname(.item_geffen[0]);
  178. mes "Stats 1";
  179. mes "Stats 2";
  180. next;
  181. mes .npc_name$;
  182. mes "I will need the following: ";
  183. for(set .@i,0; .@i < getarraysize(.item_geffen_req1); .@i++){
  184. mes .item_geffen_amt1+"x "+getitemname(.item_geffen_req1[.@i]);
  185. }
  186. next;
  187. for(set .@i,0; .@i < getarraysize(.item_geffen_req1); .@i++){
  188. if(countitem(.item_geffen_req1[.@i]) < .item_geffen_amt1[.@i]){
  189. set .@missing,.item_geffen_amt1[.@i] - countitem(.item_geffen_req1[.@i]);
  190. set .@missing$,getitemname(.item_geffen_req1[.@i]);
  191. set .@missing_req,.item_geffen_amt1[.@i];
  192. break;
  193. }
  194. }
  195. if(.@missing){
  196. mes .npc_name$;
  197. mes "You are missing some components.";
  198. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  199. close;
  200. end;
  201. }
  202. if(Zeny < .zeny_geffen1){
  203.  
  204. mes .npc_name$;
  205. mes "You do not have enough zeny.";
  206.  
  207. }
  208. for(set .@i,0; .@i < getarraysize(.item_geffen_req1); .@i++){
  209. delitem .item_geffen_req1[.@i],.item_geffen_req1[.@i];
  210. }
  211. getitem .item_geffen[0],1;
  212. close;
  213. end;
  214. case 2: //Charming Ribbon
  215. mes getitemname(.item_geffen[1]);
  216. mes "Stats 1";
  217. mes "Stats 2";
  218. next;
  219. mes .npc_name$;
  220. mes "I will need the following: ";
  221. for(set .@i,0; .@i < getarraysize(.item_geffen_req2); .@i++){
  222. mes .item_geffen_amt2+"x "+getitemname(.item_geffen_req2[.@i]);
  223. }
  224. next;
  225. for(set .@i,0; .@i < getarraysize(.item_geffen_req2); .@i++){
  226. if(countitem(.item_geffen_req2[.@i]) < .item_geffen_amt2[.@i]){
  227. set .@missing,.item_geffen_amt2[.@i] - countitem(.item_geffen_req2[.@i]);
  228. set .@missing$,getitemname(.item_geffen_req2[.@i]);
  229. set .@missing_req,.item_geffen_amt2[.@i];
  230. break;
  231. }
  232. }
  233. if(.@missing){
  234.  
  235. mes .npc_name$;
  236. mes "You are missing some components.";
  237. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  238. close;
  239. end;
  240.  
  241. }
  242. if(Zeny < .zeny_geffen2){
  243.  
  244. mes .npc_name$;
  245. mes "You do not have enough zeny.";
  246.  
  247. }
  248. for(set .@i,0; .@i < getarraysize(.item_geffen_req2); .@i++){
  249. delitem .item_geffen_req2[.@i],.item_geffen_req2[.@i];
  250. }
  251. getitem .item_geffen[1],1;
  252. close;
  253. end;
  254. }
  255. case 4: //morocc
  256. switch(select("Flying Evil Wing:Angel Spirit")){
  257. case 1: //Flying Evil Wing
  258. mes getitemname(.item_morocc[0]);
  259. mes "Stats 1";
  260. mes "Stats 2";
  261. next;
  262. mes .npc_name$;
  263. mes "I will need the following: ";
  264. for(set .@i,0; .@i < getarraysize(.item_morocc_req1); .@i++){
  265. mes .item_morocc_amt1+"x "+getitemname(.item_morocc_req1[.@i]);
  266. }
  267. next;
  268. for(set .@i,0; .@i < getarraysize(.item_morocc_req1); .@i++){
  269. if(countitem(.item_morocc_req1[.@i]) < .item_morocc_amt1[.@i]){
  270. set .@missing,.item_morocc_amt1[.@i] - countitem(.item_morocc_req1[.@i]);
  271. set .@missing$,getitemname(.item_morocc_req1[.@i]);
  272. set .@missing_req,.item_morocc_amt1[.@i];
  273. break;
  274. }
  275. }
  276. if(.@missing){
  277. mes .npc_name$;
  278. mes "You are missing some components.";
  279. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  280. close;
  281. end;
  282. }
  283. if(Zeny < .zeny_morocc1){
  284. mes .npc_name$;
  285. mes "You do not have enough zeny.";
  286. }
  287. for(set .@i,0; .@i < getarraysize(.item_morocc_req1); .@i++){
  288. delitem .item_morocc_req1[.@i],.item_morocc_req1[.@i];
  289. }
  290. getitem .item_morocc[0],1;
  291. close;
  292. end;
  293. case 2: //Angel Spirit
  294. mes getitemname(.item_morocc[1]);
  295. mes "Stats 1";
  296. mes "Stats 2";
  297. next;
  298. mes .npc_name$;
  299. mes "I will need the following: ";
  300. for(set .@i,0; .@i < getarraysize(.item_morocc_req2); .@i++){
  301. mes .item_morocc_amt2+"x "+getitemname(.item_morocc_req2[.@i]);
  302. }
  303. next;
  304. for(set .@i,0; .@i < getarraysize(.item_morocc_req2); .@i++){
  305. if(countitem(.item_morocc_req2[.@i]) < .item_morocc_amt2[.@i]){
  306. set .@missing,.item_morocc_amt2[.@i] - countitem(.item_morocc_req2[.@i]);
  307. set .@missing$,getitemname(.item_morocc_req2[.@i]);
  308. set .@missing_req,.item_morocc_amt2[.@i];
  309. break;
  310. }
  311. }
  312. if(.@missing){
  313.  
  314. mes .npc_name$;
  315. mes "You are missing some components.";
  316. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  317. close;
  318. end;
  319.  
  320. }
  321. if(Zeny < .zeny_morocc2){
  322. mes .npc_name$;
  323. mes "You do not have enough zeny.";
  324. }
  325. for(set .@i,0; .@i < getarraysize(.item_morocc_req2); .@i++){
  326. delitem .item_morocc_req2[.@i],.item_morocc_req2[.@i];
  327. }
  328. getitem .item_morocc[1],1;
  329. close;
  330. end;
  331. }
  332. case 5: //izlude
  333. switch(select("Gentleman's Pipe:Blush of Groom")){
  334. case 1: //Gentleman's Pipe
  335. mes getitemname(.item_izlude[0]);
  336. mes "Stats 1";
  337. mes "Stats 2";
  338. next;
  339. mes .npc_name$;
  340. mes "I will need the following: ";
  341. for(set .@i,0; .@i < getarraysize(.item_izlude_req1); .@i++){
  342. mes .item_izlude_amt1+"x "+getitemname(.item_izlude_req1[.@i]);
  343. }
  344. next;
  345. for(set .@i,0; .@i < getarraysize(.item_izlude_req1); .@i++){
  346. if(countitem(.item_izlude_req1[.@i]) < .item_izlude_amt1[.@i]){
  347. set .@missing,.item_izlude_amt1[.@i] - countitem(.item_izlude_req1[.@i]);
  348. set .@missing$,getitemname(.item_izlude_req1[.@i]);
  349. set .@missing_req,.item_izlude_amt1[.@i];
  350. break;
  351. }
  352. }
  353. if(.@missing){
  354. mes .npc_name$;
  355. mes "You are missing some components.";
  356. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  357. close;
  358. end;
  359.  
  360. }
  361. if(Zeny < .zeny_izlude1){
  362. mes .npc_name$;
  363. mes "You do not have enough zeny.";
  364.  
  365. }
  366. for(set .@i,0; .@i < getarraysize(.item_izlude_req1); .@i++){
  367. delitem .item_izlude_req1[.@i],.item_izlude_req1[.@i];
  368. }
  369. getitem .item_izlude[0],1;
  370. close;
  371. end;
  372. case 2: //Blush of Groom
  373. mes getitemname(.item_izlude[1]);
  374. mes "Stats 1";
  375. mes "Stats 2";
  376. next;
  377. mes .npc_name$;
  378. mes "I will need the following: ";
  379. for(set .@i,0; .@i < getarraysize(.item_izlude_req2); .@i++){
  380. mes .item_izlude_amt2+"x "+getitemname(.item_izlude_req2[.@i]);
  381. }
  382. next;
  383. for(set .@i,0; .@i < getarraysize(.item_izlude_req2); .@i++){
  384. if(countitem(.item_izlude_req2[.@i]) < .item_izlude_amt2[.@i]){
  385. set .@missing,.item_izlude_amt2[.@i] - countitem(.item_izlude_req2[.@i]);
  386. set .@missing$,getitemname(.item_izlude_req2[.@i]);
  387. set .@missing_req,.item_izlude_amt2[.@i];
  388. break;
  389. }
  390. }
  391. if(.@missing){
  392. mes .npc_name$;
  393. mes "You are missing some components.";
  394. mes .@missing$+": "+.@missing+" / "+.@missing_req;
  395. close;
  396. end;
  397. }
  398. if(Zeny < .zeny_izlude2){
  399. mes .npc_name$;
  400. mes "You do not have enough zeny.";
  401. }
  402. for(set .@i,0; .@i < getarraysize(.item_izlude_req2); .@i++){
  403. delitem .item_izlude_req2[.@i],.item_izlude_req2[.@i];
  404. }
  405. getitem .item_izlude[1],1;
  406. close;
  407. end;
  408. }
  409. }
  410. end;
  411.  
  412. OnInit:
  413. //NPC Name
  414. set .npc_name$, "[ Name here please ]";
  415. //prontera quests
  416. setarray .item_pront,5210,5257;
  417. setarray .item_pront_req1,2254,7063,949,916,982,31024;
  418. setarray .item_pront_amt1,2,50,200,200,10,1;
  419. set .zeny_pront1,2000000;
  420. setarray .item_pront_req2,2282,1059,916,969,1059,31024;
  421. setarray .item_pront_amt2,1,150,100,10,100,1;
  422. set .zeny_pront2,300000;
  423. //payon quests
  424. setarray .item_payon,5574,18613;
  425. setarray .item_payon_req1,738,4004,1068,1066,1067,7186,31024;
  426. setarray .item_payon_amt1,1,1,100,100,100,50,1;
  427. set .zeny_payon1,300000;
  428. setarray .item_payon_req2,2264,5046,609,1094,901,31024
  429. setarray .item_payon_amt2,1,1,50,200,200,1;
  430. set .zeny_payon2,2500000;
  431. //geffen quests
  432. setarray .item_geffen,5422,5140;
  433. setarray .item_geffen_req1,1553,1554,1555,1556,1006,31024;
  434. setarray .item_geffen_amt1,1,1,1,1,50,1;
  435. set .zeny_geffen1,300000;
  436. setarray .item_geffen_req2,2244,2209,1059,31024
  437. setarray .item_geffen_amt2,1,1,1,1;
  438. set .zeny_geffen2,200000;
  439. //morocc quests
  440. setarray .item_morocc,5376,5389;
  441. setarray .item_morocc_req1,2255,4010,949,916,983,31024;
  442. setarray .item_morocc_amt1,2,5,200,200,10,1;
  443. set .zeny_morocc1,300000;
  444. setarray .item_morocc_req2,2264,5046,609,1094,901,31024
  445. setarray .item_morocc_amt2,1,1,50,200,200,1;
  446. set .zeny_morocc2,2500000;
  447. //izlude quests
  448. setarray .item_izlude,5377,5800;
  449. setarray .item_izlude_req1,2267,2268,7201,7035,999,1003,998,7098,31024;
  450. setarray .item_izlude_amt1,1,1,300,10,100,100,50,50,1;
  451. set .zeny_izlude1,300000;
  452. setarray .item_izlude_req2,5040,732,970,975,31024
  453. setarray .item_izlude_amt2,2,10,100,10,1;
  454. set .zeny_izlude2,2500000;
  455. end;
  456. }
  457. prontera,103,77,5 duplicate(HeadgearQuests#main) Headgear Quest#1 123
  458. payon,172,174,5 duplicate(HeadgearQuests#main) Headgear Quest#2 123
  459. geffen,130,115,5 duplicate(HeadgearQuests#main) Headgear Quest#3 123
  460. morocc,166,109,5 duplicate(HeadgearQuests#main) Headgear Quest#4 123
  461. izlude,95,122,5 duplicate(HeadgearQuests#main) Headgear Quest#5 123
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement