Jump to content
  • 0

Refine npc


Chocolate

Question


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   4
  • Joined:  08/28/13
  • Last Seen:  

//Update	2012/11/18
//Author	Goddameit
//Web	http://goo.gl/m1dHu

prontera,135,199,4	script	Refiner	990,{

	set .Scroll,31115;//'Protection Scroll' item id

	set .back,0;
	//when use 'Protection Scroll'
	//-1,-2,-3... -->back to level 1,2,3...(MAX:10) if refine fail
	//1,2,3... --> reduce level 1,2,3.... if refine fail
	
	set @use2,31115;
	set @rate,0;
	set @typr,0;
	set @menu2,0;
	set @use3,0;

	function	CHose	;
	function	nZeny
	{
		switch(getequipweaponlv(getarg(0)))
		{
			case 1:
				return 500;
			case 2:
				return 2000;
			case 0:
			case 3:
			case 4:
				return 5000;
			default:
				return 0;
		}
	}
	
	function	nItem
	{
		if(getarg(1)==1){
			switch(getequipweaponlv(getarg(0)))
			{
				case 0:
					return 985;
				case 1:
					return 1010;
				case 2:
					return 1011;
				case 3:
				case 4:
					return 984;
				default:
					return 0;
			}
		}else{
			switch(getequipweaponlv(getarg(0)))
			{
				case 0:
					return 6241;
				case 1:
				case 2:
				case 3:
				case 4:
					return 6240;
				default:
					return 0;
			}
		}
	}
	
	function	nRate
	{
		function	aRate
		{
			return getarg(getarg(0,0)+1,0);
		}
		switch(getequipweaponlv(getarg(0)))
		{
			case 0:
				return aRate(getarg(1),
				100,100,100,100,60,
				40,40,20,20,10,
				50,30,20,10,10,
				10,10,10,10,10);
				
			case 1:
				return aRate(getarg(1),
				100,100,100,100,100,
				100,100,60,40,20,
				70,70,50,50,30,
				30,20,20,10,10);
				
			case 2:
				return aRate(getarg(1),
				100,100,100,100,100,
				100,60,40,20,20,
				70,50,50,30,30,
				20,20,10,10,10);
				
			case 3:
				return aRate(getarg(1),
				100,100,100,100,100,
				60,50,20,20,20,
				50,50,30,30,20,
				20,10,10,10,10);
				
			case 4:
				return aRate(getarg(1),
				100,100,100,100,60,
				40,40,20,20,10,
				50,30,30,20,20,
				10,10,10,10,10);
		}
	}

	function	sRater	{
		mes "[Successful rate]["+set(@rate,(nRate(@typr,getequiprefinerycnt(@typr))+(@use2>6000?10:0)))+"%]";
		return;
	}

	if(select("Refine","Close")==2)
		close;
	
	set @typr,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6),""+getequipname(9),""+getequipname(10));
	callsub OnCon;

	sRater;
	if(select("Refine now","Don't refine")==2)
		close;	
	callsub OnCon2;
OnCon:	
	if(!getequipisenableref(@typr))
	{
		mes "I can't refine this !...";
		close;

	}	
	if(getequiprefinerycnt(@typr)>=20)
	{
		mes "it's not possible to refine this better than +20.";
		close;
	}	
	if(Zeny<nZeny(@typr))
	{
		mes "your Zeny is lower than "+nZeny(@typr)+".";
		close;
	}
	if( @use3 )
	{
		if( !countitem(@use3) )
		{
			mes "your don't have any "+getitemname(@use3)+".";
			close;
		}
	}else{
		if( !countitem(set(@use2,nItem(@typr,select("Don't use Purified.","Use it.")))))
		{
			mes "your don't have any "+getitemname(@use2)+".";
			close;
		}
		set @use3,@use2;
	}
	return;
