Try to replace
setarray .@position$[1], "Headgear","Armor","Shield","Invalid","Garment","Footgear";
set .@menu$,"";
deletearray .@arr;
set .@j, 1;
for( set .@i,1; .@i <= 6; set .@i,.@i+1 )
{
if ((.@i == 3) && (getiteminfo(getequipid(3),5) == 32) && (getequipisequiped(.@i))) { // Only catch shields
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@arr[.@j], .@i;
set .@j, .@j + 1;
set .@menu$, .@menu$ + ":";
}
if(getequipisequiped(.@i) && (.@i != 4) && (.@i != 3)) {
set .@menu$, .@menu$ + .@position$[.@i] + "-" + "[" + getequipname(.@i) + "]";
set .@arr[.@j], .@i;
set .@j, .@j + 1;
set .@menu$, .@menu$ + ":";
}
}
if (.@menu$ == "") {
mes "["+strnpcinfo(1)+"]";
mes "Errr wait. Oh Sorry but you must have armors equipped to enchant them!";
close;
}
// Calibrating menu
set .@part, select(.@menu$);
if (.@arr[.@part] == 1)
set .@part, 1;
else if (.@arr[.@part] == 2)
set .@part, 2;
else if (.@arr[.@part] == 3)
set .@part, 3;
else if (.@arr[.@part] == 5)
set .@part, 5;
else if (.@arr[.@part] == 6)
set .@part, 6;
TO
setarray .@indices[1], EQI_HEAD_TOP, EQI_ARMOR, EQI_HAND_L, EQI_HAND_R, EQI_GARMENT, EQI_SHOES, EQI_ACC_L, EQI_ACC_R, EQI_HEAD_MID, EQI_HEAD_LOW;
for( set .@i,1; .@i <= 10; set .@i,.@i+1 ) {
if( getequipisequiped(.@indices[.@i]) ) {
if( getiteminfo(getequipid(.@indices[.@i]),2) == 5 || getiteminfo(getequipid(.@indices[.@i]),5) == 136 )
continue;
set .@menu$, .@menu$ + F_getpositionname(.@indices[.@i]) + "-[" + getequipname(.@indices[.@i]) + "]";
}
set .@menu$, .@menu$ + ":";
}
// Calibrating menu
set .@part, .@indices[ select(.@menu$) ];