Jump to content
  • 0

up to +12 Refiner


qyxz1412

Question


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  33
  • Reputation:   0
  • Joined:  12/26/12
  • Last Seen:  

May I request an All in One Refiner with this functions

1.) upto +12 Normal Refiner NPC = Zeny

2.) 100% Success +5/+6/+7/+8/+9/+10 Refine = Silver Coins

3.) +11/+12 100% Success Refine= Platinum Coins

4.) Enriched Refiner = 200K zeny and Enriched Elunium --> item breaks when refining fails...

Thank you in advance!

Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

Refine max to +12, 200K Zeny and enriched elu per refine...

If player have Silver Coins or Platinum Coins (conditions like your request), NPC ask if he wants to use it. If he use it, 100% success else random fail.

prontera,159,175,5    script    hjkqsdfl    456,{

   mes "[blacksmith]";
   mes "I'm the Blacksmith.";
   mes "I can refine all kinds of weapons, armor and equipment, so let me";
   mes "know what you want me to refine.";
   next;

   for( .@i = 1; .@i <= getarraysize( .position$ ); .@i++ ) {
       if( getequipisequiped( .@i ) )
           .@menu$ = .@menu$ + .position$[.@i] +"-"+ "["+ getequipname(.@i) +"]";
       .@menu$ = .@menu$ +":";
   }
   .@part = select( .@menu$ );

   if( !getequipisequiped( .@part ) ) {
       mes "[blacksmith]";
       mes "You're not wearing";
       mes "anything there that";
       mes "I can refine.";
       emotion 6;
       close;
   }
   //Check if the item is refinable...
   // --------------------------------
   if( !getequipisenableref( .@part ) ) {
       mes "[blacksmith]";
       mes "I don't think I can";
       mes "refine this item at all...";
       close;
   }
   //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
   // ----------------------------------------------------------------------------------------
   if( !getequipisidentify( .@part ) ) {
       mes "[blacksmith]";
       mes "You can't refine this";
       mes "if you haven't appraised";
       mes "it first. Make sure your";
       mes "stuff is identified before";
       mes "I can refine it.";
       close;
   }
   // Check to see if the items is already +12
   // ----------------------------------------
   if( getequiprefinerycnt( .@part ) > 11 ) {
       mes "[blacksmith]";
       mes "I can't refine this";
       mes "any more. This is as";
       mes "refined as it gets!";
       close;
   }

   .@item_id = getequipid( .@part );
   .@ref = getequipweaponlv( .@part );
   .@refine_save = getequiprefinerycnt( .@part );

   next;
   switch( select( ( .@refine_save < .safe[ .@ref ] ? "Safe limit, please." : "" ),
                   "I want to refine X times",
                   "I've changed my mind..." ) ) {
       case 1:
           .@r_cnt = .safe[ .@ref ] - .@refine_save;
           break;
       case 2:
           mes "[blacksmith]";
           mes "How many refine do you want to do ?";
           if( input( .@r_cnt, 1, ( .maxrefine - .@refine_save ) ) != 0 ) {
               mes "I can't do that !";
               close;
           }
           next;
           break;
       case 3:
           mes "[blacksmith]";
           mes "You said so... So be it.";
           close;
   }

   mes "[blacksmith]";
   mes "To refine this I need";
   mes "^FF0000"+ ( .@r_cnt * .cost_zeny ) +" Zeny^000000 and "+ .@r_cnt +" Enriched Elunium";
   mes "Do you really wish to continue?";
   next;

   if( select( "Yes:No" ) -1 ) {
       mes "[blacksmith]";
       mes "Yeah...";
       mes "There's no need to";
       mes "rush. Take your time.";
       close;
   }
   if( .@r_cnt * .cost_zeny > Zeny || .@r_cnt > countitem( .Enriched_elu ) ) {
       mes "[blacksmith]";
       mes "You don't seem to have";
       mes "enough ^000000 material^000000...";
       mes "Go get some more. I'll be";
       mes "here all day if you need me.";
       close;
   }
   if( !getequipisequiped( .@part ) ) { // hacker has removed the item (not changed, why?)
       mes "[blacksmith]";
       mes "Look here... you don't have any Items on...";
       close;
   }
   if( getequiprefinerycnt( .@part ) != .@refine_save || getequipid( .@part ) != .@item_id ) { // hacker has changed the item
       emotion e_an;
       mes "[blacksmith]";
       mes "Wait a second...";
       mes "Do you think I'm stupid?!";
       mes "You switched the item while I wasn't looking! Get out of here!";
       close;
   }

   for( .@i = 0; .@i < .@r_cnt; .@i++ ) {
       Zeny  -= .cost_zeny;
       delitem .Enriched_elu, 1;
       if( getequiprefinerycnt( .@part ) < .safe[ .@ref ] )
           successrefitem .@part;
       else {
           .@coin = ( getequiprefinerycnt( .@part ) < 10 && countitem( .silver_coin ) ? .silver_coin : ( getequiprefinerycnt( .@part ) > 9 && countitem( .plat_coin ) ? .plat_coin : 0 ) );
           if( .@coin )
               if( select( "Use an "+ getitemname( .@coin ), "Don't use it." ) == 1 ) {
               delitem .@coin, 1;
               .@skip = 1;
           }
           if( getequippercentrefinery( .@part ) <= rand(100) && !.@skip ) {
               failedrefitem .@part;
               next;
               mes "[blacksmith]";
               emotion ( !rand(5) ) ? e_cash: e_omg;
               .@lose = rand(2);
               if( !.@lose ) {
                   mes "OH! MY GOD!";
                   mes "Damn it! Not again!";
                   mes "I'm terribly sorry, but you know practice does make perfect.";
                   mes "Um, right? Heh heh...";
               }
               else if( .@lose -1 ) {
                   mes "Nooooooo!";
                   mes "It broke!";
                   mes "I-I'm sorry!";
               }
               else {
                   mes "Crap!";
                   mes "It couldn't take";
                   mes "much more tempering!";
                   mes "Sorry about this...";
               }
               close;
           }
           .@skip = 0;
           successrefitem .@part;
       }
   }
   emotion e_heh;
   .@win = rand(2);
   mes "[blacksmith]";
   if( !.@win ) {
       mes "Perfect!";
       mes "Heh heh!";
       mes "Once again,";
       mes "flawless work";
       mes "from the master~";
   }
   else if( .@win -1 ) {
       mes "Success...!";
       mes "Yet again, my amazing";
       mes "talent truly dazzles";
       mes "and shines today.";
   }
   else {
       mes "Heh heh!";
       mes "I'm all done.";
       mes "No doubt, my work is";
       mes "to your satisfaction.";
       mes "Sheer, utter perfection~";
   }
   close;

OnInit:
   setarray .position$[1], "^0000ffHead^000000","^0000ffBody^000000","^FF0000Left hand^000000","^FF0000Right hand^000000","^0000ffRobe^000000","^0000ffShoes^000000","Accessory 1","Accessory 2","^0000ffHead 2^000000","^0000ffHead 3^000000";
// Safe limit per equipment
// ------------------------
   setarray .safe, 4, 7, 6, 5, 4, 4;
// Max refine
// ----------
   .maxrefine = 12;
// Required
// --------
   .cost_zeny = 200000;
   .plat_coin = 677;
   .silver_coin = 675;
   .Enriched_elu = 7619;
   end;
}

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  71
  • Reputation:   0
  • Joined:  01/14/13
  • Last Seen:  

