1 quick refiner and rough converter

Ink

New member
Messages
42
Points
0
Github
Squall
Does anyone have the following:

1. A quick refiner like "you got a sword[4] equipped, do you want all sword[4] in your inventory at once? Do you want me to refine it to save, if not enter the ammount you want me to refine. This consumes "ammount" of "phracon/oridecon/hd"

2. you got 123 rough elu/ori/carnium/ or whatever else. I can make "ammount" elu/ori/etc. out of it

Using renewal mechanics, max refine is +20

 
I remember I made it once

and mine ... search for every single piece in the inventory, you don't have to equip it to be listed

http://rathena.org/board/topic/91508-multi-item-refine/

I just done reading some official refiner scripts and ... I just found out

its best to refine the weapon or armor into +7 with normal refiner

then go to MightyHammer to get it into +10

then go to Basta to get it into +20

3 of them using different types of material, might be tricky

is this 100% success rate ?

I can only make this if it is 100% success rate

 
no, it's using official success rate
default_sad.png


the search for all in the inventory is good. Maybe it is possible to:

1 npc for 0 to 10 with ori/elu

1 npc using hd items for 10-20

1 npc using refined items

its's not about to have all in 1 npcs, its more you dont have to upgrade one gear after another... that takes so long and is annoying (same for the rough material conversion)

 
Last edited by a moderator:
Ripped from Kenedos script

Code:
prontera,150,150,0	script	Fulerr	4_M_LGTMAN,{	callfunc "BulkRefine","Fulerr";	end;}function	script	BulkRefine	{	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;	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 .@equipped,1;		}		set .@menu$, .@menu$ + ":";	}	if (.@equipped == 0) {		mes "[" + getarg(0) + "]";		mes "I don't think I can refine any items you have...";		close;	}	set .@part, select(.@menu$);	if(!getequipisequiped(.@part)) { //custom check		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 to see if the items is already +10	if(getequiprefinerycnt(.@part) >= 10) {		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		set .@price,2000;		set .@material,985;		set .@safe,4;		break;	case 1: 	//Refine Level 1 Weapon		set .@price,50;		set .@material,1010;		set .@safe,7;		break;	case 2: 	//Refine Level 2 Weapon		set .@price,200;		set .@material,1011;		set .@safe,6;		break;	case 3: 	//Refine Level 3 Weapon		set .@price,5000;		set .@material,984;		set .@safe,5;		break;	case 4: 	//Refine Level 4 Weapon		set .@price,20000;		set .@material,984;		set .@safe,4;		break;	case 5: 	//Refine other stuff?		set .@price,2000;		set .@material,985;		set .@safe,4;		break;	}	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;			}			set .@refinecnt, getequiprefinerycnt(.@part) + .@refinecnt;			mes "Remember this will attempt to refine to ^009933+"+.@refinecnt+"^000000 ^FF0000ALL^000000 the ^0000FF"+getequipname(.@part)+"^000000 items you have in your inventory!!";			next;			if(select("Accept","Reject") == 2){				mes "[" + getarg(0) + "]";				mes "Smart kid....";				close;			}			break;		case 3:			next;			mes "[" + getarg(0) + "]";			mes "You said so..Hmm so be it...";			close;	}	deletearray @inventorylist_refine;	deletearray @inventorylist_id;	getinventorylist;	set .@i, 0;	for (set .@j, 0; .@j < @inventorylist_count; set .@j, .@j + 1) {		if ( @inventorylist_id[.@j] == getequipid(.@part) ) {			set .@temp[.@i], @inventorylist_refine[.@j];			set .@i, .@i + 1;		}	}	deletearray @inventorylist_refine;	deletearray @inventorylist_id;		.@fullprice = 0;	.@j = 0;	for ( set .@k, 0; .@k < .@i ; set .@k, .@k + 1) {		if ( .@temp[.@k] < .@refinecnt ) {			set .@fullprice, .@fullprice + ( ( .@refinecnt - .@temp[.@k] ) * .@price );			set .@j, .@j + (.@refinecnt - .@temp[.@k]);		}	}	deletearray .@temp;		mes "[" + getarg(0) + "]";	mes "That will cost you " + .@j + " " + 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 ( getbrokenid (.@refineitemid) ) {		mes "[" + getarg(0) + "]";		mes "Sorry but I can't work to refine an equipment if you have another of the same kind of item that's not repaired in your inventory.";		close;	}	if(countitem(.@material) < .@j || 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;	}	while(1){		for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)			deletearray getd(".@equip_inf"+.@c);		if ( getequipisequiped(.@part) == 0 ) {			equip .@refineitemid;			set .@re, 0;			while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {				for (set .@c, 0; .@c < 4; set .@c, .@c + 1)					if (getequipcardid(.@part,.@c) != 0)						setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);				setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);				unequip .@part;				delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),				getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");				equip .@refineitemid;				set .@re, .@re + 1;			}			if (.@re) {				for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {					getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),					getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");				}			}			for (set .@c, 0; .@c < .@re; set .@c, .@c + 1)				deletearray getd(".@equip_inf"+.@c);		}		set Zeny, Zeny - .@price;		delitem .@material, 1;		if(getequippercentrefinery(.@part) <= rand(100)) {			set .@breakgap, .@refinecnt - getequiprefinerycnt(.@part) ;			set .@j, .@j - .@breakgap ;			failedrefitem .@part;			if(.@j <= 0) close;		}		else {			successrefitem .@part;			set .@j, .@j - 1;			if(.@j <= 0) close;			set .@re, 0;			while ( getequiprefinerycnt(.@part) >= .@refinecnt ) {				for (set .@c, 0; .@c < 4; set .@c, .@c + 1)					if (getequipcardid(.@part,.@c) != 0)						setd ".@equip_inf"+.@re+"[.@c]", getequipcardid(.@part,.@c);				setd ".@equip_inf"+.@re+"[4]", getequiprefinerycnt(.@part);				unequip .@part;				delitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@re+"[4]"),0,getd(".@equip_inf"+.@re+"[0]"),				getd(".@equip_inf"+.@re+"[1]"),getd(".@equip_inf"+.@re+"[2]"),getd(".@equip_inf"+.@re+"[3]");				equip .@refineitemid;				set .@re, .@re + 1;			}			if (.@re) {				for (set .@c, 0; .@c < .@re; set .@c, .@c + 1) {					getitem2 .@refineitemid,1,1,getd(".@equip_inf"+.@c+"[4]"),0,getd(".@equip_inf"+.@c+"[0]"),					getd(".@equip_inf"+.@c+"[1]"),getd(".@equip_inf"+.@c+"[2]"),getd(".@equip_inf"+.@c+"[3]");				}			}		}		set .@clang, .@clang + 1;		sleep2 300;	}}
 
Back
Top