OnCon2:
	if(.Scroll)
	{
		if( @menu2==2 )
		{
			if(!countitem(.Scroll))
			{
				mes "your don't have Protection Scroll.";
				close;
			}
		}else{
			if( select("Don't use Protection Scroll.","Use it.")==2)
			{
				if(!countitem(.Scroll))
				{
					mes "your don't have Protection Scroll.";
					close;
				}
			}else
				mes " ";
		}

	}
	
	set Zeny,Zeny-nZeny(@typr);
	
	if(.Scroll)
	{
		if( @menu==2 || @menu2==2 )
			delitem .Scroll,1;
	}
	delitem @use2,1;
	
	if(.Scroll)
	{
		if( @menu==2 || @menu2==2 )
		{
			if(@rate<rand(1,100))
			{
				if(.back<0)
				{
					getitem2 getequipid(@typr),1,1,-(.back<-10?-10:.back),0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3);
					failedrefitem @typr;
					close;
				}else{
					set .@D,set(.@D,getequiprefinerycnt(@typr)-.back)<0?0:.@D;
					if(getequiprefinerycnt(@typr)<=10)
					{
						getitem2 getequipid(@typr),1,1,.@D,0,getequipcardid(@typr,0),getequipcardid(@typr,1),getequipcardid(@typr,2),getequipcardid(@typr,3);
						failedrefitem @typr;
						close;
					}else
						while(getequiprefinerycnt(@typr)!=.@D)successrefitem @typr;
				}
			}else
				successrefitem @typr;
			CHose(@use2,@menu);
		}
	}
	if(@rate<rand(1,100))
	{

		failedrefitem @typr;
		close;
	}else
		successrefitem @typr;
	CHose(@use2,@menu);
	
	function	CHose	{
		set @menu2,@menu2?@menu2:@menu;
		set @use3,@use3?@use3:@use2;
		next;
		sRater;
		if( select("[continue]","[end]")  == 2 )
			close;
		else
			callsub OnCon,1;
		callsub OnCon2;
	}
}

When trying to refine middle headgear and lower headgear it says cannot refine this....

how or what i need to change to make middle , lower headgear be refinenable

bump

Edited by Chocolate
Link to comment
Share on other sites

6 answers to this question

Recommended Posts


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2351
  • Joined:  10/28/11
  • Last Seen:  

	if(!getequipisenableref(@typr))
	{
		mes "I can't refine this !...";
		close;

	}

remove this part...

 

or edit your db/re/item_db.txt and set the item to refine-able.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   4
  • Joined:  08/28/13
  • Last Seen:  

my item_db is fine after i removing this

 

	if(!getequipisenableref(@typr))
	{
		mes "I can't refine this !...";
		close;

	}

It says i can refine but when proceeding the item isn't refining at all but the elunium is decrease its like when you use the refiner npc my item dnt have any + but the elunium gone

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:  

post-5984-0-58900800-1378567219_thumb.jpg

Seem working for me.. post your current script.

Link to comment
Share on other sites


  • Group:  Members
  • Topic Count:  14
  • Topics Per Day:  0.00
  • Content Count:  59
  • Reputation:   4
  • Joined:  08/28/13
  • Last Seen:  

attachicon.gifscreenrAthena000.jpg

Seem working for me.. post your current script.

Yes it works for Armor,shoes,muffler,shield,upper headgear  but it wont work for lower , middle headgear

current script above

Link to comment
Share on other sites


  • Group:  Forum Moderator
  • Topic Count:  93
  • Topics Per Day:  0.02
  • Content Count:  10015
  • Reputation:   2351
  • Joined:  10/28/11
  • Last Seen:  

change this

set @typr,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6),""+getequipname(9),""+getequipname(10));

to

setarray .@eqi,EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L,EQI_HAND_R,EQI_GARMENT,EQI_SHOES,EQI_HEAD_MID,EQI_HEAD_LOW;
set .@i,select(""+getequipname(1),""+getequipname(2),""+getequipname(3),""+getequipname(4),""+getequipname(5),""+getequipname(6),""+getequipname(9),""+getequipname(10));
set @typr,.@eqi[ .@i-1 ];
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...