Jump to content
  • 0

refiner edit's


XkAcY-

Question


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  103
  • Reputation:   0
  • Joined:  11/13/11
  • Last Seen:  

How to remove the +1 to +10 refine in this script i want to allow only +11 and up to refine only

because Chilly +20 refiner is not working on me.. please edit this..

function	script	refinenew	{
set .@features,getarg(1);
mes "[" + getarg(0) + "]";
mes "I'm the Armsmith.";
mes "I can refine all kinds of weapons, armor and equipment, so let me";
mes "know what you want me to refine.";
next;
// Item Security Script
if( getsecurity() )
{
	mes "[" + getarg(0) + "]";
	mes "You can't refine. Blocked with @security.";
	close;
}
// ********************

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 6;
	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;
}
//Check to see if the items is already +10
if(getequiprefinerycnt(.@part) >= 10) {
	if( .@features || getequiprefinerycnt(.@part) >= 20 )
	{
		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
switch(getequipweaponlv(.@part)){
case 0:	 //Refine Armor
	if( .@refinerycnt < 10 )
	{
		set .@price,2000;
		set .@material,985;
	}
	else
	{
		set .@price,100000;
		set .@material,6223;
	}
	set .@safe,4;
	break;
case 1:	 //Refine Level 1 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,50;
		set .@material,1010;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,7;
	break;
case 2:	 //Refine Level 2 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,200;
		set .@material,1011;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,6;
	break;
case 3:	 //Refine Level 3 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,5000;
		set .@material,984;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,5;
	break;
case 4:	 //Refine Level 4 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,20000;
		set .@material,984;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,4;
	break;
case 5:	 //Refine other stuff?
	if( .@refinerycnt < 10 )
	{
		set .@price,2000;
		set .@material,985;
	}
	else
	{
		set .@price,100000;
		set .@material,6223;
	}
	set .@safe,4;
	break;
}
if(.@features != 1) {
	mes "[" + getarg(0) + "]";
	mes "To refine this I need";
	mes "one ^003366"+getitemname(.@material)+"^000000 and";
	mes "a service fee of " + .@price + " Zeny.";
	mes "Do you really wish to continue?";
	next;
	if(select("Yes:No") == 2){
		mes "[" + getarg(0) + "]";
		mes "Yeah...";
		mes "There's no need to";
		mes "rush. Take your time.";
		close;
	}
	if(getequippercentrefinery(.@part) < 100) {
		mes "[" + getarg(0) + "]";
		mes "Oh no! If I continue to";
		mes "refine this, there's a risk it could";
		switch(.@material) {
		case 985:
			mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
			break;
		case 6223:
		case 6224:
			mes "be ^FF0000downgraded by 3 levels!^000000";
			break;
		default:
			mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
			mes "or any added special properties.";
			break;
		}
		next;

		// Purified Elu-Ori
		switch(.@material) {
		case 984:
			if( countitem(6240) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFPurified Oridecon^000000, i can use it and if refine process fail, the weapon will only lost one refine point.";
				next;
				if( select("Use Purified Oridecon:Continue with a normal one") == 1 )
					set .@material,6240;
			}
			break;
		case 985:
			if( countitem(6241) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFPurified Elunium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use Purified Elunium:Continue with a normal one") == 1 )
					set .@material,6241;
			}
			break;
		case 6223:
			if( countitem(6225) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFHigh Density Kalunium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use High Density Kalunium:Continue with a normal one") == 1 )
					set .@material,6225;
			}
			break;
		case 6224:
			if( countitem(6226) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFHigh Density Bradium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use High Density Bradium:Continue with a normal one") == 1 )
					set .@material,6226;
			}
			break;
		}

		mes "["+getarg(0)+"]";
		mes "I can't make it any clearer.";

		if( .@material == 6240 || .@material == 6241 || .@material == 6225 || .@material == 6226 )
		{
			mes "If the refine fails the";	
			mes "equip will lose one refine";
			mes "point.";
		}
		else if( .@material == 6223 || .@material == 6224 )
		{
			mes "If the refine fails the";	
			mes "equip will lose three refine";
			mes "points.";
		}
		else
		{
			mes "Once a weapon is destroyed,";	
			mes "there's no getting it back.";
			mes "You really have a chance to";
			mes "^FF0000lose this weapon^000000 forever.";
		}

		mes "Do you still want to refine?";
		next;

		if(select("Yes:No") == 2){
			mes "[" + getarg(0) + "]";
			mes "I completely agree...";
			mes "I might be a great refiner, but sometimes even I make mistakes.";
			close;
		}
	}
	if((countitem(.@material) < 1) || (Zeny < .@price)) {
		mes "[" + getarg(0) + "]";
		mes "You don't seem to have";
		mes "enough Zeny or "+getitemname(.@material)+"...";
		mes "Go get some more. I'll be";
		mes "here all day if you need me.";
		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(getequippercentrefinery(.@part) <= rand(100)) {
		if( .@material == 6240 || .@material == 6241 || .@material == 6225 || .@material == 6226 )
			failedrefitemr .@part,1; // Lost one refine
		else if( .@material == 6223 || .@material == 6224 )
			failedrefitemr .@part,3; // Lost three refines
		else
			failedrefitem .@part; // Break the equip

		mes "[" + getarg(0) + "]";
		set .@emo,rand(1,5);
		if (.@emo == 1) {
			Emotion e_cash;
		} else {
			Emotion e_swt;
		}
		set .@lose,rand(1,3);
		if (.@lose == 1) {
			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 == 2) {
			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;
	}
	mes "["+getarg(0)+"]";
	successrefitem .@part;
	Emotion e_heh;
	set .@win,rand(1,3);
	if (.@win == 1) {
		mes "Perfect!";
		mes "Heh heh!";
		mes "Once again,";
		mes "flawless work";
		mes "from the master~";
	} else if(.@win == 2) {
		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;
}

// New 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 "So 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. Your equipment may be destroyed... is that ok?";
		next;
		if(select("Yes...","No...") == 2){
			mes "[" + getarg(0) + "]";
			mes "You said so..Hmm so be it...";
			close;
		}
	}
	break;
case 3:
	next;
	mes "[" + getarg(0) + "]";
	mes "You said so..Hmm 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..Hmm 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 "Clan... No, but Did you imagine I could be so stupid !?!";
		mes "You have changed it...";
		mes "Go out before I stun you with my Hammer!!!";
		close;
	}
	mes "Clang, clang!!!";
	if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
		failedrefitem .@part;
		emotion 23;
		mes "[" + getarg(0) + "]";
		mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
		set .@refinecnt,.@refinecnt - 1;
		if(.@refinecnt == 0) close;
		mes "Here's the unused Zeny and Material back...";
		getitem .@material,.@refinecnt;
		set .@fullprice,.@refinecnt * .@price;
		set Zeny,Zeny + .@fullprice;
		close;
	}
	successrefitem .@part;
	emotion 21;
	set .@refinecnt,.@refinecnt - 1;
	next;
}
mes "[" + getarg(0) + "]";
mes "All finished... Come again soon.";
close;		
}