Refine max to +12, 200K Zeny and enriched elu per refine...

If player have Silver Coins or Platinum Coins (conditions like your request), NPC ask if he wants to use it. If he use it, 100% success else random fail.

prontera,159,175,5	script	hjkqsdfl	456,{

mes "[blacksmith]";
mes "I'm the Blacksmith.";
mes "I can refine all kinds of weapons, armor and equipment, so let me";
mes "know what you want me to refine.";
next;

for( .@i = 1; .@i <= getarraysize( .position$ ); .@i++ ) {
	if( getequipisequiped( .@i ) )
		.@menu$ = .@menu$ + .position$[.@i] +"-"+ "["+ getequipname(.@i) +"]";
	.@menu$ = .@menu$ +":";
}
.@part = select( .@menu$ );

if( !getequipisequiped( .@part ) ) {
	mes "[blacksmith]";
	mes "You're not wearing";
	mes "anything there that";
	mes "I can refine.";
	emotion 6;
	close;
}
//Check if the item is refinable...
// --------------------------------
if( !getequipisenableref( .@part ) ) {
	mes "[blacksmith]";
	mes "I don't think I can";
	mes "refine this item at all...";
	close;
}
//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
// ----------------------------------------------------------------------------------------
if( !getequipisidentify( .@part ) ) {
	mes "[blacksmith]";
	mes "You can't refine this";
	mes "if you haven't appraised";
	mes "it first. Make sure your";
	mes "stuff is identified before";
	mes "I can refine it.";
	close;
}
// Check to see if the items is already +12
// ----------------------------------------
if( getequiprefinerycnt( .@part ) > 11 ) {
	mes "[blacksmith]";
	mes "I can't refine this";
	mes "any more. This is as";
	mes "refined as it gets!";
	close;
}

.@item_id = getequipid( .@part );
.@ref = getequipweaponlv( .@part );
.@refine_save = getequiprefinerycnt( .@part );

next;
switch( select( ( .@refine_save < .safe[ .@ref ] ? "Safe limit, please." : "" ),
				"I want to refine X times",
				"I've changed my mind..." ) ) {
	case 1:
		.@r_cnt = .safe[ .@ref ] - .@refine_save;
		break;
	case 2:
		mes "[blacksmith]";
		mes "How many refine do you want to do ?";
		if( input( .@r_cnt, 1, ( .maxrefine - .@refine_save ) ) != 0 ) {
			mes "I can't do that !";
			close;
		}
		next;
		break;
	case 3:
		mes "[blacksmith]";
		mes "You said so... So be it.";
		close;
}

mes "[blacksmith]";
mes "To refine this I need";
mes "^FF0000"+ ( .@r_cnt * .cost_zeny ) +" Zeny^000000 and "+ .@r_cnt +" Enriched Elunium";
mes "Do you really wish to continue?";
next;

if( select( "Yes:No" ) -1 ) {
	mes "[blacksmith]";
	mes "Yeah...";
	mes "There's no need to";
	mes "rush. Take your time.";
	close;
}
if( .@r_cnt * .cost_zeny > Zeny || .@r_cnt > countitem( .Enriched_elu ) ) {
	mes "[blacksmith]";
	mes "You don't seem to have";
	mes "enough ^000000 material^000000...";
	mes "Go get some more. I'll be";
	mes "here all day if you need me.";
	close;
}
if( !getequipisequiped( .@part ) ) { // hacker has removed the item (not changed, why?)
	mes "[blacksmith]";
	mes "Look here... you don't have any Items on...";
	close;
}
if( getequiprefinerycnt( .@part ) != .@refine_save || getequipid( .@part ) != .@item_id ) { // hacker has changed the item
	emotion e_an;
	mes "[blacksmith]";
	mes "Wait a second...";
	mes "Do you think I'm stupid?!";
	mes "You switched the item while I wasn't looking! Get out of here!";
	close;
}

for( .@i = 0; .@i < .@r_cnt; .@i++ ) {
	Zeny  -= .cost_zeny;
	delitem .Enriched_elu, 1;
	if( getequiprefinerycnt( .@part ) < .safe[ .@ref ] )
		successrefitem .@part;
	else {
		.@coin = ( getequiprefinerycnt( .@part ) < 10 && countitem( .silver_coin ) ? .silver_coin : ( getequiprefinerycnt( .@part ) > 9 && countitem( .plat_coin ) ? .plat_coin : 0 ) );
		if( .@coin )
			if( select( "Use an "+ getitemname( .@coin ), "Don't use it." ) == 1 ) {
			delitem .@coin, 1;
			.@skip = 1;
		}
		if( getequippercentrefinery( .@part ) <= rand(100) && !.@skip ) {
			failedrefitem .@part;
			next;
			mes "[blacksmith]";
			emotion ( !rand(5) ) ? e_cash: e_omg;
			.@lose = rand(2);
			if( !.@lose ) {
				mes "OH! MY GOD!";
				mes "Damn it! Not again!";
				mes "I'm terribly sorry, but you know practice does make perfect.";
				mes "Um, right? Heh heh...";
			}
			else if( .@lose -1 ) {
				mes "Nooooooo!";
				mes "It broke!";
				mes "I-I'm sorry!";
			}
			else {
				mes "Crap!";
				mes "It couldn't take";
				mes "much more tempering!";
				mes "Sorry about this...";
			}
			close;
		}
		.@skip = 0;
		successrefitem .@part;
	}
}
emotion e_heh;
.@win = rand(2);
mes "[blacksmith]";
if( !.@win ) {
	mes "Perfect!";
	mes "Heh heh!";
	mes "Once again,";
	mes "flawless work";
	mes "from the master~";
}
else if( .@win -1 ) {
	mes "Success...!";
	mes "Yet again, my amazing";
	mes "talent truly dazzles";
	mes "and shines today.";
}
else {
	mes "Heh heh!";
	mes "I'm all done.";
	mes "No doubt, my work is";
	mes "to your satisfaction.";
	mes "Sheer, utter perfection~";
}
close;

OnInit:
setarray .position$[1], "^0000ffHead^000000","^0000ffBody^000000","^FF0000Left hand^000000","^FF0000Right hand^000000","^0000ffRobe^000000","^0000ffShoes^000000","Accessory 1","Accessory 2","^0000ffHead 2^000000","^0000ffHead 3^000000";
// Safe limit per equipment
// ------------------------
setarray .safe, 4, 7, 6, 5, 4, 4;
// Max refine
// ----------
.maxrefine = 12;
// Required
// --------
.cost_zeny = 200000;
.plat_coin = 677;
.silver_coin = 675;
.Enriched_elu = 7619;
end;
}

