// http://www.emistry.net/board/index.php?threads/refine-one-click.552/
prontera,155,175,5 script Refiner#one_click 4_F_KAFRA9,{
function func_getitemname;
.@zeny = 10000;
.@max_refine = 20;
for ( .@i = EQI_HEAD_TOP; .@i <= EQI_SHOES; .@i++ ) {
.@itemid = getequipid( .@i );
.@refine = getequiprefinerycnt( .@i );
if ( .@itemid != -1 && .@refine < .@max_refine ) {
.@menu$ += func_getitemname( .@refine,.@itemid );
.@count++;
}
.@menu$ += ":";
}
if ( .@count ) {
mes "Pick items to refine.";
.@i = select( .@menu$ );
.@itemid = getequipid( .@i );
.@refine = getequiprefinerycnt( .@i );
mes "Refine to ... ";
input .@refine_count,0,.@max_refine;
if ( .@refine_count ) {
.@ore = (( getiteminfo( .@itemid,2 ) == IT_ARMOR ) ? 985:984 );
if ( !countitem( .@ore ) ) {
mes "You need "+getitemname( .@ore );
close;
}
while ( countitem( .@ore ) && getequiprefinerycnt( .@i ) < .@refine_count ) {
if ( Zeny < .@zeny ) {
mes "Not enough zeny.";
close;;
}
Zeny -= .@zeny;
delitem .@ore,1;
.@rate = rand( 100 );
if ( .@rate < getequippercentrefinery( .@i ) ) {
successrefitem .@i;
.@refine = getequiprefinerycnt( .@i );
mes "Success. "+func_getitemname( .@refine,.@itemid );
}
else {
failedrefitem .@i;
mes "Refine Failed.";
break;
}
sleep2 100;
}
}
}
else {
mes "No Equipments.";
}
close;
function func_getitemname {
.@refine = getarg( 0,0 );
.@itemid = getarg( 1 );
.@name$ = getitemname( .@itemid )+" ["+getitemslots( .@itemid )+"]";
if ( .@refine )
.@name$ = "+"+.@refine+" " + .@name$;
return .@name$;
}
}
Comments