//v 1.2 prontera,147,59,5 script Goldberg#0 878,{ function ordinal_suffix; function f_itm_menu; set .npc$, "["+strnpcinfo(1)+"]"; //NPC Name set .mode, atoi(strnpcinfo(2)); if(!.mode) { mes .npc$; mes "Hello there!"; mes "I can enchant or remove enchantments"; mes "from your 2012 RWC accessory items!"; next; } else if(.mode<3) { mes .npc$; mes "Hello there!"; mes "I can add a slot to your RWC"; mes "2012 accessory items!"; mes "^FF0000Any enchantments over the first"; mes "slot will be lost in the process!^000000"; next; } else { mes .npc$; mes "Hello there!"; mes "I can slot or enchant your RWC"; mes "2012 accessory items!"; mes "^FF0000Any enchantments over the first"; mes "slot will be lost in the process!^000000"; next; } switch(select(((.mode)?"Chamber Accessory"+((.mode>1)?":Enchant:Remove Enchantments":""):"Enchant:Remove Enchantments")+":Cancel")) { case 1: if(!.mode) { mes .npc$; mes "Which RWC Accessory item would you like to enchant?"; next; f_itm_menu(); goto L_Slots; } else { mes .npc$; mes "Which RWC Accessory do you want me to slot?"; next; f_itm_menu(); break; } case 2: if(!.mode) { mes .npc$; mes "Select the RWC Accessory you would like me to remove the enchantments from."; next; f_itm_menu(); goto L_RMV; } else if (.mode>1) { mes .npc$; mes "Which RWC Accessory item would you like to enchant?"; next; f_itm_menu(); goto L_Slots; } case 3: if (.mode>1) { mes .npc$; mes "Select the RWC Accessory you would like me to remove the enchantments from."; next; f_itm_menu(); goto L_RMV; } case 4: goto L_Exit; } if(!compare(.slot$,""+@eq_id)) { mes .npc$; mes "That item cannot be slotted."; close; } while(.@i++<=4) setd(".@o_crd"+.@i, getequipcardid(@eq_loc,.@i-1)); mes .npc$; mes "Are you sure you wish to continue?"; mes "^FF0000There is a "+.pert+"% chance that"; mes "the slotting process will fail and"; mes "your item will break.^000000"; next; if(select("Yes:No")&2) goto L_Exit; if(rand(100)>=.pert) { delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; getitem2 (@eq_id+1), 1, 1, @eq_rf, 0, 0, .@o_crd2, .@o_crd3, .@o_crd4; misceffect 101; sleep2 1300; misceffect .efet; mes .npc$; mes "Perfection!!"; emotion e_no1,0; equip @eq_id; } else { delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; misceffect 101; sleep2 1300; misceffect .afet; mes .npc$; mes "The metal was too weak and the drill went right through... I'm Sorry!"; emotion e_sob,0; } close; L_Slots: set .@menu$, ""; set .@a, 0; while(set(.@a,.@a+1)<=4) { setd(".@o_crd"+.@a, getequipcardid(@eq_loc,.@a-1)); if(getequipcardid(@eq_loc,.@a-1)) set .@menu$, .@menu$+ ordinal_suffix(.@a)+" Slot - [^a92435"+getitemname(getequipcardid(@eq_loc,.@a-1))+"^000000]:"; else if(getitemslots(@eq_id)-.@a>=0) set .@menu$, .@menu$+ ordinal_suffix(.@a)+" Slot - [Chambered]:"; else set .@menu$, .@menu$+ ordinal_suffix(.@a)+" Slot - [^30ad25"+((getd(".@crd"+.@a))?"^800080"+getd(".@typ"+.@a+"$"):"Empty")+"^000000]:"; } set .@menu$, .@menu$+"[^0000FFEnchant!^000000]"; mes .npc$; mes "Select a slot."; mes "Choose '^0000FFEnchant^000000' when you're done!"; next; set .@menu, select(.@menu$)-1; if(getequipcardid(@eq_loc,.@menu)&&getitemslots(@eq_id)-(.@menu+1)<0) { if(.remv) { mes .npc$; mes "Would you like me to remove this enchantment?"; next; if(select("Yes:No")&2) goto L_Exit; delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; setd(".@o_crd"+(.@menu+1), 0); getitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; equip @eq_id; goto L_Slots; } else { mes .npc$; mes "Sorry I can't do anything with this slot without a "+getitemname(.cure)+"."; next; goto L_Slots; } } else if(getitemslots(@eq_id)-(.@menu+1)>=0) { mes .npc$; mes "I cannot do anything with Chambered slots!"; next; goto L_Slots; } if((.@menu+1)>4) { if(!(.@crd1+.@crd2+.@crd3+.@crd4)) { mes .npc$; mes "You haven't done anything!"; next; goto L_Slots; } mes .npc$; mes "Are you sure you wish to continue?"; mes "^FF0000There is a "+.perc+"% chance that"; mes "the enchantment will fail and"; mes "your item will break.^000000"; next; if(select("Yes:No")&2) goto L_Exit; if(rand(100)>=.perc) { delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; getitem2 @eq_id, 1, 1, @eq_rf, 0, .@crd1, .@crd2, .@crd3, .@crd4; misceffect 101; sleep2 1300; misceffect .efet; mes .npc$; mes "Wow, that's one strong item!"; equip @eq_id; } else { delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; misceffect 101; sleep2 1300; misceffect .afet; mes .npc$; mes "I'm sorry, the item wasn't able to support the enchantment and broke!"; } close; } set(.@g$,""); if(@eq_id!=2966&&.@menu>1&&@eq_id!=2967) { set(.@g$,"1"); } else if(.@menu>1) set(.@g$,"0"); select(getd(".menu"+.@g$+(.@menu+1)+"$")); set .itm, ((.@menu==1&&@menu>.t_len)?.itm04[rand(getarraysize(.itm04))]:4700+(((@menu-1)*10)+rand(.limi))); setd(".@crd"+(.@menu+1),getd(".itm"+.@g$+((.@menu>1)?@menu+"["+rand(getarraysize(getd(".itm"+.@g$+@menu)))+"]":""))); setd(".@typ"+(.@menu+1)+"$",getd(".ary"+.@g$+(.@menu+1)+"$["+(@menu-1)+"]")); goto L_Slots; L_RMV: if(!countitem(.cure)) { mes .npc$; mes "I'm sorry but you need at least one "+getitemname(.cure)+" before we may continue."; close; } while(.@i++<=4) setd(".@o_crd"+.@i, getequipcardid(@eq_loc,.@i-1)); if(!((getitemslots(@eq_id)?0:.@o_crd1)+.@o_crd2+.@o_crd3+.@o_crd4)) { mes .npc$; mes "There isn't anything I can remove on that accessory."; close; } mes .npc$; mes "Are you sure that you want to remove your enchantments?"; mes "^FF0000This option won't effect your chambered card slot.^000000"; next; if(select("Yes:No")&2) goto L_Exit; misceffect 103; delitem(.cure,1); delitem2 @eq_id, 1, 1, @eq_rf, 0, .@o_crd1, .@o_crd2, .@o_crd3, .@o_crd4; getitem2 @eq_id, 1, 1, @eq_rf, 0, (getitemslots(@eq_id)?.@o_crd1:0), 0, 0, 0; mes .npc$; mes "Your enchantments where removed!"; close; L_Exit: mes .npc$; mes .message$[rand(getarraysize(.message$))]; close; function ordinal_suffix { set(.@i,getarg(0)); set(.@j,.@i%10); if (.@j == 1 && .@i != 11) return .@i + "st"; if (.@j == 2 && .@i != 12) return .@i + "nd"; if (.@j == 3 && .@i != 13) return .@i + "rd"; return .@i + "th"; } function f_itm_menu { while(set(.@a,.@a+1)<=.e_len) { if(compare(.e_itl$[.@a-1],""+getequipid(.e_loc[.@a-1]))) set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.e_loc[.@a-1]))+"^000000]:"; else set .@menu$, .@menu$+"^adb4be"+.eqp$[.@a-1]+"- [Empty]^000000:"; } set @menu, select(.@menu$)-1; set @eq_loc, .e_loc[@menu]; set @eq_id, getequipid(@eq_loc); set @eq_rf, getequiprefinerycnt(@eq_loc); if(!compare(.e_itm$,""+@eq_id )) { mes .npc$; mes "Sorry I don't recognize that equipment."; close; } } return; //NPC Constants OnInit: //=-=-=-=-=-=-=Configuration=-=-=-=-=-=-= set .perc , 25; //enchantment fail percent set .pert , 50; //slotting fail percent set .efet , 154; //Success Effect Number set .afet , 155; //Fail Effect Number set .remv , 0; //Allows the NPC to remove enchantments without Item. (1=On/0=Off) set .cure , 6665; //Item used to remove enchantments set .limi , 3; //Limit for status orb enchantments. setarray .message$, //List of random closing messages. "Maybe next time then.", "Alright, thanks anyway!", "Alright maybe next time then.", "Uhm, ok- See you around then.", "Wise choice, although you'll probably"+ "never get anywhere with that attitude."; set .slot$, "2966|2968"; //Items that can be slotted. setarray .ary1$, "Strength(STR)", "Intelligence(INT)", "Dexterity(DEX)", "Agility(AGI)", "Vitality(VIT)", "Luck(LUK)"; copyarray .ary2$[0],.ary1$[0],128; set .t_len, getarraysize(.ary2$); set .ary2$[.t_len], "Health Points"; setarray .ary03$, "Fighting Spirit", "Physical Attack Percent(ATK%)", "Maximum Health Points(MHP%)", "Health Points"; setarray .itm01 , 4811, 4810, 4809; //Fighting Spirit setarray .itm02 , 4819, 4766, 4767; //ATK(%) setarray .itm03 , 4861, 4862, 4867; //MHP setarray .itm04 , 4795, 4796, 4797; //HP copyarray .ary04$[0],.ary03$[0],128; setarray .ary13$, "Magic Attack Percent(MATK%)", "Casting Rate & Damage(Spell)", "Special Points(SP)"; setarray .itm11 , 4760, 4761, 4806; //MATK(%) setarray .itm12 , 4815, 4814, 4813; //Spell setarray .itm13 , 4870, 4800, 4871; //SP copyarray .ary14$[0],.ary13$[0],128; setarray .eqp$ , "Accessory1", "Accessory2"; //Menu3 set .e_len , getarraysize(.eqp$); setarray .e_itl$, "2966|2967|2968|2969", "2966|2967|2968|2969"; //Equip Items setarray .e_loc , 7, 8; //Equip Locations set .e_itm$, implode(.e_itl$,","); set .menu1$, implode(.ary1$,":"); set .menu2$, .menu1$+":"+.ary03$[3]; set .menu03$, implode(.ary03$,":"); set .menu04$, .menu03$; set .menu13$, implode(.ary13$,":"); set .menu14$, .menu13$; //=-=-=-=-=-=-=-=-Skorm-=-=-=-=-=-=-=-=-= } prontera,147,61,5 duplicate(Goldberg#0) Driller#1 87 prontera,147,63,5 duplicate(Goldberg#0) Goldentheifberg#3 87