Advertisement
Skorm

HD Refiner using HD items (Oridecon, Elunium, Bradium)

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