there is no standard refiner +10 just only need is enriched elunium & enriched oridecon for upgrading weapon and equip? non-breaking refine, just when it failed, it is unrefine. Thanks

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  

there is no standard refiner +10 just only need is enriched elunium & enriched oridecon for upgrading weapon and equip? non-breaking refine, just when it failed, it is unrefine. Thanks

Using refiner in rAthena svn


prontera,154,174,5    script    Bestry#prt2    826,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}
morocc_in,64,41,5    script    Bestry#moc2    826,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}
payon_in01,18,132,3    script    Bestry#pay2    826,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}

//============================================================
// +11 and above Refiner Function
//============================================================
//= To allow auto safe refining/multiple refining set the
//= second argument to '1' in the function call.
//= If you enable this function, be sure to edit the value of
//= .@safe to the max safe refine in refine_db.txt as well.
//=
//= The official script uses a command which seems to generate a
//= random result upon refining: success, downgrade, or failure.
//= To enable that feature, set the third argument to '1' in the
//= function call.  Otherwise, the chance in refine_db.txt is used.
//============================================================
function    script    refinenew2    {
   mes "["+ getarg(0) +"]";
   mes "I am the best Blacksmith ever!";
   next;
   mes "["+ getarg(0) +"]";
   mes "What do you want to have refined?";
   next;

   setarray .@position$[1],"Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
   set .@menu$,"";
   for(set .@i,1; .@i<=10; set .@i,.@i+1) {
       if(getequipisequiped(.@i))
           set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
       set .@menu$, .@menu$ + ":";
   }
   set .@part,select(.@menu$);
   if(!getequipisequiped(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You're not wearing";
       mes "anything there that";
       mes "I can refine.";
       emotion e_an;
       close;
   }
   //Check if the item is refinable...
   if(!getequipisenableref(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "I don't think I can";
       mes "refine this item at all...";
       close;
   }
   //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
   if(!getequipisidentify(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You can't refine this";
       mes "if you haven't appraised";
       mes "it first. Make sure your";
       mes "stuff is identified before";
       mes "I can refine it.";
       close;
   }
   if(getequiprefinerycnt(.@part) > 9) {
       mes "["+ getarg(0) +"]";
       mes "I can't refine this";
       mes "any more. This is as";
       mes "refined as it gets!";
       close;
   }
   set .@refineitemid, getequipid(.@part); // save id of the item
   set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
   if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
       set .@material,6224;
       set .@price,100000;
       set .@safe,10;
       mes "["+ getarg(0) +"]";
       mes "Hmm a weapon, is that ok?";
       mes "If you want to refine this weapon,";
       mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
       mes "Are you sure you want to continue?";
   } else {
       set .@material,6223;
       set .@price,100000;
       set .@safe,10;
       mes "["+ getarg(0) +"]";
       mes "Hmm an armor, is that ok?";
       mes "If you want to refine this armor,";
       mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
       mes "Are you sure you want to continue?";
   }
   next;
   if(select("Yes:No") == 2){
       mes "["+ getarg(0) +"]";
       mes "Well, no challenge is one way...";
       mes "No risk... that could be wise.";
       close;
   }
   if(getarg(1) != 1) {
       if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
           mes "["+ getarg(0) +"]";
           mes "This weapon already has been refined serveral times.";
           next;
           mes "["+ getarg(0) +"]";
           mes "You could have the upgrade level of the weapon decreased.";
       } else {
           mes "["+ getarg(0) +"]";
           mes "You could have the upgrade level of the armor decreased.";
       }
       next;
       mes "["+ getarg(0) +"]";
       mes "Do you want me to refine it?";
       mes "I think I gave you enough warnings.";
       next;
       if(select("Yes.:No.") == 2) {
           mes "["+ getarg(0) +"]";
           mes "Well, no challenge is one way..";
           mes "No risk.. that could be wise.";
           close;
       }
       if(countitem(.@material) < 1 || Zeny < .@price) {
           mes "["+ getarg(0) +"]";
           mes "Hm, it seems you don't have enough materials or money.";
           mes "Please check it out.";
           close;
       }
       set Zeny,Zeny - .@price;
       delitem .@material,1;
       if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any items on...";
           close;
       }
       if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
           mes "[" + getarg(0) + "]";
           emotion e_an;
           mes "Wait a second...";
           mes "Do you think I'm stupid?!";
           mes "You switched the item while I wasn't looking! Get out of here!";
           close;
       }
       if(getarg(2) == 1){
           set .@rand,rand(1,3);
           if (.@rand == 1) {
               mes "Clang! Clang! Clang! Clang!";
               successrefitem .@part;
               next;
               emotion e_no1;
               mes "["+ getarg(0) +"]";
               mes "Good! Succes!!!";
               mes "I am the best Blacksmith.";
               close;
           }
           else {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               downrefitem .@part;
               next;
               emotion (!rand(5))?e_cash:e_omg;
               mes "["+ getarg(0) +"]";
               mes "Ahhh!!!";
               next;
               mes "["+ getarg(0) +"]";
               mes "Oh my!";
               mes "The upgrade level has dropped...";
               mes "There could've been made an mistake even though I am the best ever.";
               mes "It was out of my hands.";
               next;
               mes "["+ getarg(0) +"]";
               mes "I will do a better job next time! Don't worry!";
               close;
           }
       }
       set .@rand,rand(100);
       if (getequippercentrefinery(.@part) > .@rand) {
           mes "Clang! Clang! Clang! Clang!";
           successrefitem .@part;
           next;
           emotion e_no1;
           mes "["+ getarg(0) +"]";
           mes "Good! Succes!!!";
           mes "I am the best Blacksmith.";
           close;
       }
       else {
           mes "["+ getarg(0) +"]";
           mes "Clang! Clang! Clang! Clang!";
           downrefitem .@part;
           next;
           emotion (!rand(5))?e_cash:e_omg;
           mes "["+ getarg(0) +"]";
           mes "Ahhh!!!";
           next;
           mes "["+ getarg(0) +"]";
           mes "Oh my!";
           mes "The upgrade level has dropped...";
           mes "There could've been made an mistake even though I am the best ever.";
           mes "It was out of my hands.";
           next;
           mes "["+ getarg(0) +"]";
           mes "I will do a better job next time! Don't worry!";
           close;
       }
   }
