Advertisement
Guest User

Untitled

a guest
Aug 25th, 2013
203
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.77 KB | None | 0 0
  1. Maintown,79,103,6 script Ferre#ferre 826,{
  2. callfunc "refinenew2","Blacksmith Hamma",0;
  3. end;
  4. }
  5.  
  6. //============================================================
  7. //= To allow auto safe refining/multiple refining set the
  8. //= second argument to '1' in the function call.
  9. //============================================================
  10. //Credits to hendra814
  11. function script refinenew2 {
  12. set .@features,getarg(1);
  13. mes "[" + getarg(0) + "]";
  14. mes "I'm Bestri brother.";
  15. mes "I can refine all kinds of weapons, armor and equipment, so let me";
  16. mes "know what you want me to refine.";
  17. next;
  18.  
  19. setarray .@position$[1], "Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
  20. set .@menu$,"";
  21. for( set .@i,1; .@i <= 7; set .@i,.@i+1 ){
  22. if(getequipisequiped(.@i)) set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]:";
  23. }
  24. set .@part,select(.@menu$);
  25. if(!getequipisequiped(.@part)){
  26. mes "[" + getarg(0) + "]";
  27. mes "You're not wearing";
  28. mes "anything there that";
  29. mes "I can refine.";
  30. emotion 6;
  31. close;
  32. }
  33. //Check if the item is refinable...
  34. if(!getequipisenableref(.@part)){
  35. mes "[" + getarg(0) + "]";
  36. mes "I don't think I can";
  37. mes "refine this item at all...";
  38. close;
  39. }
  40. //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
  41. if(!getequipisidentify(.@part)){
  42. mes "[" + getarg(0) + "]";
  43. mes "You can't refine this";
  44. mes "if you haven't appraised";
  45. mes "it first. Make sure your";
  46. mes "stuff is identified before";
  47. mes "I can refine it.";
  48. close;
  49. }
  50. //Check to see if the items is between +7 and +10
  51. if(getequiprefinerycnt(.@part) >=10){
  52. mes "[" + getarg(0) + "]";
  53. mes "I can't refine this";
  54. mes "any more. This is as";
  55. mes "refined as it gets!";
  56. close;
  57. }
  58. if(getequiprefinerycnt(.@part) <6){
  59. mes "[" + getarg(0) + "]";
  60. mes "I can't refine this yet.";
  61. mes "Upgrade it to ^0000FFatleast +6^000000";
  62. mes "before you bring it to me.";
  63. close;
  64. }
  65. set .@refineitemid, getequipid(.@part); // save id of the item
  66. set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
  67. switch(getequipweaponlv(.@part)){
  68. case 0: //Refine Armor
  69. set .@price,20000;
  70. set .@material,7619;
  71. set .@safe,4;
  72. break;
  73. case 1: //Refine Level 1 Weapon
  74. set .@price,20000;
  75. set .@material,7620;
  76. set .@safe,7;
  77. break;
  78. case 2: //Refine Level 2 Weapon
  79. set .@price,20000;
  80. set .@material,7620;
  81. set .@safe,6;
  82. break;
  83. case 3: //Refine Level 3 Weapon
  84. set .@price,20000;
  85. set .@material,7620;
  86. set .@safe,5;
  87. break;
  88. case 4: //Refine Level 4 Weapon
  89. set .@price,20000;
  90. set .@material,7619;
  91. set .@safe,4;
  92. break;
  93. case 5: //Refine other stuff?
  94. set .@price,20000;
  95. set .@material,7619;
  96. set .@safe,4;
  97. break;
  98. }
  99. if(.@features != 1) {
  100. mes "[" + getarg(0) + "]";
  101. mes "To refine this I need";
  102. mes "one ^003366"+getitemname(.@material)+"^000000 and";
  103. mes "a service fee of " + .@price + " Zeny.";
  104. mes "Do you really wish to continue?";
  105. next;
  106. if(select("Yes:No")-1){
  107. mes "[" + getarg(0) + "]";
  108. mes "Yeah...";
  109. mes "There's no need to";
  110. mes "rush. Take your time.";
  111. close;
  112. }
  113. if(getequippercentrefinery(.@part) < 100) {
  114. mes "[" + getarg(0) + "]";
  115. mes "Oh no! If I continue to";
  116. mes "refine this, there's a risk it could";
  117. mes "be ^FF0000downgraded by 1 levels!^000000";
  118. mes "Do you still want to refine?";
  119. next;
  120. if(select("Yes:No") == 2){
  121. mes "[" + getarg(0) + "]";
  122. mes "I completely agree...";
  123. mes "I might be a great refiner, but sometimes even I make mistakes.";
  124. close;
  125. }
  126. }
  127. if((countitem(.@material) < 1) || (Zeny < .@price)) {
  128. mes "[" + getarg(0) + "]";
  129. mes "You don't seem to have";
  130. mes "enough Zeny or "+getitemname(.@material)+"...";
  131. mes "Go get some more. I'll be";
  132. mes "here all day if you need me.";
  133. close;
  134. }
  135. set Zeny,Zeny-.@price;
  136. delitem .@material,1;
  137. if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
  138. mes "[" + getarg(0) + "]";
  139. mes "Look here... you don't have any Items on...";
  140. close;
  141. }
  142. if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
  143. mes "[" + getarg(0) + "]";
  144. Emotion e_an;
  145. mes "Wait a second...";
  146. mes "Do you think I'm stupid?!";
  147. mes "You switched the item while I wasn't looking! Get out of here!";
  148. close;
  149. }
  150. if(getequippercentrefinery(.@part) <= rand(100)) {
  151. //getitem2 getequipid(.@part),1,1,getequiprefinerycnt(.@part)-1,0,getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
  152. downrefitem .@part;
  153. mes "[" + getarg(0) + "]";
  154. set .@emo,rand(1,5);
  155. if (.@emo == 1) {
  156. Emotion e_cash;
  157. } else {
  158. Emotion e_swt;
  159. }
  160. set .@lose,rand(1,2);
  161. if (.@lose == 1) {
  162. mes "OH! MY GOD!";
  163. mes "Damn it! Not again!";
  164. mes "I'm terribly sorry, but you know practice does make perfect.";
  165. mes "Um, right? Heh heh...";
  166. } else {
  167. mes "Crap!";
  168. mes "It couldn't take";
  169. mes "much more tempering!";
  170. mes "Sorry about this...";
  171. }
  172. close;
  173. }
  174. mes "["+getarg(0)+"]";
  175. successrefitem .@part;
  176. Emotion e_heh;
  177. set .@win,rand(1,3);
  178. if (.@win == 1) {
  179. mes "Perfect!";
  180. mes "Heh heh!";
  181. mes "Once again,";
  182. mes "flawless work";
  183. mes "from the master~";
  184. } else if(.@win == 2) {
  185. mes "Success...!";
  186. mes "Yet again, my amazing";
  187. mes "talent truly dazzles";
  188. mes "and shines today.";
  189. } else {
  190. mes "Heh heh!";
  191. mes "I'm all done.";
  192. mes "No doubt, my work is";
  193. mes "to your satisfaction.";
  194. mes "Sheer, utter perfection~";
  195. }
  196. close;
  197. }
  198. // New Refining Functions ========================
  199. mes "[" + getarg(0) + "]";
  200. mes "I can refine this to the limit or a desired number of times... it's your choice...";
  201. next;
  202. switch(select("I'll decide how many times.","I've changed my mind...")) {
  203. case 1:
  204. mes "[" + getarg(0) + "]";
  205. mes "So how many times would you like me to refine your item?";
  206. next;
  207. input .@refinecnt;
  208. set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
  209. if (.@refinecnt < 1 || .@refinecheck > 20) {
  210. mes "[" + getarg(0) + "]";
  211. mes "I can't refine this item that many times.";
  212. close;
  213. }
  214. if(.@refinecheck > .@safe) {
  215. set .@refinecheck,.@refinecheck - .@safe;
  216. mes "[" + getarg(0) + "]";
  217. mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Your equipment may be ^FF0000downgraded by 1 levels^000000 if i fail... is that ok?";
  218. next;
  219. if(select("Yes...","No...") == 2){
  220. mes "[" + getarg(0) + "]";
  221. mes "You said so..Hmm so be it...";
  222. close;
  223. }
  224. }
  225. break;
  226. case 2:
  227. mes "[" + getarg(0) + "]";
  228. mes "You said so..Hmm so be it...";
  229. close;
  230. }
  231. set .@fullprice,.@price * .@refinecnt;
  232. mes "[" + getarg(0) + "]";
  233. mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
  234. next;
  235. if(select("Yes","No...") == 2){
  236. mes "[" + getarg(0) + "]";
  237. mes "You said so..Hmm so be it...";
  238. close;
  239. }
  240. if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
  241. mes "[" + getarg(0) + "]";
  242. mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
  243. close;
  244. }
  245. set Zeny,Zeny - .@fullprice;
  246. delitem .@material,.@refinecnt;
  247. while(.@refinecnt){
  248. if (getequipisequiped(.@part) == 0) {
  249. mes "[" + getarg(0) + "]";
  250. mes "Look here... you don't have any Items on...";
  251. close;
  252. }
  253. if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
  254. mes "[" + getarg(0) + "]";
  255. mes "Clan... No, but Did you imagine I could be so stupid !?!";
  256. mes "You have changed it...";
  257. mes "Go out before I stun you with my Hammer!!!";
  258. close;
  259. }
  260. mes "Clang, clang!!!";
  261. if(getequippercentrefinery(.@part) <= rand(100)) {
  262. //getitem2 getequipid(.@part),1,1,getequiprefinerycnt(.@part)-1,0,getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
  263. downrefitem .@part;
  264. emotion 23;
  265. mes "[" + getarg(0) + "]";
  266. mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
  267. set .@refinecnt,.@refinecnt - 1;
  268. if(.@refinecnt == 0) close;
  269. mes "Here's the unused Zeny and Material back...";
  270. getitem .@material,.@refinecnt;
  271. set .@fullprice,.@refinecnt * .@price;
  272. set Zeny,Zeny + .@fullprice;
  273. close;
  274. }
  275. successrefitem .@part;
  276. emotion 21;
  277. set .@refinecnt,.@refinecnt - 1;
  278. next;
  279. }
  280. mes "[" + getarg(0) + "]";
  281. mes "All finished... Come again soon.";
  282. close;
  283. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement