try this
prontera,156,186,4 script stest 857,{
setarray .@indices,EQI_ACC_L,EQI_ACC_R,
EQI_SHOES,EQI_GARMENT,
EQI_HEAD_LOW,EQI_HEAD_MID,
EQI_HEAD_TOP,EQI_ARMOR,EQI_HAND_L ,EQI_HAND_R,
EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,
EQI_COSTUME_HEAD_LOW,EQI_COSTUME_GARMENT,
EQI_SHADOW_ARMOR,EQI_SHADOW_WEAPON,
EQI_SHADOW_SHIELD,EQI_SHADOW_SHOES,
EQI_SHADOW_ACC_R,EQI_SHADOW_ACC_L;
for(.@i = 0;.@i < getarraysize(.@indices);.@i++){
if (getequipisequiped(.@indices[.@i])) {
set .@menu$, .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]";
set .@equipped,1;
}
set .@menu$, .@menu$ + ":";
}
if (.@equipped == 0) {
mes "[Suhnbi]";
mes "I don't think I can refine any items you have...";
close;
}
set .@part, .@indices[ select(.@menu$) ];
if (!getequipisequiped(.@part)) {
message strcharinfo(0), "Make sure you're wearing the equipment first.";
end;
}
// Enchant stones
setarray .@enchant_slot1[0],4710,4711,4720,4721; //Inteligence1,Inteligence2,Dexterity1,Dexterity2
setarray .@enchant_slot2[0],4711,4720,4721,4740; //Inteligence2,Dexterity1,Dexterity2,Vitality1
setarray .@enchant_slot3[0],4764,4799,4766,4788; //Critical5,HP500,Atk2,Mdef6
// Random
.@enchant_1 = .@enchant_slot1[rand(getarraysize(.@enchant_slot1))];
.@enchant_2 = .@enchant_slot2[rand(getarraysize(.@enchant_slot2))];
.@enchant_3 = .@enchant_slot3[rand(getarraysize(.@enchant_slot3))];
// Get current refine to keep refine
.@equip_refine = getequiprefinerycnt(.@part);
// Get current card to keep card
setarray .@equip_card[0], getequipcardid(.@part,0),getequipcardid(.@part,1),getequipcardid(.@part,2),getequipcardid(.@part,3);
// Delete item
delitem .@item_to_test,1; // Cotton Shirt [1]
// Can break armor?
if (rand(100) < 50) {
specialeffect2 EF_SUI_EXPLOSION;
message strcharinfo(0),"Oh Shit!";
end;
} else {
// Effect
specialeffect2 EF_REPAIRWEAPON;
emotion ET_BEST;
// Get a new item
getitem2 .@item_to_test,1,1,.@equip_refine,0,.@equip_card[0],.@enchant_1,.@enchant_2,.@enchant_3;
message strcharinfo(0),"Yay!";
}
end;
}