// New +11 and above Refining Functions ========================
   if(getequiprefinerycnt(.@part) < .@safe) {
       mes "[" + getarg(0) + "]";
       mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
       next;
       set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
   } else
       set .@menu2,2;
   switch(.@menu2){
   case 1:
       set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
       break;
   case 2:
       next;
       mes "[" + getarg(0) + "]";
       mes "How many times would you like me to refine your item?";
       next;
       input .@refinecnt;
       set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
       if (.@refinecnt < 1 || .@refinecheck > 10) {
           mes "[" + getarg(0) + "]";
           mes "I can't refine this item that many times.";
           close;
       }
       if(.@refinecheck > .@safe) {
           set .@refinecheck,.@refinecheck - .@safe;
           mes "[" + getarg(0) + "]";
           mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Ok?";
           next;
           if(select("Yes...","No...") == 2){
               mes "[" + getarg(0) + "]";
               mes "You said so... So be it.";
               close;
           }
       }
       break;
   case 3:
       next;
       mes "[" + getarg(0) + "]";
       mes "You said so... So be it.";
       close;
   }
   set .@fullprice,.@price * .@refinecnt;
   mes "[" + getarg(0) + "]";
   mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
   next;
   if(select("Yes","No...") == 2){
       mes "[" + getarg(0) + "]";
       mes "You said so... So be it.";
       close;
   }
   if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
       mes "[" + getarg(0) + "]";
       mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
       close;
   }
   set Zeny,Zeny - .@fullprice;
   delitem .@material,.@refinecnt;
   while(.@refinecnt){
       if (getequipisequiped(.@part) == 0) {
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any items on...";
           close;
       }
       if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
           mes "[" + getarg(0) + "]";
           mes "Clang... No, but did you imagine I could be so stupid?!";
           mes "You changed it...";
           mes "Get out before I stun you with my Hammer!!";
           close;
       }
       if(getarg(2) == 1){
           set .@rand,rand(1,3);
           if (.@rand == 1) {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               successrefitem .@part;
               next;
               emotion e_no1;
               mes "["+ getarg(0) +"]";
               mes "Good! Succes!!!";
               mes "I am the best Blacksmith.";
               close;
           }
           else {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               downrefitem .@part;
               next;
               emotion (!rand(5))?e_cash:e_omg;
               mes "["+ getarg(0) +"]";
               mes "Ahhh!!!";
               next;
               mes "["+ getarg(0) +"]";
               mes "Oh my!";
               mes "The upgrade level has dropped...";
               mes "There could've been made an mistake even though I am the best ever.";
               mes "It was out of my hands.";
               next;
               mes "["+ getarg(0) +"]";
               mes "I will do a better job next time! Don't worry!";
               close;
           }
       }
       set .@rand,rand(100);
       if (getequippercentrefinery(.@part) > .@rand) {
           mes "Clang! Clang! Clang! Clang!";
           successrefitem .@part;
           next;
           emotion e_no1;
           mes "["+ getarg(0) +"]";
           mes "Good! Succes!!!";
           mes "I am the best Blacksmith.";
           close;
       }
       else {
           mes "["+ getarg(0) +"]";
           mes "Clang! Clang! Clang! Clang!";
           downrefitem .@part;
           next;
           emotion (!rand(5))?e_cash:e_omg;
           mes "["+ getarg(0) +"]";
           mes "Ahhh!!!";
           next;
           mes "["+ getarg(0) +"]";
           mes "Oh my!";
           mes "The upgrade level has dropped...";
           mes "There could've been made an mistake even though I am the best ever.";
           mes "It was out of my hands.";
           next;
           mes "["+ getarg(0) +"]";
           mes "I will do a better job next time! Don't worry!";
           close;
       }
   }
   mes "[" + getarg(0) + "]";
   mes "All finished... Come again soon.";
   close;
}

// Ori/Elu to Carnium/Bradium Refiners
//============================================================
-    script    Austry#ref2    -1,{
   mes "[Austry]";
   mes "If you bring me 3";
   mes "Oridecon or Elunium";
   mes "I can exchange them for";
   mes "Bradium or Carnium.";
   mes "Just give me 50,000z.";
   next;
   switch(select("Oridecon to Bradium.:Elunium to Carnium.:Purified Bradium to Carnium.:No thanks.")) {
   case 1:
       setarray .@i[0],984,3,6224;  //Oridecon -> Bradium
       break;
   case 2:
       setarray .@i[0],985,3,6223;  //Elunium -> Carnium
       break;
   case 3:
       setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
       break;
   case 4:
       mes "[Austry]";
       mes "Hmm...";
       close;
   }
   if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
       delitem .@i[0],.@i[1];
       set Zeny, Zeny - 50000;
       getitem .@i[2],1;
       mes "[Austry]";
       if (.@i[0] == 6090) {
           mes "Refining with Purified Bradium";
           mes "is a little expensive. I can";
           mes "trade it for some Carnium.";
       } else
           mes "Ok! Here is your "+getitemname(.@i[2])+".";
       mes "Take it and use it well.";
       close;
   }
   mes "[Austry]";
   mes "You better not be trying";
   mes "to cheat me because you";
   mes "don't have enough zeny";
   mes "or "+getitemname(.@i[0])+".";
   close;
}
prt_in,85,71,5    duplicate(Austry#ref2)    Austry#prt2    826
payon_in01,14,125,5    duplicate(Austry#ref2)    Austry#pay2    826
morocc_in,60,38,5    duplicate(Austry#ref2)    Austry#moc2    826

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  25
  • Topics Per Day:  0.01
  • Content Count:  71
  • Reputation:   0
  • Joined:  01/14/13
  • Last Seen:  

there is no standard refiner +10 just only need is enriched elunium & enriched oridecon for upgrading weapon and equip? non-breaking refine, just when it failed, it is unrefine. Thanks

Using refiner in rAthena svn


prontera,154,174,5	script	Bestry#prt2	826,{
callfunc "refinenew2","Bestry",0,0;
end;
}
morocc_in,64,41,5	script	Bestry#moc2	826,{
callfunc "refinenew2","Bestry",0,0;
end;
}
payon_in01,18,132,3	script	Bestry#pay2	826,{
callfunc "refinenew2","Bestry",0,0;
end;
}