Link to comment
Share on other sites

5 answers to this question

Recommended Posts


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  39
  • Reputation:   2
  • Joined:  08/19/12
  • Last Seen:  

I think you mean that this Refiner should only refine Items which already have +10 or higher.

This should work:

function	script	refinenew	{
set .@features,getarg(1);
mes "[" + getarg(0) + "]";
mes "I'm the Armsmith.";
mes "I can refine all kinds of weapons, armor and equipment, so let me";
mes "know what you want me to refine.";
next;
// Item Security Script
if( getsecurity() )
{
	mes "[" + getarg(0) + "]";
	mes "You can't refine. Blocked with @security.";
	close;
}
// ********************

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 6;
	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;
}
//Check to see if the items is already +10
if(getequiprefinerycnt(.@part) >= 10) {
	if( .@features || getequiprefinerycnt(.@part) >= 20 )
	{
		mes "[" + getarg(0) + "]";
		mes "I can't refine this";
		mes "any more. This is as";
		mes "refined as it gets!";
		close;
	}
}
else { //added Part to disable refine under +10
mes "[" + getarg(0) + "]";
mes "I can't refine something which is refined lower than +10";
close;
}


set .@refineitemid, getequipid(.@part); // save id of the item
set .@refinerycnt, getequiprefinerycnt(.@part); //save refinery count
switch(getequipweaponlv(.@part)){
case 0:	 //Refine Armor
	if( .@refinerycnt < 10 )
	{
		set .@price,2000;
		set .@material,985;
	}
	else
	{
		set .@price,100000;
		set .@material,6223;
	}
	set .@safe,4;
	break;
case 1:	 //Refine Level 1 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,50;
		set .@material,1010;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,7;
	break;
case 2:	 //Refine Level 2 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,200;
		set .@material,1011;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,6;
	break;
case 3:	 //Refine Level 3 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,5000;
		set .@material,984;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,5;
	break;
case 4:	 //Refine Level 4 Weapon
	if( .@refinerycnt < 10 )
	{
		set .@price,20000;
		set .@material,984;
	}
	else
	{
		set .@price,100000;
		set .@material,6224;
	}
	set .@safe,4;
	break;
case 5:	 //Refine other stuff?
	if( .@refinerycnt < 10 )
	{
		set .@price,2000;
		set .@material,985;
	}
	else
	{
		set .@price,100000;
		set .@material,6223;
	}
	set .@safe,4;
	break;
}
if(.@features != 1) {
	mes "[" + getarg(0) + "]";
	mes "To refine this I need";
	mes "one ^003366"+getitemname(.@material)+"^000000 and";
	mes "a service fee of " + .@price + " Zeny.";
	mes "Do you really wish to continue?";
	next;
	if(select("Yes:No") == 2){
		mes "[" + getarg(0) + "]";
		mes "Yeah...";
		mes "There's no need to";
		mes "rush. Take your time.";
		close;
	}
	if(getequippercentrefinery(.@part) < 100) {
		mes "[" + getarg(0) + "]";
		mes "Oh no! If I continue to";
		mes "refine this, there's a risk it could";
		switch(.@material) {
		case 985:
			mes "be destroyed! That means that ^FF0000this equipment^000000, and ^FF0000any cards^000000 or special properties added to this armor, ^FF0000will be gone^000000.";
			break;
		case 6223:
		case 6224:
			mes "be ^FF0000downgraded by 3 levels!^000000";
			break;
		default:
			mes "be destroyed, and you'd ^FF0000lose the weapon^000000, any ^FF0000cards in the weapon^000000,";
			mes "or any added special properties.";
			break;
		}
		next;

		// Purified Elu-Ori
		switch(.@material) {
		case 984:
			if( countitem(6240) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFPurified Oridecon^000000, i can use it and if refine process fail, the weapon will only lost one refine point.";
				next;
				if( select("Use Purified Oridecon:Continue with a normal one") == 1 )
					set .@material,6240;
			}
			break;
		case 985:
			if( countitem(6241) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFPurified Elunium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use Purified Elunium:Continue with a normal one") == 1 )
					set .@material,6241;
			}
			break;
		case 6223:
			if( countitem(6225) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFHigh Density Kalunium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use High Density Kalunium:Continue with a normal one") == 1 )
					set .@material,6225;
			}
			break;
		case 6224:
			if( countitem(6226) )
			{
				mes "[" + getarg(0) + "]";
				mes "Oh, what's that? You have a ^0000FFHigh Density Bradium^000000, i can use it and if refine process fail, the equipment will only lost one refine point.";
				next;
				if( select("Use High Density Bradium:Continue with a normal one") == 1 )
					set .@material,6226;
			}
			break;
		}

		mes "["+getarg(0)+"]";
		mes "I can't make it any clearer.";

		if( .@material == 6240 || .@material == 6241 || .@material == 6225 || .@material == 6226 )
		{
			mes "If the refine fails the";	
			mes "equip will lose one refine";
			mes "point.";
		}
		else if( .@material == 6223 || .@material == 6224 )
		{
			mes "If the refine fails the";	
			mes "equip will lose three refine";
			mes "points.";
		}
		else
		{
			mes "Once a weapon is destroyed,";	
			mes "there's no getting it back.";
			mes "You really have a chance to";
			mes "^FF0000lose this weapon^000000 forever.";
		}

		mes "Do you still want to refine?";
		next;

		if(select("Yes:No") == 2){
			mes "[" + getarg(0) + "]";
			mes "I completely agree...";
			mes "I might be a great refiner, but sometimes even I make mistakes.";
			close;
		}
	}
	if((countitem(.@material) < 1) || (Zeny < .@price)) {
		mes "[" + getarg(0) + "]";
		mes "You don't seem to have";
		mes "enough Zeny or "+getitemname(.@material)+"...";
		mes "Go get some more. I'll be";
		mes "here all day if you need me.";
		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(getequippercentrefinery(.@part) <= rand(100)) {
		if( .@material == 6240 || .@material == 6241 || .@material == 6225 || .@material == 6226 )
			failedrefitemr .@part,1; // Lost one refine
		else if( .@material == 6223 || .@material == 6224 )
			failedrefitemr .@part,3; // Lost three refines
		else
			failedrefitem .@part; // Break the equip

		mes "[" + getarg(0) + "]";
		set .@emo,rand(1,5);
		if (.@emo == 1) {
			Emotion e_cash;
		} else {
			Emotion e_swt;
		}
		set .@lose,rand(1,3);
		if (.@lose == 1) {
			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 == 2) {
			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;
	}
	mes "["+getarg(0)+"]";
	successrefitem .@part;
	Emotion e_heh;
	set .@win,rand(1,3);
	if (.@win == 1) {
		mes "Perfect!";
		mes "Heh heh!";
		mes "Once again,";
		mes "flawless work";
		mes "from the master~";
	} else if(.@win == 2) {
		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;
}

// New 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 "So 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. Your equipment may be destroyed... is that ok?";
		next;
		if(select("Yes...","No...") == 2){
			mes "[" + getarg(0) + "]";
			mes "You said so..Hmm so be it...";
			close;
		}
	}
	break;
case 3:
	next;
	mes "[" + getarg(0) + "]";
	mes "You said so..Hmm 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..Hmm 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 "Clan... No, but Did you imagine I could be so stupid !?!";
		mes "You have changed it...";
		mes "Go out before I stun you with my Hammer!!!";
		close;
	}
	mes "Clang, clang!!!";
	if(.@menu2 == 2 && getequippercentrefinery(.@part) <= rand(100)) {
		failedrefitem .@part;
		emotion 23;
		mes "[" + getarg(0) + "]";
		mes "WAHHHH!!! I'm so sorry... I warned you this could happen...";
		set .@refinecnt,.@refinecnt - 1;
		if(.@refinecnt == 0) close;
		mes "Here's the unused Zeny and Material back...";
		getitem .@material,.@refinecnt;
		set .@fullprice,.@refinecnt * .@price;
		set Zeny,Zeny + .@fullprice;
		close;
	}
	successrefitem .@part;
	emotion 21;
	set .@refinecnt,.@refinecnt - 1;
	next;
}
mes "[" + getarg(0) + "]";
mes "All finished... Come again soon.";
close;		
}

