Im not really sure what you want, but i understood that you wanted the enchantment to be random instead of it to be selected in a list.
I had made here a modification on line 47 making it random instead of selecting it from the list.
mes .n$;
mes "Hello, "+strcharinfo(0)+"!";
mes "If you like I can enchant your costume equipment with any enchantment I have in store";
mes ( (.exchange_cost[0] > 0)?"in exchange for "+.enchant_cost[1]+"x "+getitemname(.enchant_cost[0]):"for free")+".";
mes "I can also reset an Enchantment "+ ((.enchant_reset[0] > 0)?", but I require "+.enchant_reset[1]+"x "+getitemname(.enchant_reset[0]):"for free")+".";
next;
switch(select("- Enchant Costumes:- Reset Enchantment:- Nevermind")) {
case 1:
mes .n$;
mes "Please select the Costume you want me to enchant:";
for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
switch(.enchant_slot[.@s]) {
case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
}
set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
}
set .@c_m$,.@c_m$ + ":- Cancel";
set .@c,select(.@c_m$);
if(.@c >= getarraysize(.enchant_slot)) close;
set .@part,.enchant_slot[.@c-1];
next;
mes .n$;
if(getequipid(.@part) == -1) {
mes "It looks like you don't have any costume equipped on there.";
close;
}
set .@hg,getequipid(.@part); // Saving Item ID
set .@ref,getequiprefinerycnt(.@part); // Saving Refine Level, if there is one
set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
mes "Selected Costume: "+getitemname(getequipid(.@part));
if(getequipcardid(.@part,3) != 0) {
mes "But it looks like you already have an enchantment in this costume.";
close;
}
mes "Now please select the Enchantment:";
next;
set .@rune,rand(0, getarraysize(.enchant_id) - 1);
mes .n$;
mes "Selected Enchantment: "+getitemname(.enchant_id[.@rune]);
if(.enchant_cost[0] > 0 && countitem(.enchant_cost[0]) < .enchant_cost[1]) {
mes "But it looks like you don't have enough "+getitemname(.enchant_cost[0])+"!";
close;
}
mes "Proceed?";
if(select("- Yes:- No") - 1) close;
next;
if(.enchant_cost[0] > 0)
delitem .enchant_cost[0],.enchant_cost[1];
delequip .@part;
getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,.enchant_id[.@rune];
equip .@hg;
mes .n$;
mes "The enchantment was a success.";
mes "See ya next time.";
enable_items;
break;
case 2:
mes .n$;
mes "Please select the Costume you want me to reset the enchantment!";
for ( set .@s,0; .@s < getarraysize(.enchant_slot); set .@s,.@s + 1) {
switch(.enchant_slot[.@s]) {
case EQI_COSTUME_HEAD_TOP: set .@c_slot$,"Top Headgear"; break;
case EQI_COSTUME_HEAD_MID: set .@c_slot$,"Mid Headgear"; break;
case EQI_COSTUME_HEAD_LOW: set .@c_slot$,"Low Headgear"; break;
case EQI_COSTUME_GARMENT: set .@c_slot$,"Garment"; break;
case EQI_SHADOW_ARMOR: set .@c_slot$,"Armor"; break;
case EQI_SHADOW_WEAPON: set .@c_slot$,"Weapon"; break;
case EQI_SHADOW_SHIELD: set .@c_slot$,"Shield"; break;
case EQI_SHADOW_SHOES: set .@c_slot$,"Shoes"; break;
case EQI_SHADOW_ACC_R: set .@c_slot$,"Accessory Right"; break;
case EQI_SHADOW_ACC_L: set .@c_slot$,"Accessory Left"; break;
}
set .@c_m$,.@c_m$ + ((getequipid(.enchant_slot[.@s]) != -1)?.@c_slot$ + " - "+getitemname(getequipid(.enchant_slot[.@s])):"") + ( (.enchant_slot[.@s+1] != 0)?":":"");
}
set .@c_m$,.@c_m$ + ":- Cancel";
set .@c,select(.@c_m$);
if(.@c >= getarraysize(.enchant_slot)) close;
set .@part,.enchant_slot[.@c-1];
next;
mes .n$;
if(getequipcardid(.@part,3) == 0) {
mes "It looks like you don't have any enchantment in this costume.";
close;
}
set .@hg,getequipid(.@part); // Saving Item ID
set .@ref,getequiprefinerycnt(.@part); // Saving Refine Level, if there is one
set .@card1,getequipcardid(.@part,0); // Save Item ID of Card Slot 1
mes "Selected Costume: "+getitemname(getequipid(.@part));
if(.enchant_reset[0] > 0 && countitem(.enchant_reset[0]) < .enchant_reset[1]) {
mes "But you don't have the required Items to reset the enchantment!";
close;
}
mes "Proceed?";
if(select("- Yes:- No") - 1) close;
next;
if(.enchant_reset[0])
delitem .enchant_reset[0],.enchant_reset[1];
delequip .@part;
getitem2 .@hg,1,1,.@ref,0,.@card1,0,0,0;
equip .@hg;
mes .n$;
mes "The enchantment has been reseted.";
mes "See ya next time.";
break;
case 3: break;
}
end;
OnInit:
set .n$,"[Costume Enchanter]";
// Enter here every Costume Slot, which you want to be enchantable
// Valid Entries:
// - 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
setarray .enchant_slot[0],EQI_COSTUME_HEAD_TOP,EQI_COSTUME_HEAD_MID,EQI_COSTUME_HEAD_LOW;
// Enchantment ID's
setarray .enchant_id[0],6636,6637,6638,6639,6640,6641;
// Price for enchanting:
// To disable the price, put 0 as values
setarray .enchant_cost[0],501,10; // Item ID,Amount
// Price for reseting:
// To disable the price, put 0 as values
setarray .enchant_reset[0],501,10; // Item ID,Amount
end;
}
If you can be more specific of what do you need maybe i can help you further. If you dont know how to say it you can use the help of google translate