//===== Hercules Script ====================================== //= Shadow Refiner //===== By: ================================================== //= Dastgir //===== Current Version: ===================================== //= 1.0 //===== Description: ========================================= //= [Aegis Conversion] //===== Additional Comments: ================================= //= 1.0 First Version [Dastgir] //============================================================ itemmall,31,76,3 script Shadow Blacksmith#nomal 4_F_JOB_BLACKSMITH,{ disable_items; mes "[Shadow Blacksmith]"; mes "Do you want to refine a Shadow item?."; mes "Please choose the part you want to refine."; next; setarray .@position$[0],"Armor","Weapon","Shield","Shoes","Earring","Pendant"; for (.@i=EQI_SHADOW_ARMOR; .@i<=EQI_SHADOW_ACC_L; .@i++){ .@menu$ = .@menu$+((getequipisequiped(.@i))?getequipname(.@i):"^8C8C8C"+.@position$[.@i-EQI_SHADOW_ARMOR]+" [Not Equipped]^000000")+":"; } .@menu$ = .@menu$+"Refine Info"; .@SelectedPart = select(.@menu$)+EQI_SHADOW_ARMOR-1; if (.@SelectedPart == EQI_SHADOW_ACC_L+1){ // Refine Info mes "[Shadow Blacksmith]"; mes "Shadow item will gain extra bonus effect by the refine level, same as normal weapon/armour items."; next; mes "[Shadow Blacksmith]"; mes "Following are refining effect for each Shadow item parts."; mes "Weapon: ATK, MATK + 1 increase for each +1 refine success."; mes "Etc: HP + 10 increase for each +1 refine success."; next; mes "[Shadow Blacksmith]"; mes "You need Oridecon and Elunium for Shadow item refine ingredient, along with refine fee 20000 zeny."; next; mes "[Shadow Blacksmith]"; mes "When +5 or higher refining Shadow item can be destroyed, please use Enriched or HD ingredient for the refinement."; close; } while(1){ mes "[Shadow Blacksmith]"; mes "20000 zeny will be spent as a refine fee."; mes "Choose the ingredient and start refining."; next; .@index = 0; if (.@SelectedPart != EQI_SHADOW_WEAPON) .@index = 1; setarray .@s_weapon1[0],Oridecon,Elunium; setarray .@s_weapon2[0],Enriched_Oridecon,Enriched_Elunium; setarray .@s_weapon3[0],HD_Oridecon,HD_Elunium; if (countitem(.@s_weapon1[.@index])) .@mate$[0] = getitemname(.@s_weapon1[.@index]); else{ .@mate$[0] = "^8C8C8C"+ getitemname(.@s_weapon1[.@index]) +"^000000"; .@miss[0] = 1; } if (countitem(.@s_weapon2[.@index])) .@mate$[1] = getitemname(.@s_weapon2[.@index]); else{ .@mate$[1] = "^8C8C8C"+ getitemname(.@s_weapon2[.@index]) +"^000000"; .@miss[1] = 1; } if (getequiprefinerycnt(.@SelectedPart) > 6 && countitem(.@s_weapon3[.@index])) .@mate$[2] = getitemname(.@s_weapon3[.@index]); else { .@mate$[2] = "^8C8C8C"+ getitemname(.@s_weapon3[.@index]) +"^000000"; .@miss[2] = 1; } //----------------------------------------------------------------------------- .@option = select("Cancel",.@mate$[0],.@mate$[1],.@mate$[2]); if (.@option == 1){ mes "[Shadow Blacksmith]"; mes "You've cancelled refining."; close; } .@option -= 2; if (.@option==2){ //HD if (getequiprefinerycnt(.@SelectedPart) < 7){ mes "[Shadow Blacksmith]"; mes "HD ingredient is only possible to use for +7 or higher refine level items."; close; } .@hoihoi = 1; } if (.@miss[.@option]){ mes "[Shadow Blacksmith]"; mes "You do not have proper ingredient for this refining."; close; } .@choose = getd(".@s_weapon"+(.@option+1)+"["+ .@index +"]"); if (Zeny < 20000) { mes "[Shadow Blacksmith]"; mes "You do not have enough refine fee."; close; } if (getequiprefinerycnt(.@SelectedPart) > 9) { mes "[Shadow Blacksmith]"; mes "Shadow item refining is only possible until +10 level."; close; } if (!getequipisenableref(.@SelectedPart)) { mes "[Shadow Blacksmith]"; mes "This item cannot be refined."; close; } if (getequippercentrefinery(.@SelectedPart) < 100) { mes "[Shadow Blacksmith]"; mes "Safety guaranteed refine limit for shadow item is until +4."; if (!.@hoihoi) { mes "If you try more refining, item might get broken when failed. Still want to refine?"; } else { mes "If you try more refining, item refine level might go down when failed. Still want to refine?"; } next; if (select("Proceed","Cancel") == 2) { mes "[Shadow Blacksmith]"; mes "You've cancelled refining."; close; } } //----------------------------------------------------------------------------- mes "[Shadow Blacksmith]"; mes "Here we go--!!!"; next; if (Zeny < 20000) { mes "[Shadow Blacksmith]"; mes "You do not have enough refine fee."; close; } if (!countitem(.@choose)) { mes "[Shadow Blacksmith]"; mes "You do not have enough "+ getitemname(.@choose) +"."; close; } delitem .@choose,1; Zeny -= 20000; if (getequippercentrefinery(.@SelectedPart) > rand(100) || getequippercentrefinery(.@SelectedPart) > rand(100)) { successrefitem .@SelectedPart; mes "[Shadow Blacksmith]"; mes "Refine was successful."; next; } else { if (.@hoihoi) downrefitem .@SelectedPart; else failedrefitem .@SelectedPart; mes "[Shadow Blacksmith]"; mes "Oh no.. Refine was failed."; close; } } }