bio4_reward.txt 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993
  1. //===== rAthena Script =======================================
  2. //= Lighthalzen rewards NPCs
  3. //===== Description: =========================================
  4. //= Enchant and reward NPCs from Bio instance/dungeon item drop.
  5. //===== Changelogs: ==========================================
  6. //= 1.0 Moved the NPCs from WolfchevLaboratory.txt. [Capuche]
  7. //============================================================
  8. // Weird Old Man (Rewards)
  9. //============================================================
  10. lighthalzen,342,291,4 script Weird old man#Bio4Reward 4_M_EINOLD,{
  11. if ((MaxWeight - Weight) < 2800 || !checkweight(1201, 1)) {
  12. mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
  13. close;
  14. }
  15. mes "[Weird old man]";
  16. mes "Phew, those young people nowadays, are so rude and have no manners.";
  17. next;
  18. if (select("Ignore him", "Talk with him") == 1) {
  19. mes "[Weird old man]";
  20. mes "You, very bad young man!";
  21. close;
  22. }
  23. mes "["+ strcharinfo(0) +"]";
  24. mes "Sir, are you alright??";
  25. next;
  26. mes "[Weird old man]";
  27. mes "....?? You are not like other young people. You have good manners! You know what happened to me..?";
  28. next;
  29. switch(rand(1,2)) {
  30. case 1:
  31. mes "[Weird old man]";
  32. mes "I was on the way to visit my son who lives in Rune-Midgarts. It's really far away, so I took the airplane, and..";
  33. next;
  34. mes "[Weird old man]";
  35. mes "those young people...so noisy.... I was standing but none of them offered me a seat..and they were just talking loudly which bothered everyone.";
  36. next;
  37. mes "[Weird old man]";
  38. mes "I could lecture them if I were 10 years younger..";
  39. next;
  40. mes "[Weird old man]";
  41. mes "Pffff.. Never liked the passing of time....";
  42. next;
  43. mes "[Weird old man]";
  44. mes "So, you... what would you do??";
  45. next;
  46. mes "[Weird old man]";
  47. mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm.";
  48. next;
  49. break;
  50. case 2:
  51. mes "[Weird old man]";
  52. mes "I was on the way to visit my son who lives in Rune-Midgarts. It's really far away, so I took the airplane, and..";
  53. next;
  54. mes "[Weird old man]";
  55. mes "those young people...so noisy.... I was standing but none of them offered me a seat..and they were just talking loudly which bothered everyone.";
  56. next;
  57. mes "[Weird old man]";
  58. mes "I could lecture them if I were 10 years younger..";
  59. next;
  60. mes "[Weird old man]";
  61. mes "Pffff.. Never liked the passing of time....";
  62. next;
  63. mes "[Weird old man]";
  64. mes "So, you... what would you do??";
  65. next;
  66. mes "[Weird old man]";
  67. mes "In an open, public place, you are supposed to stay quiet to the destination and offer your seat to the elderly and the infirm. Right?";
  68. next;
  69. mes "[Weird old man]";
  70. mes "Isn't that right?!";
  71. next;
  72. switch(rand(1,2)) {
  73. case 1:
  74. mes "[Weird old man]";
  75. mes "Oh, and then you know what...?";
  76. next;
  77. mes "[Weird old man]";
  78. mes "Once I was walking in the town and some boys were spitting on the street and were bothering girls who were passing by...tut tut!";
  79. next;
  80. mes "[Weird old man]";
  81. mes "The world is going to the dogs.. How will it be?? It was even day time when they were doing it..tut tut.";
  82. next;
  83. switch(rand(1,2)) {
  84. case 1:
  85. mes "[Weird old man]";
  86. mes "Oh, and then you know what...?";
  87. next;
  88. break;
  89. case 2:
  90. mes "[Weird old man]";
  91. mes "Oh, and then you know what...?";
  92. next;
  93. mes "[Weird old man]";
  94. mes "Lately young people are not so patient!!!!";
  95. next;
  96. mes "[Weird old man]";
  97. mes "So often they say they will quit.. they say they can't do more. How will they live life with that kind of mentality..tut tut.";
  98. next;
  99. mes "[Weird old man]";
  100. mes "It's not easy to find a job. It is very difficult to be hired but then they even cannot stand a week there and leave the work place.";
  101. next;
  102. mes "[Weird old man]";
  103. mes "How impatient and irresponsible!!";
  104. next;
  105. mes "[Weird old man]";
  106. mes "Oh, and then you know what...?";
  107. next;
  108. break;
  109. }
  110. case 2:
  111. mes "[Weird old man]";
  112. mes "Oh, and then you know what...?";
  113. next;
  114. break;
  115. }
  116. }
  117. mes "^E7A43DThe old man talked over and over again.^000000";
  118. next;
  119. mes "[Weird old man]";
  120. mes "Hm......You are not like common young people, you seem pretty patient too. I like that!!!";
  121. next;
  122. mes "[Weird old man]";
  123. mes "Now I am just an weak old man but when I was young I was a famous merchant in the town.";
  124. next;
  125. mes "[Weird old man]";
  126. mes "It's been a while since I stopped the business,";
  127. mes "but a former client of mine contacted me and asked me";
  128. next;
  129. mes "[Weird old man]";
  130. mes "If I could get him some unknown objects named 'Will of Warrior', 'Thirst for Blood', and 'Chill of the Dead'.";
  131. next;
  132. mes "[Weird old man]";
  133. mes "I like your politeness which most young people don't have, so if you get me those, I will give you some stuff that I consider as my treasure.";
  134. next;
  135. while(1) {
  136. switch(select("When I gather them, I will come back", "Show me the armors", "Show me the weapons")) {
  137. case 1:
  138. mes "[Weird old man]";
  139. mes "OK, young man. See you later.";
  140. close;
  141. case 2:
  142. mes "[Weird old man]";
  143. mes "So, you are interested in armors.";
  144. next;
  145. mes "[Weird old man]";
  146. mes "These are the armors I have.";
  147. next;
  148. for(.@i = 1; .@i < 8; .@i++) {
  149. if (((.@i == 1 || .@i == 5) && (countitem(6469) >= 100) && (countitem(6470) >= 50) && (countitem(6471) >= 35)) ||
  150. ((.@i == 2 || .@i == 3) && (countitem(6469) >= 100) && (countitem(6470) >= 50) && (countitem(6471) >= 22)) ||
  151. ((.@i == 4 || .@i == 7) && (countitem(6469) >= 300) && (countitem(6470) >= 300) && (countitem(6471) >= 400)) ||
  152. ((.@i == 6) && (countitem(6469) >= 100) && (countitem(6470) >= 50) && (countitem(6471) >= 30))) {
  153. .@armor$[.@i] = "^0000FF";
  154. } else {
  155. .@armor$[.@i] = "^FF0000";
  156. }
  157. }
  158. while(1) {
  159. switch(select(
  160. "Show me other items.",
  161. ""+.@armor$[1]+"Giant Shield^000000",
  162. ""+.@armor$[2]+"Ancient Book of Geffenia-Water^000000",
  163. ""+.@armor$[3]+"Bible of Promise(2nd Vol.)^000000",
  164. ""+.@armor$[4]+"Salvage Cape^000000",
  165. ""+.@armor$[5]+"Assassin's Handcuffs^000000",
  166. ""+.@armor$[6]+"Green Operating Gown^000000",
  167. ""+.@armor$[7]+"Ancient Gold Decoration^000000"
  168. )) {
  169. case 1:
  170. mes "[Weird old man]";
  171. mes "Have a look.";
  172. next;
  173. .@break = 1;
  174. break;
  175. case 2:
  176. mes "<<Giant Shield[1]>>";
  177. mes "Decrease 5% of Damage from Large Monsters, if Refine Lv is 9, decrease 5% more of the Damage.";
  178. mes "Shield / Def 130 / Weight 280 / Required Lv 100 / Socket 1 / for 3rd Swordman Classes";
  179. callsub L_Reward, 2160, 100, 50, 35; //Giant_Shield
  180. break;
  181. case 3:
  182. mes "<<Ancient Book of Geffenia-Water[1]>>";
  183. mes "INT + 1, MDEF + 2. If Original INT point is 120, MATK + 10, MHP + 800.";
  184. mes "When equipping with Lacryma Stick, the casting % from Storm Gust, Frost Misty and Jack frost will discount equivalent to 4 times Refine Lv.";
  185. mes "Shield / Def 30 / Weight 100 / Required Lv 100 / Socket 1 / for Warlock";
  186. callsub L_Reward, 2161, 100, 50, 22; //Geffenia_Book_Water
  187. break;
  188. case 4:
  189. mes "<<Bible of Promise(2nd Vol.)[1]>>";
  190. mes "MDEF + 5, Allow to use 'Odin's Power'(Lv 2). Increase 5% more for Heal skill.";
  191. mes "Shield / Def 20 / Weight 50 / Required Lv 140 / Socket 1 / for Archbishop";
  192. callsub L_Reward, 2162, 100, 50, 22; //Bible_Of_Promise2
  193. break;
  194. case 5:
  195. mes "<<Salvage Cape[0]>>";
  196. mes "Allow to use 'Cicada Skin Shed'(Lv 1). Cool down time for this skill will be 30 seconds. When equipping it, SP consumption for using any skill will be doubled, When taking it off, SP - 1200.";
  197. mes "Garment / Def 1 / Weight 40 / Required Lv 130 / Socket 0 / for Archbishop";
  198. callsub L_Reward, 2582, 300, 300, 400; //Salvage_Cape
  199. break;
  200. case 6:
  201. mes "<<Assassin's Handcuffs[1]>>";
  202. mes "MSP + 20, CRI + 3. When equipping with Krishna, ATK + 50, ATK power from 'Sonic Blow' 50% increased, FLEE - 30. When equipping with Cakram CRI + 4, Critical ATK power 40% increased, MHP - 10%.";
  203. mes "Accessory / Def 3 / Weight 40 / Required Lv 100 / Socket 1 / for Guillotine Cross";
  204. callsub L_Reward, 2892, 100, 50, 35; //Assassin_Handcuffs
  205. break;
  206. case 7:
  207. mes "<<Green Operating Gown[1]>>";
  208. mes "DEX + 1, MSP + 30. Equipping with Scalpel will let to drop 'Immortal Heart', 'Alcohol' with a certain chance when hunting Human, Animal type monsters. Refine Lv affects the drop rate.";
  209. mes "Armor / Def 66 / Weight 66 / Required Lv 100 / Socket 1 / for Generic";
  210. callsub L_Reward, 15044, 100, 50, 30; //Green_Operation_Coat
  211. break;
  212. case 8:
  213. mes "<<Ancient Gold Decoration[1]>>";
  214. mes "If the base lv is 150, All State + 2. for Swordman, Merchant, Thief Classes ATK + 8%, for Magician, Acolyte classes MATK + 8%, Heal Power + 7%, for Archer classes DEX + 3, Long Distance ATK power + 10%.";
  215. mes "Helm / Def 7 / Location - Upper / Weight 40 / Required Lv 100 / Socket 1 / for 3rd Job Classes";
  216. callsub L_Reward, 18570, 300, 300, 400; //Ancient_Gold_Deco
  217. break;
  218. }
  219. if (.@break) {
  220. .@break = 0;
  221. break;
  222. }
  223. }
  224. break;
  225. case 3:
  226. mes "[Weird old man]";
  227. mes "So, you are interested in weapons.";
  228. next;
  229. mes "[Weird old man]";
  230. mes "These are the weapons I've got.";
  231. next;
  232. for(.@i = 1; .@i < 15; .@i++) {
  233. if (((.@i == 1) && (countitem(6469) >= 50) && (countitem(6470) >= 100) && (countitem(6471) >= 10)) ||
  234. ((.@i == 2) && (countitem(6469) >= 50) && (countitem(6470) >= 100) && (countitem(6471) >= 85)) ||
  235. ((.@i == 3 || .@i == 4 || (.@i >= 8 && .@i < 11) || .@i >= 12) && (countitem(6469) >= 50) && (countitem(6470) >= 100) && (countitem(6471) >= 35)) ||
  236. ((.@i == 5 || .@i == 7 || .@i == 11) && (countitem(6469) >= 50) && (countitem(6470) >= 100) && (countitem(6471) >= 40)) ||
  237. ((.@i == 6) && (countitem(6469) >= 300) && (countitem(6470) >= 300) && (countitem(6471) >= 400))) {
  238. .@weapon$[.@i] = "^0000FF";
  239. } else {
  240. .@weapon$[.@i] = "^FF0000";
  241. }
  242. }
  243. while(1) {
  244. switch(select(
  245. "Show me other items.",
  246. ""+.@weapon$[1]+"Agent Katar^000000",
  247. ""+.@weapon$[2]+"Guillotine Katar^000000",
  248. ""+.@weapon$[3]+"Ygnus Stale^000000",
  249. ""+.@weapon$[4]+"End Sektura^000000",
  250. ""+.@weapon$[5]+"Cannon Spear^000000",
  251. ""+.@weapon$[6]+"Giant Lance^000000",
  252. ""+.@weapon$[7]+"Chilly Spell Book^000000",
  253. ""+.@weapon$[8]+"Recovery Light^000000",
  254. ""+.@weapon$[9]+"Aztoe Nail^000000",
  255. ""+.@weapon$[10]+"Scarletto Nail^000000",
  256. ""+.@weapon$[11]+"Bloody Cross^000000",
  257. ""+.@weapon$[12]+"Catapult^000000",
  258. ""+.@weapon$[13]+"Big CrossBow^000000",
  259. ""+.@weapon$[14]+"Creeper Bow^000000"
  260. )) {
  261. case 1:
  262. mes "[Weird old man]";
  263. mes "Have a look.";
  264. next;
  265. .@break = 1;
  266. break;
  267. case 2:
  268. mes "<<Agent Katar[1]>>";
  269. mes "Every 2 Original LUK points gets additional 1 HIT point";
  270. mes "Katar / ATK 170 / Weight 120 / Weapon Lv 3 / Required Lv 100 / Socket 1 / for Guillotine Cross";
  271. callsub L_Reward, 1290, 50, 100, 10; //Agent_Katar
  272. break;
  273. case 3:
  274. mes "<<Guillotine Katar[1]>>";
  275. mes "DEX + 2. FLEE - 30. 50% more damage to Human monsters. Add 30% more damage for Cross Impact skill.";
  276. mes "Katar / ATK 200 / Weight 150 / Weapon Lv 4 / Required Lv 140 / Socket 1 / for Guillotine Cross";
  277. callsub L_Reward, 1291, 50, 100, 85; //Guillotine_Katar
  278. break;
  279. case 4:
  280. mes "<<Ygnus Stale[1]>>";
  281. mes "When doing short distance attack, cast Burn status to the player and to the enemy with a certain chance.";
  282. mes "Two-Handed Axe / ATK 250 / Weight 190 / Fire Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
  283. callsub L_Reward, 1392, 50, 100, 35; //Ygnus_Stale
  284. break;
  285. case 5:
  286. mes "<<End Sektura[1]>>";
  287. mes "When doing short distance attack, cast Freezing to the player and to the enemy with a certain chance.";
  288. mes "Two-Handed Axe / ATK 250 / Weight 190 / Water Property / Weapon Lv 4 / Required Lv 95 / Socket 1 / for High Swordman/Merchant Classes";
  289. callsub L_Reward, 1393, 50, 100, 35; //End_Sektura
  290. break;
  291. case 6:
  292. mes "<<Cannon Spear[1]>>";
  293. mes "MSP - 100, Increases 10% of Damage impacted with Cannon Spear, Additional ATK power of Cannon Spear equivalent to 3 times Refine Lv.";
  294. mes "One-Handed Spear / ATK 180 / Weight 160 / Weapon Lv 4 / Required Lv 100 / Socket 1 / for Royal Guard";
  295. callsub L_Reward, 1435, 50, 100, 40; //Cannon_Spear
  296. break;
  297. case 7:
  298. mes "<<Giant Lance[0]>>";
  299. mes "ASPD - 10, When it's taken off, the character gets SP - 600. 20 more seconds of Delay time exists before using back the Clashing Spiral. If the original STR points are 120, + ATK 300.";
  300. mes "Two-Handed Lance / ATK 20 / Weight 2000 / Weapon Lv 4 / Required Lv 140 / Socket 0 / for Rune Knight";
  301. callsub L_Reward, 1490, 300, 300, 400; //Giant_Lance
  302. break;
  303. case 8:
  304. mes "<<Chilly Spell Book[2]>>";
  305. mes "MATK + 160, DEX + 1. Increases ATK % of Cold Bolt, Diamond Dust equivalent to 3 times Refine Lv, also SP consumption from those skills increased equivalent to 5 times Refine Lv. Undestroyable.";
  306. mes "Book / ATK 100 / Weight 100 / Water Property / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Sorcerer";
  307. callsub L_Reward, 1584, 50, 100, 40; //Chilly_Spell_Book
  308. break;
  309. case 9:
  310. mes "<<Recovery Light[1]>>";
  311. mes "MATK + 160. Depending on its Refine Lv, Heal Ability and SP consumption for the skill increased. Indestructible.";
  312. mes "One-Handed Staff / ATK 30 / Weight 40 / Saint Property / Weapon Lv 4 / Required Lv 110 / Socket 1 / for Archbishop.";
  313. callsub L_Reward, 1659, 50, 100, 35; //Recovery_Light
  314. break;
  315. case 10:
  316. mes "<<Aztoe Nail[0]>>";
  317. mes "MATK + 80. For Physical Melee Attack, cast Freezing to the target with a certain chance. The chance is affected by Refine Lv.";
  318. mes "Dagger / ATK 160 / Weight 50 / Wind Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Thief Classes";
  319. callsub L_Reward, 13069, 50, 100, 35; //Aztoe_Nail
  320. break;
  321. case 11:
  322. mes "<<Scarletto Nail[0]>>";
  323. mes "MATK + 80. For Physical Melee Attack, cast Stone curse to the target with a certain chance. The chance is affected by Refine Lv.";
  324. mes "Dagger / ATK 160 / Weight 50 / Fire Property / Weapon Lv 4 / Required Lv 110 / Socket 0 / for High Swordman/Merchant/Thief Classes";
  325. callsub L_Reward, 13070, 50, 100, 35; //Scarletto_Nail
  326. break;
  327. case 12:
  328. mes "<<Bloody Cross[0]>>";
  329. mes "For Physical Melee Attack, autocast 'Hell Inferno'(Lv 1) with a certain chance. The chance is affected by Refine Lv.";
  330. mes "Mace / ATK 170 / Weight 150 / Darkness Property / Weapon Lv 4 / Required Lv 100 / Socket 0 / for High Acolyte Classes";
  331. callsub L_Reward, 16017, 50, 100, 40; //Bloody_Cross
  332. break;
  333. case 13:
  334. mes "<<Catapult[2]>>";
  335. mes "Increases ATK % of 'Triangle Shot' equivalent to 2 times Refine Lv, Also SP consumption from the skill increased.";
  336. mes "Bow / ATK 150 / Weight 110 / Weapon Lv 4 / Required Lv 100 / Socket 2 / for Shadow Chaser";
  337. callsub L_Reward, 18109, 50, 100, 35; //Catapult
  338. break;
  339. case 14:
  340. mes "<<Big CrossBow[2]>>";
  341. mes "Increases ATK % of 'Arrow Storm' equivalent to 5 times Refine Lv. Also SP consumption from the skill increased, If the Original AGI points are 120, ASPD + 1.";
  342. mes "Bow / ATK 160 / Weight 90 / Weapon Lv 4 / Required Lv 110 / Socket 2 / for Ranger";
  343. callsub L_Reward, 18110, 50, 100, 35; //Big_CrossBow
  344. break;
  345. case 15:
  346. mes "<<Creeper Bow[2]>>";
  347. mes "DEX + 1, For Physical Attack, auto-cast 'Fiber Lock'(Lv 1) with a certain chance.";
  348. mes "Bow / ATK 150 / Weight 150 / Weapon Lv 3 / Required Lv 120 / Socket 2 / for 3rd Archer Classes";
  349. callsub L_Reward, 18111, 50, 100, 35; //Creeper_Bow
  350. break;
  351. }
  352. if (.@break) {
  353. .@break = 0;
  354. break;
  355. }
  356. }
  357. }
  358. }
  359. close;
  360. L_Reward:
  361. setarray .@amount[0], getarg(1), getarg(2), getarg(3);
  362. next;
  363. mes ""+ .@amount[0] +" Will of Warrior, "+ .@amount[1] +" Thirst for Blood, "+ .@amount[2] +" Chill of the Dead are needed for the exchange.";
  364. next;
  365. if (countitem(6469) >= .@amount[0] && countitem(6470) >= .@amount[1] && countitem(6471) >= .@amount[2]) {
  366. if (select("Don't exchange", "Exchange") == 1) {
  367. mes "[Weird old man]";
  368. mes "Okay..";
  369. close;
  370. }
  371. emotion ET_PROFUSELY_SWEAT;
  372. progressbar "FF00FF", 2;
  373. delitem 6469, .@amount[0]; //Will_Of_Warrior
  374. delitem 6470, .@amount[1]; //Blood_Thirst
  375. delitem 6471, .@amount[2]; //Goast_Chill
  376. getitem getarg(0), 1;
  377. mes "[Weird old man]";
  378. mes "There you go. Visit me sometimes and we could talk.";
  379. close;
  380. }
  381. return;
  382. }
  383. // Sorcerer (Rewards)
  384. //============================================================
  385. lhz_cube,233,24,4 script Sorcerer#Bio4Reward 4_M_UMDANCEKID,{
  386. if ((MaxWeight - Weight) < 1200 || !checkweight(1201, 1)) {
  387. mes "^FF0000 Check up your inventory. You got too many items to carry out the quest. ^000000";
  388. close;
  389. }
  390. disable_items;
  391. mes "[Pudding]";
  392. mes "... .... ...";
  393. next;
  394. switch(select("Umba umba humbaa", "What are you doing here?", "Which are the equipments found so far?", "Here you are, sir.")) {
  395. case 1:
  396. emotion ET_FRET;
  397. mes "[Pudding]";
  398. mes "Hey, excuse me, but I'm not from Umbala! You are so rude.";
  399. close;
  400. case 2:
  401. mes "[Pudding]";
  402. mes "As you can see I'm a training Sorcerer, and my name is Pudding.";
  403. next;
  404. select("....?");
  405. emotion ET_FRET;
  406. mes "[Pudding]";
  407. mes "... What's that face? I'm starting to feel unpleasant..";
  408. next;
  409. emotion ET_OK;
  410. mes "[Pudding]";
  411. mes "A couple of days ago while I was undergoing discipline, I felt a strange, bizarre tinge. So I followed that and it brought me here.";
  412. next;
  413. select("I see.");
  414. mes "[Pudding]";
  415. mes "OK, let me continue. I become bothered if you disturb me while I'm talking.";
  416. next;
  417. mes "[Pudding]";
  418. mes "And I entered to the laboratory here in order to investigate and oh gosh! I found those monsters which were like doppelgangers from 'Geffen Dungeon'. It was full of them.";
  419. next;
  420. mes "[Pudding]";
  421. mes "From those monsters, I could find rare items like '^F2766EWill of Warrior^000000', '^952420Thirst for Blood^000000', and '^88C6F7Chill of the Dead^000000' which you cannot find in any other place.";
  422. next;
  423. emotion ET_QUESTION;
  424. mes "[Pudding]";
  425. mes "And after many hours of research on my own, I finally figured out a way to use those items. Do you wanna know?";
  426. next;
  427. switch(select("Oh....pardon?!", "Of course, I really wanna know.")) {
  428. case 1:
  429. emotion ET_HUK, playerattached();
  430. emotion ET_FRET;
  431. mes "[Pudding]";
  432. mes "Oh my! You fell asleep after you asked me something? Well, anyway I feel lazy to explain again so I will just continue.";
  433. next;
  434. break;
  435. case 2:
  436. emotion ET_SMILE;
  437. mes "[Pudding]";
  438. mes "Good, I am content that you are listening to my story carefully. Then I will keep explaining.";
  439. next;
  440. break;
  441. }
  442. mes "[Pudding]";
  443. mes "Those '^F2766EWill of Warrior^000000' and '^952420Thirst for Blood^000000'..... are aggressive but warm materials.";
  444. next;
  445. mes "[Pudding]";
  446. mes "So '^F2766EWill of Warrior^000000' can dwell a special power to the 4th slot of an equipment,";
  447. next;
  448. mes "[Pudding]";
  449. mes "and '^952420Thirst for Blood^000000' can dwell a special power to the 3rd slot.";
  450. next;
  451. mes "[Pudding]";
  452. mes "Whereas!!!";
  453. mes "'^88C6F7Chill of the Dead^000000' is a cold type material";
  454. mes "which allows the return of power from '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000' so makes the equipment no longer enchanted.";
  455. next;
  456. mes "[Pudding]";
  457. mes "What do you say? Doesn't it sound interesting? But, there's a problem...";
  458. next;
  459. mes "[Pudding]";
  460. mes "Since those materials can only be found from the monsters in the Lab., the special power also can be dwelt into certain equipments which can be obtained from the Lab.";
  461. next;
  462. select("So what's the conclusion?");
  463. emotion ET_QUESTION, playerattached();
  464. emotion ET_FRET;
  465. mes "[Pudding]";
  466. mes "Gee.. I told you not to cut while I talk, didn't I? Well, I will answer that because that's important.";
  467. next;
  468. mes "[Pudding]";
  469. mes "If you bring me 10 '^F2766EWill of Warrior^000000' or 10 '^952420Thirst for Blood^000000', I will dwell some power to certain equipments that you can find in the Lab..";
  470. next;
  471. mes "[Pudding]";
  472. mes "And if you are not satisfied with the power you got, bring me 10 '^88C6F7Chill of the Dead^000000', and I will take off that power.";
  473. next;
  474. mes "[Pudding]";
  475. mes "What do you say? Having both options.....quite nice, huh?";
  476. next;
  477. mes "[Pudding]";
  478. mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
  479. close;
  480. case 3:
  481. mes "[Pudding]";
  482. mes "Hm.... Equipment which are discovered so far are....";
  483. next;
  484. mes "- checking -";
  485. mes "Pudding takes some paper out from a pocket.";
  486. next;
  487. mes "[Pudding]";
  488. mes "Let me see.. the equipments discovered until now are....";
  489. mes "7 Armors, 14 Weapons.";
  490. next;
  491. while(1) {
  492. switch(select("Ok, I don't have to know more.", "7 Armors", "14 Weapons")) {
  493. case 1:
  494. mes "[Pudding]";
  495. mes "If you obtain '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', and obtain also equipment which is capable to accept their power, bring them to me. I will be waiting.";
  496. close;
  497. case 2:
  498. mes "< Armor List >";
  499. mes "Giant Shield[1]";
  500. mes "Ancient Book of Geffenia-Water[1]";
  501. mes "Bible of Promise(2nd Vol.)[1]";
  502. mes "Salvage Cape[0]";
  503. mes "Assassin's Handcuffs[1]";
  504. mes "Green Operating Gown[1]";
  505. mes "Ancient Gold Decoration[1]";
  506. next;
  507. mes "[Pudding]";
  508. mes "So far these are the Armors discovered. Do you wanna see other things?";
  509. next;
  510. break;
  511. case 3:
  512. mes "< Weapon List >";
  513. mes "Agent Katar[1]";
  514. mes "Guillotine Katar[1]";
  515. mes "Ygnus Stale[1]";
  516. mes "End Sektura[1]";
  517. mes "Cannon Spear[1]";
  518. mes "Giant Lance[0]";
  519. mes "Chilly Spell Book[2]";
  520. mes "Recovery Light[1]";
  521. mes "Aztoe Nail[0]";
  522. mes "Scarletto Nail[0]";
  523. mes "Bloody Cross[0]";
  524. mes "Catapult[2]";
  525. mes "Big CrossBow[2]";
  526. mes "Creeper Bow[2]";
  527. next;
  528. mes "[Pudding]";
  529. mes "So far these are the Weapons discovered. Do you wanna see other things?";
  530. next;
  531. break;
  532. }
  533. }
  534. close;
  535. case 4:
  536. emotion ET_SPARK;
  537. mes "[Pudding]";
  538. mes "Ohhhhh Have you brought them?";
  539. next;
  540. break;
  541. }
  542. mes "[Pudding]";
  543. mes "OKAY! In which equipment you want to dwell the power?";
  544. next;
  545. setarray .@parts[0], EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_TOP;
  546. for(.@i = 0; .@i < 7; .@i++) {
  547. if (!getequipisequiped(.@parts[.@i])) {
  548. switch(.@i) {
  549. case 0:
  550. .@equipped$[.@i] = "^999999Armor-[Not equipped]^000000";
  551. break;
  552. case 1:
  553. .@equipped$[.@i] = "^999999Left Hand-[Not equipped]^000000";
  554. break;
  555. case 2:
  556. .@equipped$[.@i] = "^999999Right Hand-[Not equipped]^000000";
  557. break;
  558. case 3:
  559. .@equipped$[.@i] = "^999999Garment-[Not equipped]^000000";
  560. break;
  561. case 4:
  562. .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
  563. break;
  564. case 5:
  565. .@equipped$[.@i] = "^999999Accessory-[Not equipped]^000000";
  566. break;
  567. case 6:
  568. .@equipped$[.@i] = "^999999Helm-[Not equipped]^000000";
  569. break;
  570. }
  571. } else {
  572. .@equipped$[.@i] = getequipname(.@parts[.@i]);
  573. }
  574. }
  575. switch(select("I changed my mind.", .@equipped$[0], .@equipped$[1], .@equipped$[2], .@equipped$[3], .@equipped$[4],
  576. .@equipped$[5], .@equipped$[6])) {
  577. case 1:
  578. mes "[Pudding]";
  579. mes "Well, I was looking forward to doing it, but I cannot help then.";
  580. close;
  581. case 2:
  582. if (!getequipisequiped(EQI_ARMOR)) {
  583. mes "[Pudding]";
  584. mes "Hey..Where is the armor?";
  585. close;
  586. }
  587. .@part = EQI_ARMOR;
  588. break;
  589. case 3:
  590. if (!getequipisequiped(EQI_HAND_L)) {
  591. mes "[Pudding]";
  592. mes "Well.. You have nothing equipped on the left hand.";
  593. close;
  594. }
  595. .@part = EQI_HAND_L;
  596. break;
  597. case 4:
  598. if (!getequipisequiped(EQI_HAND_R)) {
  599. mes "[Pudding]";
  600. mes "Well.. You have nothing equipped on the right hand.";
  601. close;
  602. }
  603. .@part = EQI_HAND_R;
  604. break;
  605. case 5:
  606. if (!getequipisequiped(EQI_GARMENT)) {
  607. mes "[Pudding]";
  608. mes "Um.... Where's your robe?";
  609. close;
  610. }
  611. .@part = EQI_GARMENT;
  612. break;
  613. case 6:
  614. if (!getequipisequiped(EQI_ACC_L)) {
  615. mes "[Pudding]";
  616. mes ".....Where's the accessory?";
  617. close;
  618. }
  619. .@part = EQI_ACC_L;
  620. break;
  621. case 7:
  622. if (!getequipisequiped(EQI_ACC_R)) {
  623. mes "[Pudding]";
  624. mes ".....Where's the accessory?";
  625. close;
  626. }
  627. .@part = EQI_ACC_R;
  628. break;
  629. case 8:
  630. if (!getequipisequiped(EQI_HEAD_TOP)) {
  631. mes "[Pudding]";
  632. mes "Hey.. Are you not wearing any helm?";
  633. close;
  634. }
  635. .@part = EQI_HEAD_TOP;
  636. break;
  637. }
  638. .@refine_count = getequiprefinerycnt(.@part);
  639. .@equip_item = getequipid(.@part);
  640. setarray .@equip_card[0], getequipcardid(.@part,0), getequipcardid(.@part,1), getequipcardid(.@part,2), getequipcardid(.@part,3);
  641. .@lhz_max_num = 4000;
  642. if (.@equip_item == 13069 || .@equip_item == 1291 || .@equip_item == 1392 ||
  643. .@equip_item == 1393 || .@equip_item == 1435 || .@equip_item == 1490 ||
  644. .@equip_item == 13069 || .@equip_item == 13070 || .@equip_item == 16017) {
  645. .@type = 1;
  646. if (.@equip_item == 1490)
  647. .@lhz_max_num = 4200;
  648. } else if (.@equip_item == 18109 || .@equip_item == 18110 || .@equip_item == 18111) {
  649. .@type = 2;
  650. } else if (.@equip_item == 1584 || .@equip_item == 1659) {
  651. .@type = 3;
  652. } else if (.@equip_item == 2160 || .@equip_item == 2161 || .@equip_item == 2162 ||
  653. .@equip_item == 2582 || .@equip_item == 2892 || .@equip_item == 15044 ||
  654. .@equip_item == 18570) {
  655. .@type = 4;
  656. if (.@equip_item == 2582 || .@equip_item == 18570)
  657. .@lhz_max_num = 4200;
  658. } else {
  659. mes "[Pudding]";
  660. mes "First! I need to check if this equipment can accept the power.";
  661. next;
  662. specialeffect2 EF_SPHERE;
  663. progressbar "ffff00", 2;
  664. specialeffect2 EF_SUI_EXPLOSION;
  665. emotion ET_CRY;
  666. mes "[Pudding]";
  667. mes "Hm.... This equipment cannot accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
  668. close;
  669. }
  670. emotion ET_DELIGHT;
  671. mes "[Pudding]";
  672. mes "OHHH.. This equipment could accept the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000'.";
  673. next;
  674. if (countitem(6469) >= 10)
  675. .@menu_in$[1] = "Dwell the power of '^F2766EWill of Warrior^000000'";
  676. else
  677. .@menu_in$[1] = "Not enough ^999999'Will of Warrior'^000000";
  678. if (countitem(6470) >= 10)
  679. .@menu_in$[2] = "Dwell the power of '^952420Thirst for Blood^000000'";
  680. else
  681. .@menu_in$[2] = "Not enough ^999999'Thirst for Blood'^000000";
  682. if (countitem(6471) >= 10)
  683. .@menu_in$[3] = "Consume the '^88C6F7Chill of the Dead^000000'";
  684. else
  685. .@menu_in$[3] = "Not enough ^999999'Chill of the Dead'^000000";
  686. mes "[Pudding]";
  687. mes "OK! Which power do you want to dwell into your equipment?";
  688. next;
  689. switch(select("I say no! I don't need that!!", .@menu_in$[1], .@menu_in$[2], .@menu_in$[3])) {
  690. case 1:
  691. mes "[Pudding]";
  692. mes "Ohhh.. I was looking forward to doing it, but it's all up to you......";
  693. close;
  694. case 2:
  695. if (countitem(6469) < 10) {
  696. mes "[Pudding]";
  697. mes "Not enough '^F2766EWill of Warrior^000000'. You need to bring 10 '^F2766EWill of Warrior^000000'";
  698. close;
  699. }
  700. else if (.@equip_card[3] > 0) {
  701. mes "[Pudding]";
  702. mes "This equipment already has the power of '^F2766EWill of Warrior^000000'.";
  703. close;
  704. } else {
  705. .@socket_type = 4;
  706. }
  707. break;
  708. case 3:
  709. if (countitem(6470) < 10) {
  710. mes "[Pudding]";
  711. mes "Not enough '^952420Thirst for Blood^000000'. You need to bring 10 '^952420Thirst for Blood^000000'";
  712. close;
  713. }
  714. else if (.@equip_card[2] > 0) {
  715. mes "[Pudding]";
  716. mes "This equipment already has the power of '^952420Thirst for Blood^000000'.";
  717. close;
  718. } else {
  719. .@socket_type = 3;
  720. }
  721. break;
  722. case 4:
  723. // Enchant Removal
  724. if (countitem(6471) < 10) {
  725. .@menu_clear$[1] = "^999999Not enough 'Chill of the Dead'^000000";
  726. .@menu_clear$[2] = "^999999Not enough 'Chill of the Dead'^000000";
  727. .@4thzptsodyd = 1;
  728. .@3thzptsodyd = 1;
  729. } else {
  730. if (.@equip_card[3] > 0) {
  731. .@menu_clear$[1] = "Remove the power of '^F2766EWill of Warrior^000000'";
  732. } else {
  733. .@menu_clear$[1] = "^999999There's no power to remove^000000";
  734. .@4thzptsodyd = 1;
  735. }
  736. if (.@equip_card[2] > 0) {
  737. .@menu_clear$[2] = "Remove the power of '^952420Thirst for Blood^000000'";
  738. } else {
  739. .@menu_clear$[2] = "^999999There's no power to remove^000000";
  740. .@3thzptsodyd = 1;
  741. }
  742. }
  743. mes "[Pudding]";
  744. mes "Alright, which power do you want to remove?";
  745. next;
  746. .@menu = select("No, I don't wanna remove any.", .@menu_clear$[1], .@menu_clear$[2]);
  747. switch(.@menu){
  748. case 1:
  749. mes "[Pudding]";
  750. mes "Really? Ok. I got it..";
  751. close;
  752. case 2:
  753. case 3:
  754. if (countitem(6471) < 10) {
  755. mes "[Pudding]";
  756. mes "Not enough '^88C6F7Chill of the Dead^000000'. You need to bring 10 '^88C6F7Chill of the Dead^000000'";
  757. close;
  758. }
  759. if ( (.@menu==3 && .@3thzptsodyd == 1) || (.@menu==2 && .@4thzptsodyd == 1) ) {
  760. mes "[Pudding]";
  761. mes "This equipment didn't get any special power.";
  762. close;
  763. }
  764. specialeffect EF_BEGINSPELL2;
  765. progressbar "ffff00", 2;
  766. specialeffect2 EF_FROSTWEAPON;
  767. delitem 6471, 10; //Goast_Chill
  768. // anti-hack
  769. if (callfunc("F_IsEquipIDHack", .@part, .@equip_item) || callfunc("F_IsEquipCardHack", .@part, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]) || callfunc("F_IsEquipRefineHack", .@part, .@refine_count))
  770. close;
  771. if (.@menu == 2)
  772. .@equip_card[3] = 0;
  773. else
  774. .@equip_card[2] = 0;
  775. delequip .@part;
  776. getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
  777. mes "[Pudding]";
  778. if (.@menu == 3)
  779. mes "The power of '^952420Thirst for Blood^000000' has been perfectly removed.";
  780. else
  781. mes "The power of '^F2766EWill of Warrior^000000' has been perfectly removed.";
  782. close;
  783. }
  784. }
  785. mes "[Pudding]";
  786. mes "Before I dwell the power, let me caution you.";
  787. next;
  788. mes "[Pudding]";
  789. mes "While I dwell the power of '^F2766EWill of Warrior^000000' or '^952420Thirst for Blood^000000', the equipment could be not capable of accepting it and will be destroyed as a result..";
  790. next;
  791. mes "[Pudding]";
  792. mes "^9D2628If the equipment is destroyed, you will also lose the cards you inserted in it, and the refine Lv will be removed too.^000000";
  793. next;
  794. mes "[Pudding]";
  795. mes "Alright. Do you really wish to dwell the power into the equipment?";
  796. next;
  797. if (select("Wait, I will think again.", "Sure, carry on.") == 1) {
  798. mes "[Pudding]";
  799. mes "OK. I hope to see you again.";
  800. close;
  801. }
  802. mes "[Pudding]";
  803. mes "I hope you made the correct decision...";
  804. next;
  805. if (.@socket_type >= 3) {
  806. switch(.@type){
  807. case 1: // Short Distance
  808. .@r = rand(1, .@lhz_max_num);
  809. if (.@r < 401) .@enchant = 4700; //Strength1
  810. else if (.@r < 441) .@enchant = 4701; //Strength2
  811. else if (.@r < 445) .@enchant = 4702; //Strength3
  812. else if (.@r < 845) .@enchant = 4730; //Agility1
  813. else if (.@r < 885) .@enchant = 4731; //Agility2
  814. else if (.@r < 889) .@enchant = 4732; //Agility3
  815. else if (.@r < 1289) .@enchant = 4740; //Vitality1
  816. else if (.@r < 1329) .@enchant = 4741; //Vitality2
  817. else if (.@r < 1333) .@enchant = 4742; //Vitality3
  818. else if (.@r < 1523) .@enchant = 4710; //Inteligence1
  819. else if (.@r < 1542) .@enchant = 4711; //Inteligence2
  820. else if (.@r < 1544) .@enchant = 4712; //Inteligence3
  821. else if (.@r < 1844) .@enchant = 4720; //Dexterity1
  822. else if (.@r < 1874) .@enchant = 4721; //Dexterity2
  823. else if (.@r < 1877) .@enchant = 4722; //Dexterity3
  824. else if (.@r < 2067) .@enchant = 4750; //Luck1
  825. else if (.@r < 2086) .@enchant = 4751; //Luck2
  826. else if (.@r < 2088) .@enchant = 4752; //Luck3
  827. else if (.@r < 2491) .@enchant = 0;
  828. else if (.@r < 2891) .@enchant = 4811; //Fighting_Spirit1
  829. else if (.@r < 2931) .@enchant = 4810; //Fighting_Spirit2
  830. else if (.@r < 2935) .@enchant = 4809; //Fighting_Spirit3
  831. else if (.@r < 3125) .@enchant = 4815; //Spell1
  832. else if (.@r < 3144) .@enchant = 4814; //Spell2
  833. else if (.@r < 3146) .@enchant = 4813; //Spell3
  834. else if (.@r < 3148) .@enchant = 4807; //Atk_Speed1
  835. else if (.@r < 3348) .@enchant = 4818; //Sharp1
  836. else if (.@r < 3368) .@enchant = 4817; //Sharp2
  837. else if (.@r < 3370) .@enchant = 4816; //Sharp3
  838. else if (.@r < 3560) .@enchant = 4832; //Expert_Archer1
  839. else if (.@r < 3579) .@enchant = 4833; //Expert_Archer2
  840. else if (.@r < 3581) .@enchant = 4834; //Expert_Archer3
  841. else .@enchant = 0;
  842. break;
  843. case 2: // Long Distance
  844. .@r = rand(1, .@lhz_max_num);
  845. if (.@r < 191) .@enchant = 4700; //Strength1
  846. else if (.@r < 210) .@enchant = 4701; //Strength2
  847. else if (.@r < 212) .@enchant = 4702; //Strength3
  848. else if (.@r < 612) .@enchant = 4730; //Agility1
  849. else if (.@r < 652) .@enchant = 4731; //Agility2
  850. else if (.@r < 656) .@enchant = 4732; //Agility3
  851. else if (.@r < 846) .@enchant = 4740; //Vitality1
  852. else if (.@r < 865) .@enchant = 4741; //Vitality2
  853. else if (.@r < 867) .@enchant = 4742; //Vitality3
  854. else if (.@r < 1167) .@enchant = 4710; //Inteligence1
  855. else if (.@r < 1197) .@enchant = 4711; //Inteligence2
  856. else if (.@r < 1200) .@enchant = 4712; //Inteligence3
  857. else if (.@r < 1600) .@enchant = 4720; //Dexterity1
  858. else if (.@r < 1640) .@enchant = 4721; //Dexterity2
  859. else if (.@r < 1644) .@enchant = 4722; //Dexterity3
  860. else if (.@r < 1834) .@enchant = 4750; //Luck1
  861. else if (.@r < 1853) .@enchant = 4751; //Luck2
  862. else if (.@r < 1855) .@enchant = 4752; //Luck3
  863. else if (.@r < 2258) .@enchant = 0;
  864. else if (.@r < 2448) .@enchant = 4811; //Fighting_Spirit1
  865. else if (.@r < 2467) .@enchant = 4810; //Fighting_Spirit2
  866. else if (.@r < 2469) .@enchant = 4809; //Fighting_Spirit3
  867. else if (.@r < 2669) .@enchant = 4815; //Spell1
  868. else if (.@r < 2689) .@enchant = 4814; //Spell2
  869. else if (.@r < 2691) .@enchant = 4813; //Spell3
  870. else if (.@r < 2693) .@enchant = 4807; //Atk_Speed1
  871. else if (.@r < 3093) .@enchant = 4818; //Sharp1
  872. else if (.@r < 3133) .@enchant = 4817; //Sharp2
  873. else if (.@r < 3137) .@enchant = 4816; //Sharp3
  874. else if (.@r < 3537) .@enchant = 4832; //Expert_Archer1
  875. else if (.@r < 3577) .@enchant = 4833; //Expert_Archer2
  876. else if (.@r < 3581) .@enchant = 4834; //Expert_Archer3
  877. else .@enchant = 0;
  878. break;
  879. case 3:
  880. .@r = rand(1, .@lhz_max_num);
  881. if (.@r < 301) .@enchant = 4700; //Strength1
  882. else if (.@r < 331) .@enchant = 4701; //Strength2
  883. else if (.@r < 334) .@enchant = 4702; //Strength3
  884. else if (.@r < 534) .@enchant = 4730; //Agility1
  885. else if (.@r < 554) .@enchant = 4731; //Agility2
  886. else if (.@r < 556) .@enchant = 4732; //Agility3
  887. else if (.@r < 956) .@enchant = 4740; //Vitality1
  888. else if (.@r < 996) .@enchant = 4741; //Vitality2
  889. else if (.@r < 1000) .@enchant = 4742; //Vitality3
  890. else if (.@r < 1400) .@enchant = 4710; //Inteligence1
  891. else if (.@r < 1440) .@enchant = 4711; //Inteligence2
  892. else if (.@r < 1444) .@enchant = 4712; //Inteligence3
  893. else if (.@r < 1844) .@enchant = 4720; //Dexterity1
  894. else if (.@r < 1884) .@enchant = 4721; //Dexterity2
  895. else if (.@r < 1888) .@enchant = 4722; //Dexterity3
  896. else if (.@r < 2078) .@enchant = 4750; //Luck1
  897. else if (.@r < 2097) .@enchant = 4751; //Luck2
  898. else if (.@r < 2099) .@enchant = 4752; //Luck3
  899. else if (.@r < 2502) .@enchant = 0;
  900. else if (.@r < 2692) .@enchant = 4811; //Fighting_Spirit1
  901. else if (.@r < 2711) .@enchant = 4810; //Fighting_Spirit2
  902. else if (.@r < 2713) .@enchant = 4809; //Fighting_Spirit3
  903. else if (.@r < 3113) .@enchant = 4815; //Spell1
  904. else if (.@r < 3153) .@enchant = 4814; //Spell2
  905. else if (.@r < 3157) .@enchant = 4813; //Spell3
  906. else if (.@r < 3159) .@enchant = 4807; //Atk_Speed1
  907. else if (.@r < 3349) .@enchant = 4818; //Sharp1
  908. else if (.@r < 3368) .@enchant = 4817; //Sharp2
  909. else if (.@r < 3370) .@enchant = 4816; //Sharp3
  910. else if (.@r < 3560) .@enchant = 4832; //Expert_Archer1
  911. else if (.@r < 3579) .@enchant = 4833; //Expert_Archer2
  912. else if (.@r < 3581) .@enchant = 4834; //Expert_Archer3
  913. else .@enchant = 0;
  914. break;
  915. case 4: // Armor
  916. .@r = rand(1, .@lhz_max_num);
  917. if (.@r < 301) .@enchant = 4700; //Strength1
  918. else if (.@r < 331) .@enchant = 4701; //Strength2
  919. else if (.@r < 334) .@enchant = 4702; //Strength3
  920. else if (.@r < 634) .@enchant = 4730; //Agility1
  921. else if (.@r < 664) .@enchant = 4731; //Agility2
  922. else if (.@r < 667) .@enchant = 4732; //Agility3
  923. else if (.@r < 967) .@enchant = 4740; //Vitality1
  924. else if (.@r < 997) .@enchant = 4741; //Vitality2
  925. else if (.@r < 1000) .@enchant = 4742; //Vitality3
  926. else if (.@r < 1300) .@enchant = 4710; //Inteligence1
  927. else if (.@r < 1330) .@enchant = 4711; //Inteligence2
  928. else if (.@r < 1333) .@enchant = 4712; //Inteligence3
  929. else if (.@r < 1633) .@enchant = 4720; //Dexterity1
  930. else if (.@r < 1663) .@enchant = 4721; //Dexterity2
  931. else if (.@r < 1666) .@enchant = 4722; //Dexterity3
  932. else if (.@r < 1966) .@enchant = 4750; //Luck1
  933. else if (.@r < 1996) .@enchant = 4751; //Luck2
  934. else if (.@r < 1999) .@enchant = 4752; //Luck3
  935. else if (.@r < 2399) .@enchant = 0;
  936. else if (.@r < 2549) .@enchant = 4786; //Mdef2
  937. else if (.@r < 2599) .@enchant = 4787; //Mdef4
  938. else if (.@r < 2609) .@enchant = 4788; //Mdef6
  939. else if (.@r < 2614) .@enchant = 4789; //Mdef8
  940. else if (.@r < 2616) .@enchant = 4790; //Mdef10
  941. else if (.@r < 2766) .@enchant = 4791; //Def3
  942. else if (.@r < 2866) .@enchant = 4792; //Def6
  943. else if (.@r < 2876) .@enchant = 4793; //Def9
  944. else if (.@r < 2878) .@enchant = 4794; //Def12
  945. else if (.@r < 3278) .@enchant = 0;
  946. else if (.@r < 3428) .@enchant = 4859; //Evasion1
  947. else if (.@r < 3478) .@enchant = 4860; //Evasion3
  948. else if (.@r < 3488) .@enchant = 4762; //Evasion6
  949. else if (.@r < 3498) .@enchant = 4800; //SP50
  950. else if (.@r < 3734) .@enchant = 4795; //HP100
  951. else if (.@r < 3834) .@enchant = 4796; //HP200
  952. else if (.@r < 3884) .@enchant = 4797; //HP300
  953. else .@enchant = 0;
  954. break;
  955. }
  956. specialeffect EF_BEGINSPELL3;
  957. progressbar "ffff00", 2;
  958. if (.@socket_type == 3)
  959. delitem 6470, 10; //Blood_Thirst
  960. else
  961. delitem 6469, 10; //Will_Of_Warrior
  962. // anti-hack
  963. if (callfunc("F_IsEquipIDHack", .@part, .@equip_item) || callfunc("F_IsEquipCardHack", .@part, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3]) || callfunc("F_IsEquipRefineHack", .@part, .@refine_count))
  964. close;
  965. .@equip_card[(.@socket_type-1)] = .@enchant;
  966. delequip .@part;
  967. if (.@enchant == 0){
  968. specialeffect2 EF_SUI_EXPLOSION;
  969. emotion ET_OTL;
  970. mes "[Pudding]";
  971. mes "...Well....the equipment could not accept the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" and it got destroyed.";
  972. close;
  973. } else {
  974. specialeffect2 EF_FIREHIT;
  975. getitem2 .@equip_item, 1, 1, .@refine_count, 0, .@equip_card[0], .@equip_card[1], .@equip_card[2], .@equip_card[3];
  976. emotion ET_DELIGHT;
  977. mes "[Pudding]";
  978. mes "Fortunately, the power of "+((.@socket_type==3)?"'^952420Thirst for Blood^000000'":"'^F2766EWill of Warrior^000000'")+" has been dwelt well into your equipment...";
  979. close;
  980. }
  981. }
  982. end;
  983. }