//===== eAthena Script ======================================== //= Novice Goods Exchanger //===== By: ================================================== //= ???, eAthena Team //===== Current Version: ===================================== //= 1.1a //===== Compatible With: ===================================== //= eAthena 1.0+ //===== Description: ========================================= //= Exchanges your cheap loot to Red Potions. //= Official NPC. //===== Additional Comments: ================================= //= 1.1 Made it as a function. U can add your own Merchs [Lupus] //= 1.1a Fixed item select [KarLaeda] //============================================================ function script F_NMerch { mes "["+getarg(0)+"]"; if((Weight*100)/MaxWeight >= 90){ mes "You will exceed your weight limit if you exchange for the Red Potions."; close; } mes "Good day!"; mes "Do you have any collection items such as "+getitemname(getarg(1))+" or "+getitemname(getarg(3))+"?"; if(getarg(5)) mes "...how about "+getitemname(getarg(5))+"?.."; mes "Oh, yeah, I need those for something."; next; mes "["+getarg(0)+"]"; mes "Of course I am not asking you to give those for free!"; mes "How about... if I give you 1 Red"; mes "Potion for "+getarg(2)+" "+getitemname(getarg(1))+" or "+getarg(4)+" "+getitemname(getarg(3))+"?"; if(getarg(5)) mes "Or "+getarg(6)+" "+getitemname(getarg(5))+"?"; next; switch (select("Sure!:Think you're ripping me off...:No, thanks")) { case 1: mes "["+getarg(0)+"]"; mes "So which item do you bring me?"; mes ""+getitemname(getarg(1))+"? "+getitemname(getarg(3))+"?"; if(getarg(5)) mes "Or "+getitemname(getarg(5))+"?"; next; if(getarg(5)) set @i,select(""+getitemname(getarg(1))+"",""+getitemname(getarg(3))+"",""+getitemname(getarg(5))+"","Cancel"); else set @i,select(""+getitemname(getarg(1))+"",""+getitemname(getarg(3))+"","Cancel"); if(@i==4 || (@i==3 && !getarg(5))) { mes "["+getarg(0)+"]"; mes "Sure, no problem."; close; } set @item,getarg(@i*2-1); set @amount,getarg(@i*2); set @have,countitem(@item); if(@have < @amount) { mes "["+getarg(0)+"]"; mes "Hey, where are all those"; mes getitemname(@item)+" you promised?"; close; } mes "["+getarg(0)+"]"; mes "Okay, let me take a look at the stuff you brought."; next; set @max,@have / @amount; mes "["+getarg(0)+"]"; mes "You have total "+@have+" "+getitemname(@item)+"..."; mes "I can give you"; mes "total "+@max+" Red Potion for those."; next; mes "["+getarg(0)+"]"; mes "What do you say? Deal?"; next; if(select("Deal.:No deal.")==2) { mes "["+getarg(0)+"]"; mes "Bah~ whatever."; mes "Bah!"; close; } mes "["+getarg(0)+"]"; mes "You know the exact number of Red Potions"; mes "you can receive for "+getitemname(@item)+", don't you?"; next; mes "["+getarg(0)+"]"; mes "You can get Red Potions"; mes "from minimum 1 to maximum 100 at once."; mes "If you change your mind, enter '0'"; mes "to cancel."; while(1) { next; input @val; if(@val<0 || @val>100) { mes "["+getarg(0)+"]"; mes "Uh oh, the number you entered"; mes "seemed incorrect."; mes "You'd better check how many Red"; mes "Potions you can get."; continue; } break; } mes "["+getarg(0)+"]"; if(@val == 0) { mes "What...how the hell did you even"; mes "bother to talk to me?"; mes "Leave, I don't deal with whimsical"; mes "people."; close; } if(@val > @max) { mes "Uh oh, the number you entered"; mes "seemed incorrect."; mes "You'd better check how many Red"; mes "Potions you can get."; close; } delitem @item,@amount*@val; getitem 501,@val; mes "There you go!"; mes "Thanks, it was a good deal."; close; case 2: mes "["+getarg(0)+"]"; mes "Did you say I am ripping you off?!"; mes "You got to know how ignorant that comment was!"; next; mes "["+getarg(0)+"]"; mes "When you check the price of each item,"; mes "I am doing a losing business."; mes "If you don't want to do then, fine!"; close; case 3: mes "["+getarg(0)+"]"; mes "Hah, no problem."; mes "Bah!"; close; } } prontera,123,102,5 script Merchant#1 85,{ callfunc "F_NMerch","Merchant",935,5,914,10,909,10; } geffen,173,88,5 script Merchant#2 85,{ callfunc "F_NMerch","Merchant",935,5,915,6,909,10; } morocc,180,259,3 script Merchant#3 85,{ callfunc "F_NMerch","Merchant",935,5,916,7,909,10; } aldebaran,152,63,5 script Merchant#4 85,{ callfunc "F_NMerch","Merchant",955,1,916,7,909,10; } payon,200,134,5 script Merchant#5 85,{ //we remove 3rd item, by adding 0,0 callfunc "F_NMerch","Merchant",902,6,909,10,0,0; }