prontera,150,150,4 script Ganja Enchanter 521,{ mes .npc$; mes "I can attach or remove your Ganja Runes to/from your equipment. But I can't do it for weapons."; next; switch(select("> Attach Ganja Runes:> Remove Ganja Runes")) { case 1: mes .npc$; mes "I can do this for a small fee of ^0000FF"+.pric+"z^000000."; emotion e_no1,0; next; emotion e_swt,0; mes .npc$; mes "I must ^FF0000warn^000000 you that if this"; mes "process fails, I don't refund money and your Ganja Runes will be consumed."; mes " "; mes "Would you still like to continue?"; next; if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; } if(Zeny<.pric) { mes .npc$; mes "I'm sorry you don't have enough Zeny, please come back later."; close; } mes .npc$; mes "Please select an equipment from the menu."; next; while(set(.@a,.@a+1)<=.e_len) { if(getequipid(.@a)>-1) { if(getiteminfo(getequipid(.@a),2)!=4) { set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.@a))+"^000000]:"; set(.@menu[getarraysize(.@menu)],.@a); } } } if(.@menu$==""){ mes .npc$; mes "You don't have anything equipped!"; close; } select(.@menu$); set .@eq_loc, .@menu[@menu-1]; set .@eq_itm, getequipid(.@eq_loc); if(countitem(.@eq_itm)>1) { mes .npc$; mes "You have more than one ^009900"+getitemname(.@eq_itm)+"^000000"; mes "in your inventory! Please put them"; mes "to your storage first to avoid"; mes "^FF0000misattachment^000000!"; close; } if(.@eq_itm<0){ mes .npc$; mes "Hmm, I don't think you have anything equipped there."; close; } set .@menu$, ""; set .@a, .en_orb[0]; while((set(.@a,.@a+1)-1)<=.en_orb[1]) if(getiteminfo(.@a-1,2)>-1) if(set(.@c,countitem(.@a-1))) { set .@menu$, .@menu$+getitemname(.@a-1)+" x"+.@c+":"; set .@b,.@b+1; set .@item[.@b], .@a-1; } if(.@menu$==""){ mes .npc$; mes "Hmm, you don't seem to have any Ganja Runes."; close; } mes .npc$; mes "Please select a rune from the menu."; next; select(.@menu$); set .@itm, .@item[@menu]; set .@menu$, ""; set .@a, 0; while((set(.@a,.@a+1))<4) { if(getequipcardid(.@eq_loc,.@a)) set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^a92435"+getitemname(getequipcardid(.@eq_loc,.@a))+"^000000]:"; else set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^30ad25Empty^000000]:"; } setarray .@card, getequipcardid(.@eq_loc,0), getequipcardid(.@eq_loc,1), getequipcardid(.@eq_loc,2), getequipcardid(.@eq_loc,3); mes .npc$; mes "Select a slot."; next; set .@men, select(.@menu$); set .@eqrf, getequiprefinerycnt(.@eq_loc); if(getequipcardid(.@eq_loc,@menu)) { mes .npc$; mes "It looks like that item slot has already attachment on it."; mes "Please remove it and talk to me again."; close; } mes .npc$; mes "Succes Rate: ^FF0000"+.perc[.@men]+"^000000 percent."; mes " "; mes "Are you sure you want to do this?"; next; if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; } if(rand(100)>.perc[.@men]) { mes .npc$; mes "I'm sorry but I've failed you!"; misceffect 155; emotion e_sob,0; set Zeny,Zeny-.pric; delitem(.@itm,1); close; } set Zeny,Zeny-.pric; delitem .@itm,1; delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; set .@card[.@men], .@itm; getitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; misceffect .efet; emotion e_no1,0; equip .@eq_itm; mes .npc$; mes "Rune successfully attached!"; close; case 2: mes .npc$; mes "To perform it, I will need these:"; mes "> ^0000FF"+getitemname(.remv)+"^000000"; mes "> ^0000FF"+.pric2+"z^000000"; emotion e_no1,0; next; mes .npc$; mes "Please select an equipment from the menu."; next; while(set(.@a,.@a+1)<=.e_len) { if(getequipid(.@a)>-1) { if(getiteminfo(getequipid(.@a),2)!=4) { set .@menu$, .@menu$+.eqp$[.@a-1]+"- [^0000FF"+getitemname(getequipid(.@a))+"^000000]:"; set(.@menu[getarraysize(.@menu)],.@a); } } } if(.@menu$==""){ mes .npc$; mes "You don't have anything equipped!"; close; } select(.@menu$); set .@eq_loc, .@menu[@menu-1]; set .@eq_itm, getequipid(.@eq_loc); if(.@eq_itm<0){ mes .npc$; mes "Hmm, I don't think you have anything equipped there."; close; } set .@menu$, ""; set .@a, 0; while((set(.@a,.@a+1))<4) { if(getequipcardid(.@eq_loc,.@a)) set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^a92435"+getitemname(getequipcardid(.@eq_loc,.@a))+"^000000]:"; else set .@menu$, .@menu$+(.@a+1)+.crd_c$[.@a]+" Slot- [^30ad25Empty^000000]:"; } setarray .@card, getequipcardid(.@eq_loc,0), getequipcardid(.@eq_loc,1), getequipcardid(.@eq_loc,2), getequipcardid(.@eq_loc,3); mes .npc$; mes "Select a slot."; next; set .@men, select(.@menu$); set .@eqrf, getequiprefinerycnt(.@eq_loc); if(getequipcardid(.@eq_loc,@menu)) { if(Zeny<.pric2) { mes .npc$; mes "I'm sorry you don't have enough Zeny, please come back later."; close; } if(!countitem(.remv)) { mes .npc$; mes "I'm sorry but you don't have any "+getitemname(.remv)+". Please come back when you do!"; close; } mes .npc$; mes "Are you sure you want to do this?"; next; if(select("Yes:No")&2) { mes .npc$; mes "Alright, thanks anyways!"; close; } if(rand(100)>.rper) { mes .npc$; mes "I failed to remove the rune"; mes "I'm sorry please try again!"; misceffect 155; emotion e_sob,0; delitem(.remv,1); set Zeny,Zeny-.pric2; close; } set Zeny,Zeny-.pric2; delitem(.remv,1); getitem getequipcardid(.@eq_loc,.@men),1; unequip(.@eq_loc); delitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; set .@card[.@men], 0; getitem2 .@eq_itm, 1, 1, .@eqrf, 0, .@card[0], .@card[1], .@card[2], .@card[3]; misceffect .efet; emotion e_no1,0; mes .npc$; mes "Rune successfully removed!"; close; } else { mes .npc$; mes "Nothing is there for me to remove."; close; } } // end of switch OnInit: set .npc$,"^009900[ Ganja Runes ]^000000"; // NPC Name set .pric,1000000; // Enchanting Price set .pric2,1000000; // Removing Price set .remv,2267; // Item required to de-enchant set .efet,154; // Effect Number set .rper,50; // Remove Percent setarray .perc,0,70,50,30; // Enchant Percent by Slot setarray .crd_c$, "st", "nd", "rd", "th"; // Count setarray .en_orb, 4700, 4862; // Range of IDs selected for enchanting. setarray .eqp$, "Upper Headgear", "Armor", "Left Hand", "Right Hand", "Garment", "Shoes", "Accessory1", "Accessory2", "Mid Headgear", "Low Headgear"; set .e_len , getarraysize(.eqp$); }