I just added this part at the if-clause which asks if it is already higher or +10.

else { //added Part to disable refine under +10
mes "[" + getarg(0) + "]";
mes "I can't refine something which is refined lower than +10";
close;
}

This will abort the conversation when the item is not +10 or higher.

Edited by skyleo
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.01
  • Content Count:  292
  • Reputation:   17
  • Joined:  12/12/11
  • Last Seen:  

You should have changed the if statement rather than putting the else part... :)

The if part is blocking the refinement of +11 equipments above while your else part blocks the refinement of +10 below equipments.. therefore, it will not refine anything.. :)

@TS, what's your error with chilly's refining script? :)

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  35
  • Topics Per Day:  0.01
  • Content Count:  103
  • Reputation:   0
  • Joined:  11/13/11
  • Last Seen:  

my error on Chilly Refiner is faileditemR

thank you now working

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  0
  • Topics Per Day:  0
  • Content Count:  39
  • Reputation:   2
  • Joined:  08/19/12
  • Last Seen:  

wakoko, it's blocking nothing above +11 and under +20.

Since it will just go out of the if clause, when there's no close.

Could you describe the error more?

Does the npc say that the refining failed?

Edit:

But yes wakoko, it does make more sense to change the if.

Also the if didn't really make sense at the unmodified NPC.

Edit2(Maybe the solution):

You need to have the chances for +11 to +20 in your refine_db.txt located in the db folder,

otherwise it might have just the chance 0% since there's no value defined.

Edited by skyleo
Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  46
  • Topics Per Day:  0.01
  • Content Count:  292
  • Reputation:   17
  • Joined:  12/12/11
  • Last Seen:  

@TS, faileditemR is a source code, you need to apply the codes and then compile.. :)

@skyleo

yeah it will work, didn't see this

if( .@features || getequiprefinerycnt(.@part) >= 20 )

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...