//============================================================
// +11 and above Refiner Function
//============================================================
//= To allow auto safe refining/multiple refining set the
//= second argument to '1' in the function call.
//= If you enable this function, be sure to edit the value of
//= .@safe to the max safe refine in refine_db.txt as well.
//=
//= The official script uses a command which seems to generate a
//= random result upon refining: success, downgrade, or failure.
//= To enable that feature, set the third argument to '1' in the
//= function call.  Otherwise, the chance in refine_db.txt is used.
//============================================================
function	script	refinenew2	{
mes "["+ getarg(0) +"]";
mes "I am the best Blacksmith ever!";
next;
mes "["+ getarg(0) +"]";
mes "What do you want to have refined?";
next;

setarray .@position$[1],"Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
set .@menu$,"";
for(set .@i,1; .@i<=10; set .@i,.@i+1) {
	if(getequipisequiped(.@i))
		set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
	set .@menu$, .@menu$ + ":";
}
set .@part,select(.@menu$);
if(!getequipisequiped(.@part)) {
	mes "[" + getarg(0) + "]";
	mes "You're not wearing";
	mes "anything there that";
	mes "I can refine.";
	emotion e_an;
	close;
}
//Check if the item is refinable...
if(!getequipisenableref(.@part)) {
	mes "[" + getarg(0) + "]";
	mes "I don't think I can";
	mes "refine this item at all...";
	close;
}
//Check if the item is identified... (Don't know why this is in here... but kept it anyway)
if(!getequipisidentify(.@part)) {
	mes "[" + getarg(0) + "]";
	mes "You can't refine this";
	mes "if you haven't appraised";
	mes "it first. Make sure your";
	mes "stuff is identified before";
	mes "I can refine it.";
	close;
}
if(getequiprefinerycnt(.@part) > 9) {
	mes "["+ getarg(0) +"]";
	mes "I can't refine this";
	mes "any more. This is as";
	mes "refined as it gets!";
	close;
}
set .@refineitemid, getequipid(.@part); // save id of the item
set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
	set .@material,6224;
	set .@price,100000;
	set .@safe,10;
	mes "["+ getarg(0) +"]";
	mes "Hmm a weapon, is that ok?";
	mes "If you want to refine this weapon,";
	mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
	mes "Are you sure you want to continue?";
} else {
	set .@material,6223;
	set .@price,100000;
	set .@safe,10;
	mes "["+ getarg(0) +"]";
	mes "Hmm an armor, is that ok?";
	mes "If you want to refine this armor,";
	mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
	mes "Are you sure you want to continue?";
}
next;
if(select("Yes:No") == 2){
	mes "["+ getarg(0) +"]";
	mes "Well, no challenge is one way...";
	mes "No risk... that could be wise.";
	close;
}
if(getarg(1) != 1) {
	if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
		mes "["+ getarg(0) +"]";
		mes "This weapon already has been refined serveral times.";
		next;
		mes "["+ getarg(0) +"]";
		mes "You could have the upgrade level of the weapon decreased.";
	} else {
		mes "["+ getarg(0) +"]";
		mes "You could have the upgrade level of the armor decreased.";
	}
	next;
	mes "["+ getarg(0) +"]";
	mes "Do you want me to refine it?";
	mes "I think I gave you enough warnings.";
	next;
	if(select("Yes.:No.") == 2) {
		mes "["+ getarg(0) +"]";
		mes "Well, no challenge is one way..";
		mes "No risk.. that could be wise.";
		close;
	}
	if(countitem(.@material) < 1 || Zeny < .@price) {
		mes "["+ getarg(0) +"]";
		mes "Hm, it seems you don't have enough materials or money.";
		mes "Please check it out.";
		close;
	}
	set Zeny,Zeny - .@price;
	delitem .@material,1;
	if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
		mes "[" + getarg(0) + "]";
		mes "Look here... you don't have any items on...";
		close;
	}
	if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
		mes "[" + getarg(0) + "]";
		emotion e_an;
		mes "Wait a second...";
		mes "Do you think I'm stupid?!";
		mes "You switched the item while I wasn't looking! Get out of here!";
		close;
	}
	if(getarg(2) == 1){
		set .@rand,rand(1,3);
		if (.@rand == 1) {
			mes "Clang! Clang! Clang! Clang!";
			successrefitem .@part;
			next;
			emotion e_no1;
			mes "["+ getarg(0) +"]";
			mes "Good! Succes!!!";
			mes "I am the best Blacksmith.";
			close;
		}
		else {
			mes "["+ getarg(0) +"]";
			mes "Clang! Clang! Clang! Clang!";
			downrefitem .@part;
			next;
			emotion (!rand(5))?e_cash:e_omg;
			mes "["+ getarg(0) +"]";
			mes "Ahhh!!!";
			next;
			mes "["+ getarg(0) +"]";
			mes "Oh my!";
			mes "The upgrade level has dropped...";
			mes "There could've been made an mistake even though I am the best ever.";
			mes "It was out of my hands.";
			next;
			mes "["+ getarg(0) +"]";
			mes "I will do a better job next time! Don't worry!";
			close;
		}
	}
	set .@rand,rand(100);
	if (getequippercentrefinery(.@part) > .@rand) {
		mes "Clang! Clang! Clang! Clang!";
		successrefitem .@part;
		next;
		emotion e_no1;
		mes "["+ getarg(0) +"]";
		mes "Good! Succes!!!";
		mes "I am the best Blacksmith.";
		close;
	}
	else {
		mes "["+ getarg(0) +"]";
		mes "Clang! Clang! Clang! Clang!";
		downrefitem .@part;
		next;
		emotion (!rand(5))?e_cash:e_omg;
		mes "["+ getarg(0) +"]";
		mes "Ahhh!!!";
		next;
		mes "["+ getarg(0) +"]";
		mes "Oh my!";
		mes "The upgrade level has dropped...";
		mes "There could've been made an mistake even though I am the best ever.";
		mes "It was out of my hands.";
		next;
		mes "["+ getarg(0) +"]";
		mes "I will do a better job next time! Don't worry!";
		close;
	}
}
// New +11 and above Refining Functions ========================
if(getequiprefinerycnt(.@part) < .@safe) {
	mes "[" + getarg(0) + "]";
	mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
	next;
	set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
} else
	set .@menu2,2;
