Advertisement
hendra814

Safety Upgrade from +7 to +10

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