prt_in,63,58,3 script Enchanted Smite 743,{ function EquipmentValidation; function RuneSelect; function ListEquipment; mes "Which Part you want to enchant ?"; mes "^FF0000Make sure you wear the Equipments^000000"; next; set .@i,( select( "^0000FFView Equipment Lists^000000", ( getequipid(EQI_HEAD_TOP) == -1 )?"[TOP] ^FF0000Unavailable^000000":"[TOP] "+getitemname(getequipid(EQI_HEAD_TOP)), ( getequipid(EQI_ARMOR) == -1 )?"[ARMOR] ^FF0000Unavailable^000000":"[ARMOR] "+getitemname(getequipid(EQI_ARMOR)), ( getequipid(EQI_HAND_R) == -1 )?"[HAND_R] ^FF0000Unavailable^000000":"[HAND_R] "+getitemname(getequipid(EQI_HAND_R)), ( getequipid(EQI_GARMENT) == -1 )?"[GARMENT] ^FF0000Unavailable^000000":"[GARMENT] "+getitemname(getequipid(EQI_GARMENT)), ( getequipid(EQI_SHOES) == -1 )?"[SHOES] ^FF0000Unavailable^000000":"[SHOES] "+getitemname(getequipid(EQI_SHOES))) - 1 ); if( .@i <= 0 ) ListEquipment(); set .@Equip,(( .@i < 3 )?.@i:.@i+1 ); if( getequipid( .@Equip ) == -1 ){ mes "Sorry make sure you have Item Equipped."; }else if( !EquipmentValidation( .@Equip ) ){ mes "Sorry but you cant Enchant the Equipment if it is not Allowed / Named."; }else if( countitem( getequipid( .@Equip ) ) > 1 ){ mes "Please make sure you only have 1 x "+getitemname( getequipid( .@Equip ) ); }else{ mes "Socket you want to Enchant ?"; set .@Socket,select("Socket 1:Socket 2:Socket 3"); mes "What type of Attribute you want to Enchant ?"; set .@Stat,select("STR:INT:DEX:AGI:VIT:LUK"); set .@CurrentRune,getequipcardid( .@Equip,.@Socket ); set .@NextRune,RuneSelect( .@CurrentRune,.@Stat ); if( .@NextRune && EquipmentValidation( .@Equip ) ){ if( getequipcardid( .@Equip,0 ) || getequiprefinerycnt( .@Equip ) ){ mes "There is Card inside or the Equipment is Refined, the Item will be destroyed if Failed."; if( select("Continue:Cancel") == 2 ) close; } mes "It cost ^FF0000"+.Cost[@Level]+"^000000 Zeny to enchant ^0000FF"+getitemname( getequipid( .@Equip ) )+"^000000 with ^0000FF"+getitemname(.@NextRune)+"^000000 at ^FF0000Socket "+.@Socket+"^000000."; next; if( select("Continue:Cancel") == 2 ) close; setarray .@EQStats[0],getequiprefinerycnt( .@Equip ),getequipcardid( .@Equip,0 ),getequipcardid( .@Equip,1 ),getequipcardid( .@Equip,2 ),getequipcardid( .@Equip,3 ); if( Zeny < .Cost[@Level] ){ mes "Sorry you didnt have enough of "+.Cost[@Level]+" Zeny."; }else{ set Zeny,Zeny - .Cost[@Level]; if( rand(100) < 0 ){ mes "Congratulation, you SUCCESS to enchant the ^0000FF"+getitemname( getequipid( .@Equip ) )+"^000000 with ^0000FF"+getitemname(.@NextRune)+"^000000 at ^FF0000Socket "+.@Socket+"^000000."; set .@EQID,getequipid( .@Equip ); delitem .@EQID,1; specialeffect2 154; getitem2 .@EQID,1,1,.@EQStats[0],0,.@EQStats[1],( ( .@Socket == 1 )?.@NextRune:.@EQStats[2] ),( ( .@Socket == 2 )?.@NextRune:.@EQStats[3] ),( ( .@Socket == 3 )?.@NextRune:.@EQStats[4] ); }else{ mes "Sorry, the Process Failed."; } } } } close; function EquipmentValidation { if( getequipcardid( getarg(0),0 ) == -255 || getequipcardid( getarg(0),0 ) == 254 || getequipcardid( getarg(0),0 ) == 255 ) return 0; switch( getarg(0) ){ Case 1: copyarray .@EQList[0],.Headgear[0],getarraysize(.Headgear[0]); break; Case 2: copyarray .@EQList[0],.Armor[0],getarraysize(.Armor[0]); break; Case 4: copyarray .@EQList[0],.Shield[0],getarraysize(.Shield[0]); break; Case 5: copyarray .@EQList[0],.Garment[0],getarraysize(.Garment[0]); break; Case 6: copyarray .@EQList[0],.Shoes[0],getarraysize(.Shoes[0]); break; default: mes "ERROR. Wrong Equipment Part Selection ["+getarg(0)+"]."; close; } for( set .@i,0; .@i < getarraysize( .@EQList ); set .@i,.@i + 1 ) if( .@EQList[.@i] == getequipid( getarg(0) ) ) return 1; return 0; } function RuneSelect { switch( getarg(1) ){ Case 1: setarray .@RuneID[0],4700,4701,4702; break; Case 2: setarray .@RuneID[0],4710,4711,4712; break; Case 3: setarray .@RuneID[0],4720,4721,4722; break; Case 4: setarray .@RuneID[0],4730,4731,4732; break; Case 5: setarray .@RuneID[0],4740,4741,4742; break; Case 6: setarray .@RuneID[0],4750,4751,4752; break; } for( set .@i,0; .@i < getarraysize( .@RuneID ); set .@i,.@i + 1 ) if( getarg(0) == .@RuneID[2] ){ mes "Sorry you cant enchant this socket anymore."; return 0; }else if( !getarg(0) ){ set @Level,.@i; return .@RuneID[.@i]; }else if( getarg(0) == .@RuneiD[.@i] ){ set @Level,.@i+1; return .@RuneID[.@i+1]; } mes "Please select a RUNE that ^FF0000Same Attribute^000000 you enchanted for this socket before."; return 0; } function ListEquipment { for( set .@i,0; .@i < getarraysize( .Headgear ); set .@i,.@i + 1 ) mes "["+.@i+"] "+getitemname(.Headgear[.@i]); next; for( set .@i,0; .@i < getarraysize( .Armor ); set .@i,.@i + 1 ) mes "["+.@i+"] "+getitemname(.Armor[.@i]); next; for( set .@i,0; .@i < getarraysize( .Shield ); set .@i,.@i + 1 ) mes "["+.@i+"] "+getitemname(.Shield[.@i]); next; for( set .@i,0; .@i < getarraysize( .Garment ); set .@i,.@i + 1 ) mes "["+.@i+"] "+getitemname(.Garment[.@i]); next; for( set .@i,0; .@i < getarraysize( .Shoes ); set .@i,.@i + 1 ) mes "["+.@i+"] "+getitemname(.Shoes[.@i]); close; } OnInit: // Level Cost setarray .Cost[0],100000,300000,500000; // Level Success Rate setarray .Rate[0],70,20,10; // Equipment Lists setarray .Headgear[0],5292,5151,5382,5451,5452,5453,5529,5505,5751,20017,20031,20032,20043,20044,20052,5171; setarray .Armor[0],15036,15037,15030,15038,15042,15043,15007,15025,15026,15027,15028,2389,2378,15000,2310,2375,2374,2366,2320,2317,2391,2386,2315,2364,2340,2360,2348,2349,2350,2351,2344,2345,2346,2347,2357; setarray .Shield[0],2153,2145,2116,2138,2131,2115,2134,2104; setarray .Garment[0],2574,2575,2570,2577,2580,2581,2559,2554,2524,2521,2537,2544,2506,2504,2512,2554,2509; setarray .Shoes[0],2475,2476,2472,2477,2479,2480,2455,2467,2468,2469,2470,2421,2406,2433,2412,2404,2440,2450; end; } dicastes01,180,232,5 duplicate(Enchanted Smite) Enchanted Smite#01 743 gonryun,137,117,5 duplicate(Enchanted Smite) Enchanted Smite#02 743 prontlegend,201,177,3 duplicate(Enchanted Smite) Enchanted Smite#03 743