switch(.@menu2){
case 1:
	set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
	break;
case 2:
	next;
	mes "[" + getarg(0) + "]";
	mes "How many times would you like me to refine your item?";
	next;
	input .@refinecnt;
	set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
	if (.@refinecnt < 1 || .@refinecheck > 10) {
		mes "[" + getarg(0) + "]";
		mes "I can't refine this item that many times.";
		close;
	}
	if(.@refinecheck > .@safe) {
		set .@refinecheck,.@refinecheck - .@safe;
		mes "[" + getarg(0) + "]";
		mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Ok?";
		next;
		if(select("Yes...","No...") == 2){
			mes "[" + getarg(0) + "]";
			mes "You said so... So be it.";
			close;
		}
	}
	break;
case 3:
	next;
	mes "[" + getarg(0) + "]";
	mes "You said so... So be it.";
	close;
}
set .@fullprice,.@price * .@refinecnt;
mes "[" + getarg(0) + "]";
mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
next;
if(select("Yes","No...") == 2){
	mes "[" + getarg(0) + "]";
	mes "You said so... So be it.";
	close;
}
if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
	mes "[" + getarg(0) + "]";
	mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
	close;
}
set Zeny,Zeny - .@fullprice;
delitem .@material,.@refinecnt;
while(.@refinecnt){
	if (getequipisequiped(.@part) == 0) {
		mes "[" + getarg(0) + "]";
		mes "Look here... you don't have any items on...";
		close;
	}
	if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
		mes "[" + getarg(0) + "]";
		mes "Clang... No, but did you imagine I could be so stupid?!";
		mes "You changed it...";
		mes "Get out before I stun you with my Hammer!!";
		close;
	}
	if(getarg(2) == 1){
		set .@rand,rand(1,3);
		if (.@rand == 1) {
			mes "["+ getarg(0) +"]";
			mes "Clang! Clang! Clang! Clang!";
			successrefitem .@part;
			next;
			emotion e_no1;
			mes "["+ getarg(0) +"]";
			mes "Good! Succes!!!";
			mes "I am the best Blacksmith.";
			close;
		}
		else {
			mes "["+ getarg(0) +"]";
			mes "Clang! Clang! Clang! Clang!";
			downrefitem .@part;
			next;
			emotion (!rand(5))?e_cash:e_omg;
			mes "["+ getarg(0) +"]";
			mes "Ahhh!!!";
			next;
			mes "["+ getarg(0) +"]";
			mes "Oh my!";
			mes "The upgrade level has dropped...";
			mes "There could've been made an mistake even though I am the best ever.";
			mes "It was out of my hands.";
			next;
			mes "["+ getarg(0) +"]";
			mes "I will do a better job next time! Don't worry!";
			close;
		}
	}
	set .@rand,rand(100);
	if (getequippercentrefinery(.@part) > .@rand) {
		mes "Clang! Clang! Clang! Clang!";
		successrefitem .@part;
		next;
		emotion e_no1;
		mes "["+ getarg(0) +"]";
		mes "Good! Succes!!!";
		mes "I am the best Blacksmith.";
		close;
	}
	else {
		mes "["+ getarg(0) +"]";
		mes "Clang! Clang! Clang! Clang!";
		downrefitem .@part;
		next;
		emotion (!rand(5))?e_cash:e_omg;
		mes "["+ getarg(0) +"]";
		mes "Ahhh!!!";
		next;
		mes "["+ getarg(0) +"]";
		mes "Oh my!";
		mes "The upgrade level has dropped...";
		mes "There could've been made an mistake even though I am the best ever.";
		mes "It was out of my hands.";
		next;
		mes "["+ getarg(0) +"]";
		mes "I will do a better job next time! Don't worry!";
		close;
	}
}
mes "[" + getarg(0) + "]";
mes "All finished... Come again soon.";
close;
}

// Ori/Elu to Carnium/Bradium Refiners
//============================================================
-	script	Austry#ref2	-1,{
mes "[Austry]";
mes "If you bring me 3";
mes "Oridecon or Elunium";
mes "I can exchange them for";
mes "Bradium or Carnium.";
mes "Just give me 50,000z.";
next;
switch(select("Oridecon to Bradium.:Elunium to Carnium.:Purified Bradium to Carnium.:No thanks.")) {
case 1:
	setarray .@i[0],984,3,6224;  //Oridecon -> Bradium
	break;
case 2:
	setarray .@i[0],985,3,6223;  //Elunium -> Carnium
	break;
case 3:
	setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
	break;
case 4:
	mes "[Austry]";
	mes "Hmm...";
	close;
}
if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
	delitem .@i[0],.@i[1];
	set Zeny, Zeny - 50000;
	getitem .@i[2],1;
	mes "[Austry]";
	if (.@i[0] == 6090) {
		mes "Refining with Purified Bradium";
		mes "is a little expensive. I can";
		mes "trade it for some Carnium.";
	} else
		mes "Ok! Here is your "+getitemname(.@i[2])+".";
	mes "Take it and use it well.";
	close;
}
mes "[Austry]";
mes "You better not be trying";
mes "to cheat me because you";
mes "don't have enough zeny";
mes "or "+getitemname(.@i[0])+".";
close;
}
prt_in,85,71,5	duplicate(Austry#ref2)	Austry#prt2	826
payon_in01,14,125,5	duplicate(Austry#ref2)	Austry#pay2	826
morocc_in,60,38,5	duplicate(Austry#ref2)	Austry#moc2	826

this only for rathena, eathena SVN doesn't have script? Thanks

Link to comment
Share on other sites


  • Group:  Developer
  • Topic Count:  10
  • Topics Per Day:  0.00
  • Content Count:  2407
  • Reputation:   613
  • Joined:  07/05/12
  • Last Seen:  


prontera,154,174,5    script    Bestry#prt2    56,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}
morocc_in,64,41,5    script    Bestry#moc2    56,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}
payon_in01,18,132,3    script    Bestry#pay2    56,{
   callfunc "refinenew2","Bestry",0,0;
   end;
}

//============================================================
// +11 and above Refiner Function
//============================================================
//= To allow auto safe refining/multiple refining set the
//= second argument to '1' in the function call.
//= If you enable this function, be sure to edit the value of
//= .@safe to the max safe refine in refine_db.txt as well.
//=
//= The official script uses a command which seems to generate a
//= random result upon refining: success, downgrade, or failure.
//= To enable that feature, set the third argument to '1' in the
//= function call.  Otherwise, the chance in refine_db.txt is used.
//============================================================
function    script    refinenew2    {
   setarray .@down[0], 256, 16, 32, 2, 4, 64, 8, 128, 512, 1;
   mes "["+ getarg(0) +"]";
   mes "I am the best Blacksmith ever!";
   next;
   mes "["+ getarg(0) +"]";
   mes "What do you want to have refined?";
   next;

   setarray .@position$[1],"Head","Body","Left hand","Right hand","Robe","Shoes","Accessory 1","Accessory 2","Head 2","Head 3";
   set .@menu$,"";
   for(set .@i,1; .@i<=10; set .@i,.@i+1) {
       if(getequipisequiped(.@i))
           set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
       set .@menu$, .@menu$ + ":";
   }
   set .@part,select(.@menu$);

   if(!getequipisequiped(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You're not wearing";
       mes "anything there that";
       mes "I can refine.";
       emotion e_an;
       close;
   }
   //Check if the item is refinable...
   if(!getequipisenableref(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "I don't think I can";
       mes "refine this item at all...";
       close;
   }
   //Check if the item is identified... (Don't know why this is in here... but kept it anyway)
   if(!getequipisidentify(.@part)) {
       mes "[" + getarg(0) + "]";
       mes "You can't refine this";
       mes "if you haven't appraised";
       mes "it first. Make sure your";
       mes "stuff is identified before";
       mes "I can refine it.";
       close;
   }
   if(getequiprefinerycnt(.@part) > 9) {
       mes "["+ getarg(0) +"]";
       mes "I can't refine this";
       mes "any more. This is as";
       mes "refined as it gets!";
       close;
   }
   set .@refineitemid, getequipid(.@part); // save id of the item
   set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
   if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
       set .@material,6224;
       set .@price,100000;
       set .@safe,10;
       mes "["+ getarg(0) +"]";
       mes "Hmm a weapon, is that ok?";
       mes "If you want to refine this weapon,";
       mes "I will need 1 ^003366Bradium^000000 and 100,000 zeny.";
       mes "Are you sure you want to continue?";
   } else {
       set .@material,6223;
       set .@price,100000;
       set .@safe,10;
       mes "["+ getarg(0) +"]";
       mes "Hmm an armor, is that ok?";
       mes "If you want to refine this armor,";
       mes "I will need 1 ^003366Carnium^000000 and 100,000 zeny.";
       mes "Are you sure you want to continue?";
   }
   next;
   if(select("Yes:No") == 2){
       mes "["+ getarg(0) +"]";
       mes "Well, no challenge is one way...";
       mes "No risk... that could be wise.";
       close;
   }
   if(getarg(1) != 1) {
       if ((getequipweaponlv(.@part) >= 1) && (getequipweaponlv(.@part) <= 4)) {
           mes "["+ getarg(0) +"]";
           mes "This weapon already has been refined serveral times.";
           next;
           mes "["+ getarg(0) +"]";
           mes "You could have the upgrade level of the weapon decreased.";
       } else {
           mes "["+ getarg(0) +"]";
           mes "You could have the upgrade level of the armor decreased.";
       }
       next;
       mes "["+ getarg(0) +"]";
       mes "Do you want me to refine it?";
       mes "I think I gave you enough warnings.";
       next;
       if(select("Yes.:No.") == 2) {
           mes "["+ getarg(0) +"]";
           mes "Well, no challenge is one way..";
           mes "No risk.. that could be wise.";
           close;
       }
       if(countitem(.@material) < 1 || Zeny < .@price) {
           mes "["+ getarg(0) +"]";
           mes "Hm, it seems you don't have enough materials or money.";
           mes "Please check it out.";
           close;
       }
       set Zeny,Zeny - .@price;
       delitem .@material,1;
       if(getequipisequiped(.@part) == 0) { // hacker has removed the item (not changed, why?)
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any items on...";
           close;
       }
       if(getequiprefinerycnt(.@part) != .@refinerycnt || getequipid(.@part) != .@refineitemid) { // hacker has changed the item
           mes "[" + getarg(0) + "]";
           emotion e_an;
           mes "Wait a second...";
           mes "Do you think I'm stupid?!";
           mes "You switched the item while I wasn't looking! Get out of here!";
           close;
       }
       if(getarg(2) == 1){
           set .@rand,rand(1,3);
           if (.@rand == 1) {
               mes "Clang! Clang! Clang! Clang!";
               successrefitem .@part;
               next;
               emotion e_no1;
               mes "["+ getarg(0) +"]";
               mes "Good! Succes!!!";
               mes "I am the best Blacksmith.";
               close;
           }
           else {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               atcommand "@refine "+ .@down[.@part -1] +" -1";
               next;
               emotion (!rand(5))?e_cash:e_omg;
               mes "["+ getarg(0) +"]";
               mes "Ahhh!!!";
               next;
               mes "["+ getarg(0) +"]";
               mes "Oh my!";
               mes "The upgrade level has dropped...";
               mes "There could've been made an mistake even though I am the best ever.";
               mes "It was out of my hands.";
               next;
               mes "["+ getarg(0) +"]";
               mes "I will do a better job next time! Don't worry!";
               close;
           }
       }
       set .@rand,rand(100);
       if (getequippercentrefinery(.@part) > .@rand) {
           mes "Clang! Clang! Clang! Clang!";
           successrefitem .@part;
           next;
           emotion e_no1;
           mes "["+ getarg(0) +"]";
           mes "Good! Succes!!!";
           mes "I am the best Blacksmith.";
           close;
       }
       else {
           mes "["+ getarg(0) +"]";
           mes "Clang! Clang! Clang! Clang!";
           atcommand "@refine "+ .@down[.@part -1] +" -1";
           next;
           emotion (!rand(5))?e_cash:e_omg;
           mes "["+ getarg(0) +"]";
           mes "Ahhh!!!";
           next;
           mes "["+ getarg(0) +"]";
           mes "Oh my!";
           mes "The upgrade level has dropped...";
           mes "There could've been made an mistake even though I am the best ever.";
           mes "It was out of my hands.";
           next;
           mes "["+ getarg(0) +"]";
           mes "I will do a better job next time! Don't worry!";
           close;
       }
   }
// New +11 and above Refining Functions ========================
   if(getequiprefinerycnt(.@part) < .@safe) {
       mes "[" + getarg(0) + "]";
       mes "I can refine this to the safe limit or a desired number of times. It's your choice.";
       next;
       set .@menu2,select("To the safe limit, please.","I'll decide how many times.","I've changed my mind...");
   } else
       set .@menu2,2;
   switch(.@menu2){
   case 1:
       set .@refinecnt,.@safe - getequiprefinerycnt(.@part);
       break;
   case 2:
       next;
       mes "[" + getarg(0) + "]";
       mes "How many times would you like me to refine your item?";
       next;
       input .@refinecnt;
       set .@refinecheck,.@refinecnt + getequiprefinerycnt(.@part);
       if (.@refinecnt < 1 || .@refinecheck > 10) {
           mes "[" + getarg(0) + "]";
           mes "I can't refine this item that many times.";
           close;
       }
       if(.@refinecheck > .@safe) {
           set .@refinecheck,.@refinecheck - .@safe;
           mes "[" + getarg(0) + "]";
           mes "This will try to refine the equipment " + .@refinecheck + " times past the safe limit. Ok?";
           next;
           if(select("Yes...","No...") == 2){
               mes "[" + getarg(0) + "]";
               mes "You said so... So be it.";
               close;
           }
       }
       break;
   case 3:
       next;
       mes "[" + getarg(0) + "]";
       mes "You said so... So be it.";
       close;
   }
   set .@fullprice,.@price * .@refinecnt;
   mes "[" + getarg(0) + "]";
   mes "That will cost you " + .@refinecnt + " " + getitemname(.@material) + " and " + .@fullprice + " Zeny. Is that ok?";
   next;
   if(select("Yes","No...") == 2){
       mes "[" + getarg(0) + "]";
       mes "You said so... So be it.";
       close;
   }
   if(countitem(.@material) < .@refinecnt || Zeny < .@fullprice) {
       mes "[" + getarg(0) + "]";
       mes "Is that all you got? Unfortunately I can't work for you at a lower price. Try putting yourself in my shoes.";
       close;
   }
   set Zeny,Zeny - .@fullprice;
   delitem .@material,.@refinecnt;
   while(.@refinecnt){
       if (getequipisequiped(.@part) == 0) {
           mes "[" + getarg(0) + "]";
           mes "Look here... you don't have any items on...";
           close;
       }
       if (getequipid(.@part) != .@refineitemid || (.@menu2 == 1 && getequippercentrefinery(.@part) < 100)) {
           mes "[" + getarg(0) + "]";
           mes "Clang... No, but did you imagine I could be so stupid?!";
           mes "You changed it...";
           mes "Get out before I stun you with my Hammer!!";
           close;
       }
       if(getarg(2) == 1){
           set .@rand,rand(1,3);
           if (.@rand == 1) {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               successrefitem .@part;
               next;
               emotion e_no1;
               mes "["+ getarg(0) +"]";
               mes "Good! Succes!!!";
               mes "I am the best Blacksmith.";
               close;
           }
           else {
               mes "["+ getarg(0) +"]";
               mes "Clang! Clang! Clang! Clang!";
               atcommand "@refine "+ .@down[.@part -1] +" -1";
               next;
               emotion (!rand(5))?e_cash:e_omg;
               mes "["+ getarg(0) +"]";
               mes "Ahhh!!!";
               next;
               mes "["+ getarg(0) +"]";
               mes "Oh my!";
               mes "The upgrade level has dropped...";
               mes "There could've been made an mistake even though I am the best ever.";
               mes "It was out of my hands.";
               next;
               mes "["+ getarg(0) +"]";
               mes "I will do a better job next time! Don't worry!";
               close;
           }
       }
       set .@rand,rand(100);
       if (getequippercentrefinery(.@part) > .@rand) {
           mes "Clang! Clang! Clang! Clang!";
           successrefitem .@part;
           next;
           emotion e_no1;
           mes "["+ getarg(0) +"]";
           mes "Good! Succes!!!";
           mes "I am the best Blacksmith.";
           close;
       }
       else {
           mes "["+ getarg(0) +"]";
           mes "Clang! Clang! Clang! Clang!";
           atcommand "@refine "+ .@down[.@part -1] +" -1";
           next;
           emotion (!rand(5))?e_cash:e_omg;
           mes "["+ getarg(0) +"]";
           mes "Ahhh!!!";
           next;
           mes "["+ getarg(0) +"]";
           mes "Oh my!";
           mes "The upgrade level has dropped...";
           mes "There could've been made an mistake even though I am the best ever.";
           mes "It was out of my hands.";
           next;
           mes "["+ getarg(0) +"]";
           mes "I will do a better job next time! Don't worry!";
           close;
       }
   }
   mes "[" + getarg(0) + "]";
   mes "All finished... Come again soon.";
   close;
}

// Ori/Elu to Carnium/Bradium Refiners
//============================================================
-    script    Austry#ref2    -1,{
   mes "[Austry]";
   mes "If you bring me 3";
   mes "Oridecon or Elunium";
   mes "I can exchange them for";
   mes "Bradium or Carnium.";
   mes "Just give me 50,000z.";
   next;
   switch(select("Oridecon to Bradium.:Elunium to Carnium.:Purified Bradium to Carnium.:No thanks.")) {
   case 1:
       setarray .@i[0],984,3,6224;  //Oridecon -> Bradium
       break;
   case 2:
       setarray .@i[0],985,3,6223;  //Elunium -> Carnium
       break;
   case 3:
       setarray .@i[0],6090,1,6223; //Purified_Bradium -> Carnium
       break;
   case 4:
       mes "[Austry]";
       mes "Hmm...";
       close;
   }
   if (countitem(.@i[0]) >= .@i[1] && Zeny >= 50000) {
       delitem .@i[0],.@i[1];
       set Zeny, Zeny - 50000;
       getitem .@i[2],1;
       mes "[Austry]";
       if (.@i[0] == 6090) {
           mes "Refining with Purified Bradium";
           mes "is a little expensive. I can";
           mes "trade it for some Carnium.";
       } else
           mes "Ok! Here is your "+getitemname(.@i[2])+".";
       mes "Take it and use it well.";
       close;
   }
   mes "[Austry]";
   mes "You better not be trying";
   mes "to cheat me because you";
   mes "don't have enough zeny";
   mes "or "+getitemname(.@i[0])+".";
   close;
}
prt_in,85,71,5    duplicate(Austry#ref2)    Austry#prt2    56
payon_in01,14,125,5    duplicate(Austry#ref2)    Austry#pay2    56
morocc_in,60,38,5    duplicate(Austry#ref2)    Austry#moc2    56

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  16
  • Topics Per Day:  0.00
  • Content Count:  33
  • Reputation:   0
  • Joined:  12/26/12
  • Last Seen:  

Thank you Capuche and rhovie16! You guys are great.

@Capuche

I tried the script this is not what I mean.

I want 3 different refiner

The first refiner is the normal refiner, up to +12

The 2nd refiner can refine using platinum coins and silver coins example = +5 refine= 10 Silver coins,

+11=2 Platinum Coins

And the 3rd is an Enchant Refiner, using an ENRICHED ELUNIUM and ZENY you can refine with more success rate

THANK YOU!

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Answer this question...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...